Changeset 3357679
- Timestamp:
- 09/08/2025 08:26:38 AM (7 months ago)
- Location:
- cf-geoplugin
- Files:
-
- 505 added
- 6 edited
-
tags/8.9.3 (added)
-
tags/8.9.3/CHANGELOG.txt (added)
-
tags/8.9.3/LICENSE.txt (added)
-
tags/8.9.3/assets (added)
-
tags/8.9.3/assets/css (added)
-
tags/8.9.3/assets/css/flag-icon.min.css (added)
-
tags/8.9.3/assets/css/fonts.min.css (added)
-
tags/8.9.3/assets/css/index.php (added)
-
tags/8.9.3/assets/css/select2.min.css (added)
-
tags/8.9.3/assets/css/style-admin.css (added)
-
tags/8.9.3/assets/css/style-cc.css (added)
-
tags/8.9.3/assets/css/style-cc.min.css (added)
-
tags/8.9.3/assets/css/style-cpt.css (added)
-
tags/8.9.3/assets/css/style-menus.css (added)
-
tags/8.9.3/assets/css/style-metabox.css (added)
-
tags/8.9.3/assets/css/style-public.css (added)
-
tags/8.9.3/assets/css/style-public.min.css (added)
-
tags/8.9.3/assets/css/style.css (added)
-
tags/8.9.3/assets/flags (added)
-
tags/8.9.3/assets/flags/4x3 (added)
-
tags/8.9.3/assets/flags/4x3/ac.svg (added)
-
tags/8.9.3/assets/flags/4x3/ad.svg (added)
-
tags/8.9.3/assets/flags/4x3/ae.svg (added)
-
tags/8.9.3/assets/flags/4x3/af.svg (added)
-
tags/8.9.3/assets/flags/4x3/ag.svg (added)
-
tags/8.9.3/assets/flags/4x3/ai.svg (added)
-
tags/8.9.3/assets/flags/4x3/al.svg (added)
-
tags/8.9.3/assets/flags/4x3/am.svg (added)
-
tags/8.9.3/assets/flags/4x3/ao.svg (added)
-
tags/8.9.3/assets/flags/4x3/aq.svg (added)
-
tags/8.9.3/assets/flags/4x3/ar.svg (added)
-
tags/8.9.3/assets/flags/4x3/as.svg (added)
-
tags/8.9.3/assets/flags/4x3/at.svg (added)
-
tags/8.9.3/assets/flags/4x3/au.svg (added)
-
tags/8.9.3/assets/flags/4x3/aw.svg (added)
-
tags/8.9.3/assets/flags/4x3/ax.svg (added)
-
tags/8.9.3/assets/flags/4x3/az.svg (added)
-
tags/8.9.3/assets/flags/4x3/ba.svg (added)
-
tags/8.9.3/assets/flags/4x3/bb.svg (added)
-
tags/8.9.3/assets/flags/4x3/bd.svg (added)
-
tags/8.9.3/assets/flags/4x3/be.svg (added)
-
tags/8.9.3/assets/flags/4x3/bf.svg (added)
-
tags/8.9.3/assets/flags/4x3/bg.svg (added)
-
tags/8.9.3/assets/flags/4x3/bh.svg (added)
-
tags/8.9.3/assets/flags/4x3/bi.svg (added)
-
tags/8.9.3/assets/flags/4x3/bj.svg (added)
-
tags/8.9.3/assets/flags/4x3/bl.svg (added)
-
tags/8.9.3/assets/flags/4x3/bm.svg (added)
-
tags/8.9.3/assets/flags/4x3/bn.svg (added)
-
tags/8.9.3/assets/flags/4x3/bo.svg (added)
-
tags/8.9.3/assets/flags/4x3/bq.svg (added)
-
tags/8.9.3/assets/flags/4x3/br.svg (added)
-
tags/8.9.3/assets/flags/4x3/bs.svg (added)
-
tags/8.9.3/assets/flags/4x3/bt.svg (added)
-
tags/8.9.3/assets/flags/4x3/bv.svg (added)
-
tags/8.9.3/assets/flags/4x3/bw.svg (added)
-
tags/8.9.3/assets/flags/4x3/by.svg (added)
-
tags/8.9.3/assets/flags/4x3/bz.svg (added)
-
tags/8.9.3/assets/flags/4x3/ca.svg (added)
-
tags/8.9.3/assets/flags/4x3/cc.svg (added)
-
tags/8.9.3/assets/flags/4x3/cd.svg (added)
-
tags/8.9.3/assets/flags/4x3/cf.svg (added)
-
tags/8.9.3/assets/flags/4x3/cg.svg (added)
-
tags/8.9.3/assets/flags/4x3/ch.svg (added)
-
tags/8.9.3/assets/flags/4x3/ci.svg (added)
-
tags/8.9.3/assets/flags/4x3/ck.svg (added)
-
tags/8.9.3/assets/flags/4x3/cl.svg (added)
-
tags/8.9.3/assets/flags/4x3/cm.svg (added)
-
tags/8.9.3/assets/flags/4x3/cn.svg (added)
-
tags/8.9.3/assets/flags/4x3/co.svg (added)
-
tags/8.9.3/assets/flags/4x3/cp.svg (added)
-
tags/8.9.3/assets/flags/4x3/cr.svg (added)
-
tags/8.9.3/assets/flags/4x3/cu.svg (added)
-
tags/8.9.3/assets/flags/4x3/cv.svg (added)
-
tags/8.9.3/assets/flags/4x3/cw.svg (added)
-
tags/8.9.3/assets/flags/4x3/cx.svg (added)
-
tags/8.9.3/assets/flags/4x3/cy.svg (added)
-
tags/8.9.3/assets/flags/4x3/cz.svg (added)
-
tags/8.9.3/assets/flags/4x3/de.svg (added)
-
tags/8.9.3/assets/flags/4x3/dg.svg (added)
-
tags/8.9.3/assets/flags/4x3/dj.svg (added)
-
tags/8.9.3/assets/flags/4x3/dk.svg (added)
-
tags/8.9.3/assets/flags/4x3/dm.svg (added)
-
tags/8.9.3/assets/flags/4x3/do.svg (added)
-
tags/8.9.3/assets/flags/4x3/dz.svg (added)
-
tags/8.9.3/assets/flags/4x3/ea.svg (added)
-
tags/8.9.3/assets/flags/4x3/ec.svg (added)
-
tags/8.9.3/assets/flags/4x3/ee.svg (added)
-
tags/8.9.3/assets/flags/4x3/eg.svg (added)
-
tags/8.9.3/assets/flags/4x3/eh.svg (added)
-
tags/8.9.3/assets/flags/4x3/er.svg (added)
-
tags/8.9.3/assets/flags/4x3/es-ct.svg (added)
-
tags/8.9.3/assets/flags/4x3/es-ga.svg (added)
-
tags/8.9.3/assets/flags/4x3/es.svg (added)
-
tags/8.9.3/assets/flags/4x3/et.svg (added)
-
tags/8.9.3/assets/flags/4x3/eu.svg (added)
-
tags/8.9.3/assets/flags/4x3/fi.svg (added)
-
tags/8.9.3/assets/flags/4x3/fj.svg (added)
-
tags/8.9.3/assets/flags/4x3/fk.svg (added)
-
tags/8.9.3/assets/flags/4x3/fm.svg (added)
-
tags/8.9.3/assets/flags/4x3/fo.svg (added)
-
tags/8.9.3/assets/flags/4x3/fr.svg (added)
-
tags/8.9.3/assets/flags/4x3/ga.svg (added)
-
tags/8.9.3/assets/flags/4x3/gb-eng.svg (added)
-
tags/8.9.3/assets/flags/4x3/gb-nir.svg (added)
-
tags/8.9.3/assets/flags/4x3/gb-sct.svg (added)
-
tags/8.9.3/assets/flags/4x3/gb-wls.svg (added)
-
tags/8.9.3/assets/flags/4x3/gb.svg (added)
-
tags/8.9.3/assets/flags/4x3/gd.svg (added)
-
tags/8.9.3/assets/flags/4x3/ge.svg (added)
-
tags/8.9.3/assets/flags/4x3/gf.svg (added)
-
tags/8.9.3/assets/flags/4x3/gg.svg (added)
-
tags/8.9.3/assets/flags/4x3/gh.svg (added)
-
tags/8.9.3/assets/flags/4x3/gi.svg (added)
-
tags/8.9.3/assets/flags/4x3/gl.svg (added)
-
tags/8.9.3/assets/flags/4x3/gm.svg (added)
-
tags/8.9.3/assets/flags/4x3/gn.svg (added)
-
tags/8.9.3/assets/flags/4x3/gp.svg (added)
-
tags/8.9.3/assets/flags/4x3/gq.svg (added)
-
tags/8.9.3/assets/flags/4x3/gr.svg (added)
-
tags/8.9.3/assets/flags/4x3/gs.svg (added)
-
tags/8.9.3/assets/flags/4x3/gt.svg (added)
-
tags/8.9.3/assets/flags/4x3/gu.svg (added)
-
tags/8.9.3/assets/flags/4x3/gw.svg (added)
-
tags/8.9.3/assets/flags/4x3/gy.svg (added)
-
tags/8.9.3/assets/flags/4x3/hk.svg (added)
-
tags/8.9.3/assets/flags/4x3/hm.svg (added)
-
tags/8.9.3/assets/flags/4x3/hn.svg (added)
-
tags/8.9.3/assets/flags/4x3/hr.svg (added)
-
tags/8.9.3/assets/flags/4x3/ht.svg (added)
-
tags/8.9.3/assets/flags/4x3/hu.svg (added)
-
tags/8.9.3/assets/flags/4x3/ic.svg (added)
-
tags/8.9.3/assets/flags/4x3/id.svg (added)
-
tags/8.9.3/assets/flags/4x3/ie.svg (added)
-
tags/8.9.3/assets/flags/4x3/il.svg (added)
-
tags/8.9.3/assets/flags/4x3/im.svg (added)
-
tags/8.9.3/assets/flags/4x3/in.svg (added)
-
tags/8.9.3/assets/flags/4x3/index.php (added)
-
tags/8.9.3/assets/flags/4x3/io.svg (added)
-
tags/8.9.3/assets/flags/4x3/iq.svg (added)
-
tags/8.9.3/assets/flags/4x3/ir.svg (added)
-
tags/8.9.3/assets/flags/4x3/is.svg (added)
-
tags/8.9.3/assets/flags/4x3/it.svg (added)
-
tags/8.9.3/assets/flags/4x3/je.svg (added)
-
tags/8.9.3/assets/flags/4x3/jm.svg (added)
-
tags/8.9.3/assets/flags/4x3/jo.svg (added)
-
tags/8.9.3/assets/flags/4x3/jp.svg (added)
-
tags/8.9.3/assets/flags/4x3/ke.svg (added)
-
tags/8.9.3/assets/flags/4x3/kg.svg (added)
-
tags/8.9.3/assets/flags/4x3/kh.svg (added)
-
tags/8.9.3/assets/flags/4x3/ki.svg (added)
-
tags/8.9.3/assets/flags/4x3/km.svg (added)
-
tags/8.9.3/assets/flags/4x3/kn.svg (added)
-
tags/8.9.3/assets/flags/4x3/kp.svg (added)
-
tags/8.9.3/assets/flags/4x3/kr.svg (added)
-
tags/8.9.3/assets/flags/4x3/kw.svg (added)
-
tags/8.9.3/assets/flags/4x3/ky.svg (added)
-
tags/8.9.3/assets/flags/4x3/kz.svg (added)
-
tags/8.9.3/assets/flags/4x3/la.svg (added)
-
tags/8.9.3/assets/flags/4x3/lb.svg (added)
-
tags/8.9.3/assets/flags/4x3/lc.svg (added)
-
tags/8.9.3/assets/flags/4x3/li.svg (added)
-
tags/8.9.3/assets/flags/4x3/lk.svg (added)
-
tags/8.9.3/assets/flags/4x3/lr.svg (added)
-
tags/8.9.3/assets/flags/4x3/ls.svg (added)
-
tags/8.9.3/assets/flags/4x3/lt.svg (added)
-
tags/8.9.3/assets/flags/4x3/lu.svg (added)
-
tags/8.9.3/assets/flags/4x3/lv.svg (added)
-
tags/8.9.3/assets/flags/4x3/ly.svg (added)
-
tags/8.9.3/assets/flags/4x3/ma.svg (added)
-
tags/8.9.3/assets/flags/4x3/mc.svg (added)
-
tags/8.9.3/assets/flags/4x3/md.svg (added)
-
tags/8.9.3/assets/flags/4x3/me.svg (added)
-
tags/8.9.3/assets/flags/4x3/mf.svg (added)
-
tags/8.9.3/assets/flags/4x3/mg.svg (added)
-
tags/8.9.3/assets/flags/4x3/mh.svg (added)
-
tags/8.9.3/assets/flags/4x3/mk.svg (added)
-
tags/8.9.3/assets/flags/4x3/ml.svg (added)
-
tags/8.9.3/assets/flags/4x3/mm.svg (added)
-
tags/8.9.3/assets/flags/4x3/mn.svg (added)
-
tags/8.9.3/assets/flags/4x3/mo.svg (added)
-
tags/8.9.3/assets/flags/4x3/mp.svg (added)
-
tags/8.9.3/assets/flags/4x3/mq.svg (added)
-
tags/8.9.3/assets/flags/4x3/mr.svg (added)
-
tags/8.9.3/assets/flags/4x3/ms.svg (added)
-
tags/8.9.3/assets/flags/4x3/mt.svg (added)
-
tags/8.9.3/assets/flags/4x3/mu.svg (added)
-
tags/8.9.3/assets/flags/4x3/mv.svg (added)
-
tags/8.9.3/assets/flags/4x3/mw.svg (added)
-
tags/8.9.3/assets/flags/4x3/mx.svg (added)
-
tags/8.9.3/assets/flags/4x3/my.svg (added)
-
tags/8.9.3/assets/flags/4x3/mz.svg (added)
-
tags/8.9.3/assets/flags/4x3/na.svg (added)
-
tags/8.9.3/assets/flags/4x3/nc.svg (added)
-
tags/8.9.3/assets/flags/4x3/ne.svg (added)
-
tags/8.9.3/assets/flags/4x3/nf.svg (added)
-
tags/8.9.3/assets/flags/4x3/ng.svg (added)
-
tags/8.9.3/assets/flags/4x3/ni.svg (added)
-
tags/8.9.3/assets/flags/4x3/nl.svg (added)
-
tags/8.9.3/assets/flags/4x3/no.svg (added)
-
tags/8.9.3/assets/flags/4x3/np.svg (added)
-
tags/8.9.3/assets/flags/4x3/nr.svg (added)
-
tags/8.9.3/assets/flags/4x3/nu.svg (added)
-
tags/8.9.3/assets/flags/4x3/nz.svg (added)
-
tags/8.9.3/assets/flags/4x3/om.svg (added)
-
tags/8.9.3/assets/flags/4x3/pa.svg (added)
-
tags/8.9.3/assets/flags/4x3/pe.svg (added)
-
tags/8.9.3/assets/flags/4x3/pf.svg (added)
-
tags/8.9.3/assets/flags/4x3/pg.svg (added)
-
tags/8.9.3/assets/flags/4x3/ph.svg (added)
-
tags/8.9.3/assets/flags/4x3/pk.svg (added)
-
tags/8.9.3/assets/flags/4x3/pl.svg (added)
-
tags/8.9.3/assets/flags/4x3/pm.svg (added)
-
tags/8.9.3/assets/flags/4x3/pn.svg (added)
-
tags/8.9.3/assets/flags/4x3/pr.svg (added)
-
tags/8.9.3/assets/flags/4x3/ps.svg (added)
-
tags/8.9.3/assets/flags/4x3/pt.svg (added)
-
tags/8.9.3/assets/flags/4x3/pw.svg (added)
-
tags/8.9.3/assets/flags/4x3/py.svg (added)
-
tags/8.9.3/assets/flags/4x3/qa.svg (added)
-
tags/8.9.3/assets/flags/4x3/re.svg (added)
-
tags/8.9.3/assets/flags/4x3/ro.svg (added)
-
tags/8.9.3/assets/flags/4x3/rs.svg (added)
-
tags/8.9.3/assets/flags/4x3/ru.svg (added)
-
tags/8.9.3/assets/flags/4x3/rw.svg (added)
-
tags/8.9.3/assets/flags/4x3/sa.svg (added)
-
tags/8.9.3/assets/flags/4x3/sb.svg (added)
-
tags/8.9.3/assets/flags/4x3/sc.svg (added)
-
tags/8.9.3/assets/flags/4x3/sd.svg (added)
-
tags/8.9.3/assets/flags/4x3/se.svg (added)
-
tags/8.9.3/assets/flags/4x3/sg.svg (added)
-
tags/8.9.3/assets/flags/4x3/sh.svg (added)
-
tags/8.9.3/assets/flags/4x3/si.svg (added)
-
tags/8.9.3/assets/flags/4x3/sj.svg (added)
-
tags/8.9.3/assets/flags/4x3/sk.svg (added)
-
tags/8.9.3/assets/flags/4x3/sl.svg (added)
-
tags/8.9.3/assets/flags/4x3/sm.svg (added)
-
tags/8.9.3/assets/flags/4x3/sn.svg (added)
-
tags/8.9.3/assets/flags/4x3/so.svg (added)
-
tags/8.9.3/assets/flags/4x3/sr.svg (added)
-
tags/8.9.3/assets/flags/4x3/ss.svg (added)
-
tags/8.9.3/assets/flags/4x3/st.svg (added)
-
tags/8.9.3/assets/flags/4x3/sv.svg (added)
-
tags/8.9.3/assets/flags/4x3/sx.svg (added)
-
tags/8.9.3/assets/flags/4x3/sy.svg (added)
-
tags/8.9.3/assets/flags/4x3/sz.svg (added)
-
tags/8.9.3/assets/flags/4x3/ta.svg (added)
-
tags/8.9.3/assets/flags/4x3/tc.svg (added)
-
tags/8.9.3/assets/flags/4x3/td.svg (added)
-
tags/8.9.3/assets/flags/4x3/tf.svg (added)
-
tags/8.9.3/assets/flags/4x3/tg.svg (added)
-
tags/8.9.3/assets/flags/4x3/th.svg (added)
-
tags/8.9.3/assets/flags/4x3/tj.svg (added)
-
tags/8.9.3/assets/flags/4x3/tk.svg (added)
-
tags/8.9.3/assets/flags/4x3/tl.svg (added)
-
tags/8.9.3/assets/flags/4x3/tm.svg (added)
-
tags/8.9.3/assets/flags/4x3/tn.svg (added)
-
tags/8.9.3/assets/flags/4x3/to.svg (added)
-
tags/8.9.3/assets/flags/4x3/tr.svg (added)
-
tags/8.9.3/assets/flags/4x3/tt.svg (added)
-
tags/8.9.3/assets/flags/4x3/tv.svg (added)
-
tags/8.9.3/assets/flags/4x3/tw.svg (added)
-
tags/8.9.3/assets/flags/4x3/tz.svg (added)
-
tags/8.9.3/assets/flags/4x3/ua.svg (added)
-
tags/8.9.3/assets/flags/4x3/ug.svg (added)
-
tags/8.9.3/assets/flags/4x3/um.svg (added)
-
tags/8.9.3/assets/flags/4x3/un.svg (added)
-
tags/8.9.3/assets/flags/4x3/us.svg (added)
-
tags/8.9.3/assets/flags/4x3/uy.svg (added)
-
tags/8.9.3/assets/flags/4x3/uz.svg (added)
-
tags/8.9.3/assets/flags/4x3/va.svg (added)
-
tags/8.9.3/assets/flags/4x3/vc.svg (added)
-
tags/8.9.3/assets/flags/4x3/ve.svg (added)
-
tags/8.9.3/assets/flags/4x3/vg.svg (added)
-
tags/8.9.3/assets/flags/4x3/vi.svg (added)
-
tags/8.9.3/assets/flags/4x3/vn.svg (added)
-
tags/8.9.3/assets/flags/4x3/vu.svg (added)
-
tags/8.9.3/assets/flags/4x3/wf.svg (added)
-
tags/8.9.3/assets/flags/4x3/ws.svg (added)
-
tags/8.9.3/assets/flags/4x3/xk.svg (added)
-
tags/8.9.3/assets/flags/4x3/xx.svg (added)
-
tags/8.9.3/assets/flags/4x3/ye.svg (added)
-
tags/8.9.3/assets/flags/4x3/yt.svg (added)
-
tags/8.9.3/assets/flags/4x3/za.svg (added)
-
tags/8.9.3/assets/flags/4x3/zm.svg (added)
-
tags/8.9.3/assets/flags/4x3/zw.svg (added)
-
tags/8.9.3/assets/flags/index.php (added)
-
tags/8.9.3/assets/fonts (added)
-
tags/8.9.3/assets/fonts/FontAwesome.otf (added)
-
tags/8.9.3/assets/fonts/fontawesome-webfont.eot (added)
-
tags/8.9.3/assets/fonts/fontawesome-webfont.svg (added)
-
tags/8.9.3/assets/fonts/fontawesome-webfont.ttf (added)
-
tags/8.9.3/assets/fonts/fontawesome-webfont.woff (added)
-
tags/8.9.3/assets/fonts/fontawesome-webfont.woff2 (added)
-
tags/8.9.3/assets/fonts/index.php (added)
-
tags/8.9.3/assets/images (added)
-
tags/8.9.3/assets/images/Logo-DigitalOcean.jpg (added)
-
tags/8.9.3/assets/images/Logo-Drax-Host.jpg (added)
-
tags/8.9.3/assets/images/Logo-Infinitum-Form.jpg (added)
-
tags/8.9.3/assets/images/Logo-NordVPN.jpg (added)
-
tags/8.9.3/assets/images/developed-by.png (added)
-
tags/8.9.3/assets/images/index.php (added)
-
tags/8.9.3/assets/images/loading.gif (added)
-
tags/8.9.3/assets/images/logo-contra-team.jpg (added)
-
tags/8.9.3/assets/images/select.svg (added)
-
tags/8.9.3/assets/index.php (added)
-
tags/8.9.3/assets/js (added)
-
tags/8.9.3/assets/js/index.php (added)
-
tags/8.9.3/assets/js/jquery.maps.js (added)
-
tags/8.9.3/assets/js/jquery.maps.min.js (added)
-
tags/8.9.3/assets/js/script-admin.js (added)
-
tags/8.9.3/assets/js/script-cc.js (added)
-
tags/8.9.3/assets/js/script-cc.min.js (added)
-
tags/8.9.3/assets/js/script-cpt.js (added)
-
tags/8.9.3/assets/js/script-metabox.js (added)
-
tags/8.9.3/assets/js/script-public.js (added)
-
tags/8.9.3/assets/js/script-public.min.js (added)
-
tags/8.9.3/assets/js/select2.min.js (added)
-
tags/8.9.3/assets/maps (added)
-
tags/8.9.3/assets/maps/blank-usa-territories.svg (added)
-
tags/8.9.3/assets/maps/index.php (added)
-
tags/8.9.3/assets/maps/usa-counties.svg (added)
-
tags/8.9.3/assets/maps/usa-states (added)
-
tags/8.9.3/assets/maps/usa-states/AK.svg (added)
-
tags/8.9.3/assets/maps/usa-states/AL.svg (added)
-
tags/8.9.3/assets/maps/usa-states/AR.svg (added)
-
tags/8.9.3/assets/maps/usa-states/AZ.svg (added)
-
tags/8.9.3/assets/maps/usa-states/CA.svg (added)
-
tags/8.9.3/assets/maps/usa-states/CO.svg (added)
-
tags/8.9.3/assets/maps/usa-states/CT.svg (added)
-
tags/8.9.3/assets/maps/usa-states/DC.svg (added)
-
tags/8.9.3/assets/maps/usa-states/DE.svg (added)
-
tags/8.9.3/assets/maps/usa-states/FL.svg (added)
-
tags/8.9.3/assets/maps/usa-states/GA.svg (added)
-
tags/8.9.3/assets/maps/usa-states/HI.svg (added)
-
tags/8.9.3/assets/maps/usa-states/IA.svg (added)
-
tags/8.9.3/assets/maps/usa-states/ID.svg (added)
-
tags/8.9.3/assets/maps/usa-states/IL.svg (added)
-
tags/8.9.3/assets/maps/usa-states/IN.svg (added)
-
tags/8.9.3/assets/maps/usa-states/KS.svg (added)
-
tags/8.9.3/assets/maps/usa-states/KY.svg (added)
-
tags/8.9.3/assets/maps/usa-states/LA.svg (added)
-
tags/8.9.3/assets/maps/usa-states/MA.svg (added)
-
tags/8.9.3/assets/maps/usa-states/MD.svg (added)
-
tags/8.9.3/assets/maps/usa-states/ME.svg (added)
-
tags/8.9.3/assets/maps/usa-states/MI.svg (added)
-
tags/8.9.3/assets/maps/usa-states/MN.svg (added)
-
tags/8.9.3/assets/maps/usa-states/MO.svg (added)
-
tags/8.9.3/assets/maps/usa-states/MS.svg (added)
-
tags/8.9.3/assets/maps/usa-states/MT.svg (added)
-
tags/8.9.3/assets/maps/usa-states/NC.svg (added)
-
tags/8.9.3/assets/maps/usa-states/ND.svg (added)
-
tags/8.9.3/assets/maps/usa-states/NE.svg (added)
-
tags/8.9.3/assets/maps/usa-states/NH.svg (added)
-
tags/8.9.3/assets/maps/usa-states/NJ.svg (added)
-
tags/8.9.3/assets/maps/usa-states/NM.svg (added)
-
tags/8.9.3/assets/maps/usa-states/NV.svg (added)
-
tags/8.9.3/assets/maps/usa-states/NY.svg (added)
-
tags/8.9.3/assets/maps/usa-states/OH.svg (added)
-
tags/8.9.3/assets/maps/usa-states/OK.svg (added)
-
tags/8.9.3/assets/maps/usa-states/OR.svg (added)
-
tags/8.9.3/assets/maps/usa-states/PA.svg (added)
-
tags/8.9.3/assets/maps/usa-states/RI.svg (added)
-
tags/8.9.3/assets/maps/usa-states/SC.svg (added)
-
tags/8.9.3/assets/maps/usa-states/SD.svg (added)
-
tags/8.9.3/assets/maps/usa-states/TN.svg (added)
-
tags/8.9.3/assets/maps/usa-states/TX.svg (added)
-
tags/8.9.3/assets/maps/usa-states/UT.svg (added)
-
tags/8.9.3/assets/maps/usa-states/VA.svg (added)
-
tags/8.9.3/assets/maps/usa-states/VT.svg (added)
-
tags/8.9.3/assets/maps/usa-states/WA.svg (added)
-
tags/8.9.3/assets/maps/usa-states/WI.svg (added)
-
tags/8.9.3/assets/maps/usa-states/WV.svg (added)
-
tags/8.9.3/assets/maps/usa-states/WY.svg (added)
-
tags/8.9.3/assets/maps/usa-states/index.php (added)
-
tags/8.9.3/assets/maps/world-map-with-antarctica.svg (added)
-
tags/8.9.3/assets/maps/world-map.svg (added)
-
tags/8.9.3/cf-geoplugin.php (added)
-
tags/8.9.3/constants.php (added)
-
tags/8.9.3/inc (added)
-
tags/8.9.3/inc/Init.php (added)
-
tags/8.9.3/inc/classes (added)
-
tags/8.9.3/inc/classes/API.php (added)
-
tags/8.9.3/inc/classes/Admin.php (added)
-
tags/8.9.3/inc/classes/Bots.php (added)
-
tags/8.9.3/inc/classes/Browser.php (added)
-
tags/8.9.3/inc/classes/CF_Geoplugin.php (added)
-
tags/8.9.3/inc/classes/CSV.php (added)
-
tags/8.9.3/inc/classes/Cache.php (added)
-
tags/8.9.3/inc/classes/Cache_DB.php (added)
-
tags/8.9.3/inc/classes/Debug.php (added)
-
tags/8.9.3/inc/classes/Defaults.php (added)
-
tags/8.9.3/inc/classes/Defender.php (added)
-
tags/8.9.3/inc/classes/Encoding.php (added)
-
tags/8.9.3/inc/classes/Form.php (added)
-
tags/8.9.3/inc/classes/Geo_Banner.php (added)
-
tags/8.9.3/inc/classes/Global.php (added)
-
tags/8.9.3/inc/classes/Help.php (added)
-
tags/8.9.3/inc/classes/IP.php (added)
-
tags/8.9.3/inc/classes/Library.php (added)
-
tags/8.9.3/inc/classes/License.php (added)
-
tags/8.9.3/inc/classes/Media.php (added)
-
tags/8.9.3/inc/classes/Menus.php (added)
-
tags/8.9.3/inc/classes/Metabox.php (added)
-
tags/8.9.3/inc/classes/Notifications.php (added)
-
tags/8.9.3/inc/classes/OS.php (added)
-
tags/8.9.3/inc/classes/OS_Helper.php (added)
-
tags/8.9.3/inc/classes/Options.php (added)
-
tags/8.9.3/inc/classes/Plugins.php (added)
-
tags/8.9.3/inc/classes/Public.php (added)
-
tags/8.9.3/inc/classes/REST.php (added)
-
tags/8.9.3/inc/classes/Requirements.php (added)
-
tags/8.9.3/inc/classes/SEO.php (added)
-
tags/8.9.3/inc/classes/SEO_Redirection.php (added)
-
tags/8.9.3/inc/classes/SEO_Redirection_Pages.php (added)
-
tags/8.9.3/inc/classes/SEO_Redirection_Table.php (added)
-
tags/8.9.3/inc/classes/Settings.php (added)
-
tags/8.9.3/inc/classes/Shortcodes.php (added)
-
tags/8.9.3/inc/classes/Shortcodes_Automat.php (added)
-
tags/8.9.3/inc/classes/Taxonomy.php (added)
-
tags/8.9.3/inc/classes/Utilities.php (added)
-
tags/8.9.3/inc/classes/Widgets.php (added)
-
tags/8.9.3/inc/classes/index.php (added)
-
tags/8.9.3/inc/filters (added)
-
tags/8.9.3/inc/filters/index.php (added)
-
tags/8.9.3/inc/filters/license.php (added)
-
tags/8.9.3/inc/filters/main_page.php (added)
-
tags/8.9.3/inc/filters/seo_redirection_form.php (added)
-
tags/8.9.3/inc/filters/seo_redirection_import.php (added)
-
tags/8.9.3/inc/filters/seo_redirection_table.php (added)
-
tags/8.9.3/inc/filters/settings-rest.php (added)
-
tags/8.9.3/inc/filters/settings.php (added)
-
tags/8.9.3/inc/index.php (added)
-
tags/8.9.3/inc/plugins (added)
-
tags/8.9.3/inc/plugins/buddyboss-platform (added)
-
tags/8.9.3/inc/plugins/buddyboss-platform/bp-loader.php (added)
-
tags/8.9.3/inc/plugins/buddyboss-platform/index.php (added)
-
tags/8.9.3/inc/plugins/contact-form-7 (added)
-
tags/8.9.3/inc/plugins/contact-form-7/contact-form-7.php (added)
-
tags/8.9.3/inc/plugins/contact-form-7/index.php (added)
-
tags/8.9.3/inc/plugins/elementor (added)
-
tags/8.9.3/inc/plugins/elementor/elementor.php (added)
-
tags/8.9.3/inc/plugins/elementor/index.php (added)
-
tags/8.9.3/inc/plugins/elementor/page (added)
-
tags/8.9.3/inc/plugins/elementor/page/cfgp-banner.php (added)
-
tags/8.9.3/inc/plugins/elementor/page/index.php (added)
-
tags/8.9.3/inc/plugins/elementor/widgets (added)
-
tags/8.9.3/inc/plugins/elementor/widgets/cfgp-elementor-content-widget.php (added)
-
tags/8.9.3/inc/plugins/elementor/widgets/cfgp-elementor-eu-widget.php (added)
-
tags/8.9.3/inc/plugins/elementor/widgets/cfgp-elementor-image-widget.php (added)
-
tags/8.9.3/inc/plugins/elementor/widgets/cfgp-elementor-vat-widget.php (added)
-
tags/8.9.3/inc/plugins/elementor/widgets/index.php (added)
-
tags/8.9.3/inc/plugins/gravityforms (added)
-
tags/8.9.3/inc/plugins/gravityforms/css (added)
-
tags/8.9.3/inc/plugins/gravityforms/css/gravityforms.css (added)
-
tags/8.9.3/inc/plugins/gravityforms/css/index.php (added)
-
tags/8.9.3/inc/plugins/gravityforms/custom-fields (added)
-
tags/8.9.3/inc/plugins/gravityforms/custom-fields/gf-country-region-city.php (added)
-
tags/8.9.3/inc/plugins/gravityforms/custom-fields/gf-country.php (added)
-
tags/8.9.3/inc/plugins/gravityforms/custom-fields/gf-ip.php (added)
-
tags/8.9.3/inc/plugins/gravityforms/custom-fields/index.php (added)
-
tags/8.9.3/inc/plugins/gravityforms/gravityforms.php (added)
-
tags/8.9.3/inc/plugins/gravityforms/index.php (added)
-
tags/8.9.3/inc/plugins/gravityforms/js (added)
-
tags/8.9.3/inc/plugins/gravityforms/js/gravityforms.js (added)
-
tags/8.9.3/inc/plugins/gravityforms/js/index.php (added)
-
tags/8.9.3/inc/plugins/woocommerce (added)
-
tags/8.9.3/inc/plugins/woocommerce/index.php (added)
-
tags/8.9.3/inc/plugins/woocommerce/woocommerce.php (added)
-
tags/8.9.3/inc/plugins/wooplatnica (added)
-
tags/8.9.3/inc/plugins/wooplatnica/index.php (added)
-
tags/8.9.3/inc/plugins/wooplatnica/wooplatnica.php (added)
-
tags/8.9.3/inc/plugins/wordpress-seo (added)
-
tags/8.9.3/inc/plugins/wordpress-seo/index.php (added)
-
tags/8.9.3/inc/plugins/wordpress-seo/wordpress-seo.php (added)
-
tags/8.9.3/inc/settings (added)
-
tags/8.9.3/inc/settings/debug.php (added)
-
tags/8.9.3/inc/settings/defender.php (added)
-
tags/8.9.3/inc/settings/google_map.php (added)
-
tags/8.9.3/inc/settings/index.php (added)
-
tags/8.9.3/inc/settings/license.php (added)
-
tags/8.9.3/inc/settings/main_page.php (added)
-
tags/8.9.3/inc/settings/seo_redirection.php (added)
-
tags/8.9.3/inc/settings/settings.php (added)
-
tags/8.9.3/inc/settings/sidebar.php (added)
-
tags/8.9.3/inc/traits (added)
-
tags/8.9.3/inc/traits/cache.php (added)
-
tags/8.9.3/inc/traits/index.php (added)
-
tags/8.9.3/inc/widgets (added)
-
tags/8.9.3/inc/widgets/Currency_Converter.php (added)
-
tags/8.9.3/inc/widgets/index.php (added)
-
tags/8.9.3/index.php (added)
-
tags/8.9.3/languages (added)
-
tags/8.9.3/languages/cf-geoplugin.pot (added)
-
tags/8.9.3/languages/index.php (added)
-
tags/8.9.3/library (added)
-
tags/8.9.3/library/.htaccess (added)
-
tags/8.9.3/library/index.php (added)
-
tags/8.9.3/library/postcodes (added)
-
tags/8.9.3/library/postcodes/index.php (added)
-
tags/8.9.3/library/postcodes/rs (added)
-
tags/8.9.3/library/postcodes/rs/index.php (added)
-
tags/8.9.3/library/postcodes/rs/rs.json (added)
-
tags/8.9.3/readme.txt (added)
-
tags/8.9.3/uninstall.php (added)
-
trunk/CHANGELOG.txt (modified) (1 diff)
-
trunk/cf-geoplugin.php (modified) (1 diff)
-
trunk/inc/classes/Bots.php (modified) (1 diff)
-
trunk/inc/classes/Browser.php (modified) (1 diff)
-
trunk/inc/classes/OS_Helper.php (modified) (10 diffs)
-
trunk/readme.txt (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
-
cf-geoplugin/trunk/CHANGELOG.txt
r3355639 r3357679 1 1 == Changelog == 2 3 = 8.9.3 = 4 * Added PHP support for the older PHP versions (7.0 and bove) 2 5 3 6 = 8.9.2 = -
cf-geoplugin/trunk/cf-geoplugin.php
r3355639 r3357679 9 9 * Plugin URI: https://wpgeocontroller.com/ 10 10 * Description: Unlock the power of location-based functionality of WordPress – The ultimate all-in-one geolocation plugin for WordPress. 11 * Version: 8.9. 211 * Version: 8.9.3 12 12 * Requires at least: 6.0 13 13 * Requires PHP: 7.0 -
cf-geoplugin/trunk/inc/classes/Bots.php
r3354427 r3357679 1 1 <?php 2 2 3 // If someone try to called this file directly via URL, abort. 3 4 if (!defined('WPINC')) { 4 5 die("Don't mess with us."); 6 } 7 8 if (!defined('ABSPATH')) { 9 exit; 5 10 } 6 11 -
cf-geoplugin/trunk/inc/classes/Browser.php
r3354427 r3357679 877 877 // Get information (if available) 878 878 $ch = CFGP_ClientHints::detect(); 879 if (!empty($ch['osName'] ) && $ch['osName'] !== 'Unknown') {879 if (!empty($ch['osName']??null) && $ch['osName'] !== 'Unknown') { 880 880 $this->_platform = $ch['osName']; 881 881 } -
cf-geoplugin/trunk/inc/classes/OS_Helper.php
r3355639 r3357679 1 1 <?php 2 // If someone try to called this file directly via URL, abort. 3 if (!defined('WPINC')) { die("Don't mess with us."); } 4 if (!defined('ABSPATH')) { exit; } 5 2 6 /** 3 7 * Client Hints helper (Windows 10/11 detection, architecture, bitness, brands) … … 33 37 final class CFGP_ClientHints 34 38 { 35 // Header names normalized to $_SERVER keys 36 privateconst H_SEC_CH_UA = 'HTTP_SEC_CH_UA';37 privateconst H_SEC_CH_UA_MOBILE = 'HTTP_SEC_CH_UA_MOBILE';38 privateconst H_SEC_CH_UA_PLATFORM = 'HTTP_SEC_CH_UA_PLATFORM';39 privateconst H_SEC_CH_UA_PLATFORM_VERSION = 'HTTP_SEC_CH_UA_PLATFORM_VERSION';40 privateconst H_SEC_CH_UA_ARCH = 'HTTP_SEC_CH_UA_ARCH';41 privateconst H_SEC_CH_UA_BITNESS = 'HTTP_SEC_CH_UA_BITNESS';42 privateconst H_SEC_CH_UA_FULL_VERSION_LIST = 'HTTP_SEC_CH_UA_FULL_VERSION_LIST';39 // Header names normalized to $_SERVER keys (no visibility for PHP<7.1) 40 const H_SEC_CH_UA = 'HTTP_SEC_CH_UA'; 41 const H_SEC_CH_UA_MOBILE = 'HTTP_SEC_CH_UA_MOBILE'; 42 const H_SEC_CH_UA_PLATFORM = 'HTTP_SEC_CH_UA_PLATFORM'; 43 const H_SEC_CH_UA_PLATFORM_VERSION = 'HTTP_SEC_CH_UA_PLATFORM_VERSION'; 44 const H_SEC_CH_UA_ARCH = 'HTTP_SEC_CH_UA_ARCH'; 45 const H_SEC_CH_UA_BITNESS = 'HTTP_SEC_CH_UA_BITNESS'; 46 const H_SEC_CH_UA_FULL_VERSION_LIST = 'HTTP_SEC_CH_UA_FULL_VERSION_LIST'; 43 47 44 48 /** … … 46 50 * Call as early as possible (before any output). 47 51 */ 48 public static function emitHeaders() : void52 public static function emitHeaders() 49 53 { 50 54 if (headers_sent()) { … … 52 56 } 53 57 54 // Ask for high-entropy hints we plan to read.55 58 header('Accept-CH: Sec-CH-UA, Sec-CH-UA-Mobile, Sec-CH-UA-Platform, Sec-CH-UA-Platform-Version, Sec-CH-UA-Arch, Sec-CH-UA-Bitness, Sec-CH-UA-Full-Version-List'); 56 59 57 // Permissions-Policy opt-in (syntax requires quoted tokens).58 60 header('Permissions-Policy: ' . 59 61 'ch-ua=("*"), ' . … … 70 72 * Detect platform/OS using Client Hints; fall back to UA when missing. 71 73 * 72 * @return array <string, mixed>74 * @return array 73 75 */ 74 public static function detect(): array 75 { 76 $ua = self::server('HTTP_USER_AGENT'); 76 public static function detect() 77 { 78 // Always cast UA to string to avoid TypeError in stripos() 79 $ua = (string) self::server('HTTP_USER_AGENT'); 77 80 $platformRaw = self::stripQuotes(self::server(self::H_SEC_CH_UA_PLATFORM)); 78 81 $platformVersionRaw = self::stripQuotes(self::server(self::H_SEC_CH_UA_PLATFORM_VERSION)); … … 84 87 $platform = self::normalizePlatform($platformRaw, $ua); 85 88 86 // Normalize version (e.g., "15.0.0") to [major,minor,patch]89 // Normalize version (e.g., "15.0.0") 87 90 $platformVersion = self::normalizeVersion($platformVersionRaw); 88 91 89 // Decide Windows edition from platformVersion (Chromium mapping)90 // Observed: Win 10 => "10.0.0"; Win 11 => "13.0.0+" (varies by release).91 $ isWindows = (strcasecmp($platform, 'Windows') === 0);92 $major = self::versionMajor($platformVersion); 93 $isWin11 = $isWindows && $major !== null && $major >= 13; // threshold configurable94 $isWin10 = $isWindows && $major !== null && $major < 13;95 96 // Fallback s from UA if hints missing or non-Chromium.92 // Windows flags by Client Hints 93 $isWindows = (strcasecmp((string)$platform, 'Windows') === 0); 94 $major = self::versionMajor($platformVersion); 95 96 $isWin11 = $isWindows && self::isWindows11ByMajor($major); 97 $isWin10 = $isWindows && ($major !== null) && ($major < 13); 98 99 // Fallback from UA if hints missing or non-Chromium 97 100 if (!$isWindows && stripos($ua, 'Windows NT') !== false) { 98 101 $isWindows = true; 99 // Distinguish 11 vs 10 is not reliable via UA; default to 10.100 102 if (!$platform) { 101 103 $platform = 'Windows'; 102 104 } 105 // UA ne razlikuje pouzdano 10 vs 11 103 106 } 104 107 105 108 $osName = self::composeOsName($platform, $isWin11, $isWin10, $ua); 106 109 107 return [110 return array( 108 111 'platform' => $platform ?: 'Unknown', 109 112 'platformVersion' => $platformVersion, … … 116 119 'is_windows_11' => $isWin11, 117 120 'is_windows_10' => $isWin10, 118 ];121 ); 119 122 } 120 123 121 124 /** 122 125 * Allow overriding the Windows 11 threshold (default >= 13). 123 * Example: CFGP_ClientHints::isWindows11ByMajor(15) // true 126 * @param mixed $major 127 * @return bool 124 128 */ 125 public static function isWindows11ByMajor(int $major): bool 126 { 127 // If your telemetry shows different mapping, adjust this constant or wrap with your filter. 128 return $major >= 13; 129 public static function isWindows11ByMajor($major) 130 { 131 $m = is_numeric($major) ? (int)$major : null; 132 if ($m === null) return false; 133 return $m >= 13; 129 134 } 130 135 131 136 // ----------------- Internals ----------------- 132 137 133 private static function server(string $key): ?string 134 { 138 private static function server($key) 139 { 140 if (!$key) return null; 135 141 return isset($_SERVER[$key]) && is_string($_SERVER[$key]) ? $_SERVER[$key] : null; 136 142 } 137 143 138 private static function stripQuotes( ?string $val): ?string144 private static function stripQuotes($val) 139 145 { 140 146 if ($val === null) return null; 141 147 $val = trim($val); 142 148 if ($val === '') return null; 143 // Many CH values are quoted; remove surrounding quotes if present.144 149 if ($val[0] === '"' && substr($val, -1) === '"') { 145 150 return substr($val, 1, -1); … … 148 153 } 149 154 150 private static function normalizePlatform( ?string $platform, ?string $ua): ?string155 private static function normalizePlatform($platform, $ua) 151 156 { 152 157 $p = $platform ? trim($platform) : ''; 153 158 if ($p !== '') { 154 // Standardize common names155 159 if (strcasecmp($p, 'macOS') === 0 || strcasecmp($p, 'Mac OS') === 0 || stripos($p, 'Mac') !== false) { 156 160 return 'Mac OS'; 157 161 } 158 if (strcasecmp($p, 'Windows') === 0) { 159 return 'Windows'; 160 } 161 if (strcasecmp($p, 'Linux') === 0) { 162 return 'Linux'; 163 } 164 if (strcasecmp($p, 'Android') === 0) { 165 return 'Android'; 166 } 167 if (strcasecmp($p, 'iOS') === 0) { 168 return 'iOS'; 169 } 170 return $p; // keep as provided 171 } 172 173 // Fallback: infer from UA 162 if (strcasecmp($p, 'Windows') === 0) return 'Windows'; 163 if (strcasecmp($p, 'Linux') === 0) return 'Linux'; 164 if (strcasecmp($p, 'Android') === 0) return 'Android'; 165 if (strcasecmp($p, 'iOS') === 0) return 'iOS'; 166 return $p; 167 } 168 174 169 $ua = (string)$ua; 175 170 if ($ua) { 176 if (stripos($ua, 'Windows') !== false) return 'Windows'; 177 if (stripos($ua, 'Android') !== false) return 'Android'; 178 if (stripos($ua, 'iPhone') !== false || stripos($ua, 'iPad') !== false || stripos($ua, 'iOS') !== false) return 'iOS'; 179 if (stripos($ua, 'Mac OS') !== false || stripos($ua, 'Macintosh') !== false) return 'Mac OS'; 180 if (stripos($ua, 'Linux') !== false) return 'Linux'; 171 if (stripos($ua, 'Windows') !== false) return 'Windows'; 172 if (stripos($ua, 'Android') !== false) return 'Android'; 173 if (stripos($ua, 'iPhone') !== false 174 || stripos($ua, 'iPad') !== false 175 || stripos($ua, 'iOS') !== false) return 'iOS'; 176 if (stripos($ua, 'Mac OS') !== false 177 || stripos($ua, 'Macintosh') !== false) return 'Mac OS'; 178 if (stripos($ua, 'Linux') !== false) return 'Linux'; 181 179 } 182 180 … … 184 182 } 185 183 186 private static function normalizeVersion( ?string $v): ?string184 private static function normalizeVersion($v) 187 185 { 188 186 if (!$v) return null; 189 // Accept forms like 15, "15.0", "15.0.0"; normalize to "15.0.0" 190 $parts = preg_split('/\s*[\.;,_-]\s*/', trim($v)); 191 if (!$parts || !ctype_digit($parts[0])) { 192 // Some browsers already provide "15.0.0"; keep it 193 if (preg_match('/^\d+(\.\d+){0,2}$/', $v)) { 194 // Pad to 3 components 195 $count = substr_count($v, '.'); 196 return $v . str_repeat('.0', max(0, 2 - $count)); 197 } 198 return null; 199 } 200 $major = (int)$parts[0]; 201 $minor = isset($parts[1]) && ctype_digit($parts[1]) ? (int)$parts[1] : 0; 202 $patch = isset($parts[2]) && ctype_digit($parts[2]) ? (int)$parts[2] : 0; 203 return $major . '.' . $minor . '.' . $patch; 204 } 205 206 private static function versionMajor(?string $v): ?int 187 $v = trim($v); 188 189 // Accept "15", "15.0", "15.0.0" and normalize to 3 parts 190 if (preg_match('/^\d+(\.\d+){0,2}$/', $v)) { 191 $count = substr_count($v, '.'); 192 return $v . str_repeat('.0', max(0, 2 - $count)); 193 } 194 195 // Some browsers separate with semicolons/underscores, try to parse first token as major 196 $parts = preg_split('/\s*[\.;,_-]\s*/', $v); 197 if ($parts && isset($parts[0]) && ctype_digit($parts[0])) { 198 $major = (int)$parts[0]; 199 $minor = (isset($parts[1]) && ctype_digit($parts[1])) ? (int)$parts[1] : 0; 200 $patch = (isset($parts[2]) && ctype_digit($parts[2])) ? (int)$parts[2] : 0; 201 return $major . '.' . $minor . '.' . $patch; 202 } 203 204 return null; 205 } 206 207 private static function versionMajor($v) 207 208 { 208 209 if (!$v) return null; 209 $m = null;210 210 if (preg_match('/^(\d+)/', $v, $mm)) { 211 $m = (int)$mm[1]; 212 } 213 return $m; 214 } 215 216 private static function composeOsName(?string $platform, bool $isWin11, bool $isWin10, string $ua): string 217 { 218 if(!$platform) { 219 return 'Unknown'; 220 } 221 211 return (int)$mm[1]; 212 } 213 return null; 214 } 215 216 private static function composeOsName($platform, $isWin11, $isWin10, $ua) 217 { 218 if (!$platform) { 219 return 'Unknown'; 220 } 221 222 $ua = (string)$ua; 223 224 // Normalize to booleans 225 $isWin10 = (bool) $isWin10; 226 $isWin11 = (bool) $isWin11; 227 222 228 if ($platform === 'Windows') { 223 229 if ($isWin11) return 'Windows 11'; 224 230 if ($isWin10) return 'Windows 10'; 225 // Unknown Windows variant from UA226 231 if (stripos($ua, 'Windows NT 6.1') !== false) return 'Windows 7'; 227 232 if (stripos($ua, 'Windows NT 6.2') !== false) return 'Windows 8'; … … 233 238 if ($platform === 'Android') return 'Android'; 234 239 if ($platform === 'iOS') return 'iOS'; 235 240 236 241 return 'Unknown'; 237 242 } -
cf-geoplugin/trunk/readme.txt
r3355639 r3357679 6 6 Tested up to: 6.8 7 7 Requires PHP: 7.0 8 Stable tag: 8.9. 28 Stable tag: 8.9.3 9 9 License: GPLv2 or later 10 10 License URI: http://www.gnu.org/licenses/gpl-2.0.html … … 415 415 == Changelog == 416 416 417 = 8.9.3 = 418 * Added PHP support for the older PHP versions (7.0 and bove) 419 417 420 = 8.9.2 = 418 421 * Fixed unexpected PHP errors … … 528 531 == Upgrade Notice == 529 532 533 = 8.9.3 = 534 * Added PHP support for the older PHP versions (7.0 and bove) 535 530 536 = 8.9.2 = 531 537 * Fixed unexpected PHP errors 532 533 = 8.9.1 =534 * Added Client Hints (UA-CH) support for accurate detection535 * Improved UA fallback parsing, safer regex, and bot-first detection536 * Cleaner platform mapping537 * Backward compatible API538 * Fixed GUI and documentation539 * Code optimization540 541 = 8.9.0 =542 * Complete rewrite of plugin documentation with clearer structure and new usage examples.543 * Added Disclaimer / Legal Notice and Accessibility Statement.544 * Updated Privacy Policy and Terms & Conditions references.545 * Improved explanations for shortcodes, CSS, and Google Maps integration.546 * Enhanced CSV import/export instructions for SEO redirection.547 * Fixed minor typos and grammar issues across admin settings.548 * Small UI text refinements for better user experience.549 538 550 539 == Other Notes ==
Note: See TracChangeset
for help on using the changeset viewer.