....................................../////.===Shadow-Here===./////................................................ > < > < > < > < > < > < > < > < > < > < > < > < > < > < > < > < > < > < > < > < > < > < > < > < > < > < > < > < > < ------------------------------------------------------------------------------------------------------------------- /////////////////////////////////////////////////////////////////////////////////////////////////////////////////// RIFF¤ WEBPVP8 ˜ ðÑ *ôô>‘HŸK¥¤"§£±¨àð enü¹%½_F‘åè¿2ºQú³íªú`N¿­3ÿƒügµJžaÿ¯ÿ°~¼ÎùnúîÞÖô•òíôÁÉß®Sm¥Ü/ ‡ó˜f£Ùà<˜„xëJ¢Ù€SO3x<ªÔ©4¿+ç¶A`q@Ì“Úñè™ÍÿJÌ´ª-˜ÆtÊÛL]Ïq*‘Ý”ì#ŸÌÏãY]@ê`¿ /ªfkØB4·®£ó z—Üw¥Pxù–ÞLШKÇN¾AkÙTf½è'‰g gÆv›Øuh~ a˜Z— ïj*á¥t d£“uÒ ¨`K˜¹ßþ]b>˜]_ÏÔ6W—è2r4x•íÖ…"ƒÖNîä!¦å Ú}ýxGøÌ —@ ;ÆÚŠ=ɾ1ý8lªË¥ô ^yf®Œ¢u&2©nÙÇ›ñÂñŒ³ aPo['½»øFùà­+4ê“$!lövlüÞ=;N®3ð‚õ›DÉKòÞ>ÄÍ ¥ˆuߤ#ˆ$6ù™¥îЇy’ÍB¼ çxÛ;X"WL£R÷͝*ó-¶Zu}º.s¸sšXqù–DþÿvªhüïwyŸ ¯é³lÀ:KCûÄ£Ëá\…­ ~—ýóî ¼ûûÜTÓüÇy…ŽÆvc»¾×U ñ¸žþоP÷¦ó:Ò¨¨5;Ð#&#ÖúñläÿÁœ GxÉ­/ñ‡áQðìYÉtÒw޼GÔ´zàÒò ð*ëzƒ•4~H]Ø‹f ñÓÈñ`NåWçs'ÆÏW^ø¹!XžµmQ5ÃËoLœÎ: ÞËÍ¥J ù…î èo£ßPÎñ¶ž8.Œ]ʵ~5›ÙË-ù*8ÙÖß±~ ©¹rÓê‚j¶d¸{^Q'˜±Crß ÚH—#¥¥QlÀ×ëã‡DÜ«èî þ&Çæžî;ŽÏºò6ÒLÃXy&ZŒ'j‚¢Ù€IßÚù+–MGi‰*jE€‘JcÜ ÓÌ EÏÚj]o˜ Þr <¾U ûŪæÍ/šÝH¥˜b”¼ ÁñßX GP›ï2›4WŠÏà×£…íÓk†¦H·ÅíMh–*nó÷à]ÁjCº€b7<ب‹¨5車bp2:Á[UªM„QŒçiNMa#<5›áËó¸HýÊ"…×Éw¹¦ì2º–x<›»a±¸3Weü®FÝ⑱ö–î–³|LPÈ~çð~Çå‡|º kD¢µÏàÆAI %1À% ¹Ò – ”ϝS¦‰4&¶£°à Öý”û_Ò Áw°A«Å€?mÇÛgHÉ/8)á¾ÛìáöŽP í¨PŸNÙµº¦‡§Ùš"ÿ«>+ªÕ`Ê÷‡‚ß Õû˜þãÇ-PÍ.¾XV‘€ dÜ"þ4¹ ±Oú‘©t¥¦FªÄÃÄ•b‚znýu½—#cDs˜ÃiÑOˆñ×QO=*IAÊ,¶ŽZƒ;‡wøXè%EÐk:F±Ú” .Ѽ+Áu&Ç`."pÈÉw o&¿dE6‘’EqTuK@Ì¥ã™À(Êk(h‰,H}RÀIXÛš3µ1©_OqÚÒJAñ$ÊÙÜ;D3çŒ[þùœh¬Ã³™ö6ç†NY".Ú‰ï[ªŸŒ '²Ð öø_¨ÂÉ9ué¶³ÒŠõTàîMØ#û¯gN‡bÙ놚X„ö …ÉeüÌ^J ‹€.œ$Æ)βÄeæW#óüßĺŸ€ ÀzwV 9oä»f4V*uB «Ë†¹ì¯žR霓æHXa=&“I4K;¯ç‹h×·"UŠ~<•╪Vêª&ÍSÃÆÅ?ÔqÎ*mTM ˜›µwêd#[C¡©§‘D<©àb†–ÁœøvH/,í:¯( ²£|4-„Æövv„Yͼ™^Á$ˆ„¢Û[6yB.åH*V¨æ?$=˜Ñ€•ñ·­(VlŸ‘ nÀt8W÷´Bûba?q9ú¶Xƒl«ÿ\ù¶’þòUÐj/õ¢Ìµ³g$ƒÎR!¸»|Oߍë’BhîÚÑ¢ñåŒJ„®„£2Ð3•ô02Nt…!£Í]Ïc½Qÿ?ˆ<&ÃA¾Ú,JˆijÌ#5yz„‰Î|ÊŽ5QÏ:‹ÐaóVÔxW—CpeÏzÐïíçôÿÅ_[hãsÐ_/ŽTÝ?BîˆííV$<¿i>²F¬_Eß¿ †bÊŒº­ÿ®Z H“C}”¬,Mp ý/Bá£w>˜YV°aƒúh+cŠ- r/[%|üUMHäQ°X»|û/@|°¥Ð !BÔ Ç¢Ä©š+Õì D«7ìN¶ŽðÔ " ƶ’ÖçtA‰Û×}{tþz­¾GÍ›k¹OEJR$ Â׃ «ëÁ"oÉôž$oUK(Ä)Ãz³Ê-‹êN[Ò3Œñbï8P 4ƒ×q¢bo|?<ÛX¬òÄͰL–±›(™ûG?ýË©ÚÄ–ÂDØÐ_Ç¡ô ¾–ÄÏø ×e8Ë©$ÄF¹Å‹ì[©óìl:F¾f´‹‹Xì²ï®\¬ôùƒ ÿat¥óèÒùHß0äe‚;ü×h:ÆWðHž=Ã8骣"kœ'Y?³}Tûè€>?0l›e1Lòñ„aæKÆw…hÖŠùW…ÈÆÄ0ši·›[pcwËþñiêíY/~-Á5˜!¿†A›™Mÿþ(±“t@â“ö2­´TG5yé]çå僳 .·ÍïçÝ7UÚ±Ð/Nè»,_Ï ùdj7\ï Wì4›„»c¸àešg#ÒÊ⥭áØo5‘?ÌdÝô¯ ¹kzsƒ=´#ëÉK›Ø´±-¥eW?‡çßtòTã…$Ý+qÿ±ƒ÷_3Ô¥í÷:æ–ž<·Ö‡‰Å¢ š‡%Ô—utÌÈìðžgÖÀz²À—ï÷Óîäõ{K'´È÷³yaÏÁjƒô}ž§®æÊydÕÈë5¯èˆõvÕ©ã*çD„ “z„Ó‡^^xÂ3M§A´JG‚öï 3W'ˆ.OvXè¡ÊÕª?5º7†˜(˜Ç¶#çê’¶!ÌdZK§æ 0fãaN]òY³RV ™î$®K2R¨`W!1Ôó\;Ý ýB%qæK•&ÓÈe9È0êI±žeŸß -ú@žQr¦ ö4»M¼Áè¹µmw 9 EÆE_°2ó„ŸXKWÁ×Hóì^´²GѝF©óäR†¦‰ç"V»eØ<3ùd3ÿÚ¤Žú“Gi" —‘_ÙËÎ~Üö¯¥½Î»üŸEÚŽåmÞþí ;ÞólËΦMzA"Âf(´òá;Éï(/7½ûñÌ­cïÕçлþÝz¾-ÍvÑ“pH­–ðÓj$¸Äû¤‚‘ãUBË-n“2åPkS5&‹Â|+g^œ®Ì͆d!OïäîU«c;{Û!ÅŽ«ëZ9Ókóˆ]¯ƒ›né `ÇÒ+tÆš (ØKá¾—=3œ®•vuMñg²\ï Ec€ 05±d™‡×iÇ×›UúvÌ¢£Èþ¡ÕØô¶ßÎA"ß±#Ö²ˆÊŸ¦*Ä~ij|àø.-¼'»Ú¥£h ofº¦‡VsR=N½„Î v˜Z*SÌ{=jÑB‹tê…;’HžH¯8–îDù8ñ¢|Q•bÛçš–‹m³“ê¨ åÏ^m¬Žãþ©ïêO‡½6] µÆ„Ooòü ²x}N¦Ë3ïé¿»€›HA˜m%çÞ/¿í7Fø“‹léUk)É°Œµ8Q8›:ÀŠeT*šõ~ôڝG6 ¢}`ùH­–”¡k ‰P1>š†®9z11!X wKfmÁ¦xÑ,N1Q”–æB¶M…ÒÃv6SMˆhU¬ÊPŽï‘öj=·CŒ¯u¹ƒVIЃsx4’ömÛýcå¡¶7ßŠß 57^\wÒÐÆ k§h,Œý î«q^R½3]J¸ÇðN ‚çU¬ôº^Áì} ³f©Õœ§ˆã:FÄÈ‚é(€™?àýÓüè1Gô£¼éj‚OÅñ  #>×—ßtà 0G¥Åa뀐kßhc™À_ÉñÞ#±)GD" YîäË-ÿÙ̪ ¹™a¯´¢E\ÝÒö‚;™„ë]_ p8‰o¡ñ+^÷ 3‘'dT4œŽ ðVë½° :¬víÑ«£tßÚS-3¶“þ2 †üüʨòrš¹M{É_¤`Û¨0ìjœøJ‡:÷ÃáZ˜†@GP&œÑDGÏs¡þ¦þDGú‘1Yá9Ôþ¼ ûø…§÷8&–ÜÑnÄ_m®^üÆ`;ÉVÁJ£?â€-ßê}suÍ2sõA NÌúA磸‘îÿÚ»ƒìö·á¿±tÑÐ"Tÿü˜[@/äj¬€uüªìù¥Ý˜á8Ý´sõj 8@rˆð äþZÇD®ÿUÏ2ùôõrBzÆÏÞž>Ì™xœ“ wiÎ×7_… ¸ \#€MɁV¶¥üÕÿPÔ9Z‡ø§É8#H:ƒ5ÀÝå9ÍIŒ5åKÙŠ÷qÄ>1AÈøžj"µÂд/ªnÀ qªã}"iŸBå˜ÓÛŽ¦…&ݧ;G@—³b¯“•"´4í¨ôM¨åñC‹ïùÉó¯ÓsSH2Ý@ßáM‡ˆKÀªÛUeø/4\gnm¥‹ŸŒ qÄ b9ÞwÒNÏ_4Ég³ú=܆‚´ •â¥õeíþkjz>éÚyU«Íӝ݃6"8/ø{=Ô¢»G¥ äUw°W«,ô—¿ãㆅү¢³xŠUû™yŒ (øSópÐ 9\åTâ»—*oG$/×ÍT†Y¿1¤Þ¢_‡ ¼ „±ÍçèSaÓ 3ÛMÁBkxs‰’R/¡¤ˆÙçª(*õ„üXÌ´ƒ E§´¬EF"Ù”R/ÐNyÆÂ^°?™6¡œïJ·±$§?º>ÖüœcNÌù¯G ‹ñ2ЁBB„^·úìaz¨k:#¨Æ¨8LÎõލ£^§S&cŒÐU€ü(‡F±Š¼&P>8ÙÁ ‰ p5?0ÊÆƒZl¸aô š¼¡}gÿ¶zÆC²¹¬ÎÖG*HB¡O<º2#ñŒAƒ–¡B˜´É$¥›É:FÀÔx¾u?XÜÏÓvN©RS{2ʈãk9rmP¼Qq̳ è¼ÐFׄ^¡Öì fE“F4A…!ì/…¦Lƒ… … $%´¾yã@CI¬ á—3PþBÏNÿ<ý°4Ü ËÃ#ØÍ~âW«rEñw‹eùMMHß²`¬Öó½íf³:‹k˜¯÷}Z!ã¿<¥,\#öµÀ¯aÒNÆIé,Ћ–lŽ#Àæ9ÀÒS·I’½-Ïp Äz¤Š Â* ­íÄ9­< h>׍3ZkËU¹§˜ŒŠ±f­’¤º³Q ÏB?‹#µíÃ¥®@(Gs«†vI¥Mµ‹Á©e~2ú³ÁP4ìÕi‚²Ê^ö@-DþÓàlÜOÍ]n"µã:žpsŽ¢:! Aõ.ç~ÓBûH÷JCÌ]õVƒd «ú´QÙEA–¯¯Œ!.ˆˆëQ±ù œ·Ì!Õâ )ùL„ÅÀlÚè5@B…o´Æ¸XÓ&Û…O«˜”_#‡ƒ„ûÈt!¤ÁÏ›ÎÝŠ?c9 â\>lÓÁVÄÑ™£eØY]:fÝ–—ù+p{™ðè û³”g±OƒÚSù£áÁÊ„ä,ï7š²G ÕÌBk)~ÑiCµ|h#u¤¶îK¨² #²vݯGãeÖ϶ú…¾múÀ¶þÔñ‚Š9'^($¤§ò “š½{éúp÷J›ušS¹áªCÂubÃH9™D™/ZöØÁ‡¦ÝÙŸ·kð*_”.C‹{áXó€‡c¡c€§/šò/&éš÷,àéJþ‰X›fµ“C¨œ®r¬"kL‰Â_q…Z–.ÉL~O µ›zn‚¹À¦Öª7\àHµšÖ %»ÇníV[¥*Õ;ƒ#½¾HK-ÖIÊdÏEÚ#=o÷Óò³´Š: Ç?{¾+9›–‘OEáU·S€˜j"ÄaÜ ŒÛWt› á–c#a»pÔZÞdŽtWê=9éöÊ¢µ~ ë ;Öe‡Œ®:bî3±ýê¢wà¼îpêñ¹¾4 zc¾ðÖÿzdêŒÑÒŝÀ‰s6¤í³ÎÙB¿OZ”+F¤á‡3@Ñëäg©·Ž ˆèª<ù@É{&S„œÕúÀA)‰h:YÀ5^ÂÓŒ°õäU\ ùËÍû#²?Xe¬tu‰^zÒÔãë¼ÛWtEtû …‚g¶Úüâî*moGè¨7%u!]PhÏd™Ý%Îx: VÒ¦ôÊD3ÀŽKÛËãvÆî…N¯ä>Eró–ð`5 Œ%u5XkñÌ*NU%¶áœÊ:Qÿú»“úzyÏ6å-၇¾ ´ ÒÊ]y žO‘w2Äøæ…H’²f±ÎÇ.ª|¥'gîV•Ü .̘¯€šòü¤U~Ù†*¢!?ò wý,}´°ÔÞnïoKq5µb!áÓ3"vAßH¡³¡·G(ÐÎ0Îò¼MG!/ài®@—¬04*`…«é8ªøøló“ˆÊ”èù¤…ßÊoÿé'ËuÌÖ5×È¡§ˆˆfŽë9}hìâ_!!¯  B&Ëö¶‰ÀAÙNVŸ Wh›¸®XÑJì¨ú“¿÷3uj²˜¨ÍÎìë±aúŠÝå¯ð*Ó¨ôJ“yºØ)m°WýOè68†ŸÏ2—‰Ïüꪫٚ¥‹l1 ø ÏÄFjêµvÌbü¦èÝx:X±¢H=MÐß—,ˆÉÇ´(9ú¾^ÅÚ4¿m‡$âX‘å%(AlZo@½¨UOÌÕ”1ø¸jÎÀÃÃ_ µ‘Ü.œº¦Ut: Æï’!=¯uwû#,“pþÇúŒø(é@?³ü¥‘Mo §—s@Œ#)§ŒùkL}NOÆêA›¸~r½¼ÙA—HJ«eˆÖ´*¡ÓpÌŸö.m<-"³ûÈ$¬_6­åf£ïÚâj1y§ÕJ½@dÞÁr&Í\Z%D£Íñ·AZ Û³øüd/ªAi†/Й~  ‡âĮҮÏh§°b—›Û«mJžòG'[ÈYýŒ¦9psl ýÁ ®±f¦x,‰½tN ‚Xª9 ÙÖH.«Lo0×?͹m¡å†Ѽ+›2ƒF ±Ê8 7Hցϓ²Æ–m9…òŸï]Â1äN†VLâCˆU .ÿ‰Ts +ÅÎx(%¦u]6AF Š ØF鈄‘ |¢¶c±soŒ/t[a¾–û:s·`i햍ê›ËchÈ…8ßÀUÜewŒðNOƒõD%q#éû\9¤x¹&UE×G¥ Í—™$ð E6-‡¼!ýpãÔM˜ Âsìe¯ñµK¢Ç¡ùôléœ4Ö£”À Š®Ðc ^¨À}ÙËŸ§›ºê{ÊuÉC ×Sr€¤’fÉ*j!úÓ’Gsùìoîßîn%ò· àc Wp÷$¨˜)û»H ×8ŽÒ€Zj¤3ÀÙºY'Ql¦py{-6íÔCeiØp‘‡XÊîÆUߢ܂ž£Xé¼Y8þ©ëgñß}é.ÎógÒ„ÃØËø¯»™§Xýy M%@NŠ À(~áÐvu7&•,Ù˜ó€uP‡^^®=_E„jt’ 403WebShell
403Webshell
Server IP : 104.19.154.92  /  Your IP : 216.73.216.47
Web Server : Apache
System : Linux lon12.onrocket.com 4.18.0-513.9.1.lve.el8.x86_64 #1 SMP Mon Dec 4 15:01:22 UTC 2023 x86_64
User : gd5hzp4 ( 1069)
PHP Version : 7.4.33
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /home/gd5hzp4/www/wp-content/plugins/uk-address-postcode-validation/classes/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /home/gd5hzp4/www/wp-content/plugins/uk-address-postcode-validation/classes/ideal.postcodes.php
<?php

if (!class_exists("WC_IdealPostcodes_Integration")):
  class WC_IdealPostcodes_Integration extends WC_Integration
  {
    public function __construct()
    {
      global $woocommerce;

      $this->id = "idealpostcodes";
      $this->method_title = __(
        "UK Address Postcode Validation",
        "woocommerce-idealpostcodes"
      );
      $this->method_description = __(
        "Adds Ideal Postcodes UK address validation to WooCommerce. See the <a href=\"https://ideal-postcodes.co.uk/guides/woocommerce\">guide</a> for more information.",
        "woocommerce-idealpostcodes"
      );

      // Load the settings.
      $this->add_form_fields();
      $this->init_settings();

      // Define user set variables.
      $this->config = (object) [
        "idealpostcodes_enabled" => $this->get_option("idealpostcodes_enabled"),
        "idealpostcodes_api_key" => $this->get_option("idealpostcodes_api_key"),
        "idealpostcodes_populate_organisation" => $this->get_option(
          "idealpostcodes_populate_organisation"
        ),
        "idealpostcodes_populate_county" => $this->get_option(
          "idealpostcodes_populate_county"
        ),
        "idealpostcodes_watch_country" => $this->get_option(
          "idealpostcodes_watch_country"
        ),
        "idealpostcodes_separate_finder" => $this->get_option(
          "idealpostcodes_separate_finder"
        ),
        "idealpostcodes_postcodelookup_override" => $this->get_option(
          "idealpostcodes_postcodelookup_override"
        ),
        "idealpostcodes_autocomplete_override" => $this->get_option(
          "idealpostcodes_autocomplete_override"
        ),
      ];

      add_action("woocommerce_update_options_integration_" . $this->id, [
        $this,
        "process_admin_options",
      ]);

      if ($this->config->idealpostcodes_enabled === "yes") {
        //IdealPostcodes custom action
        add_action("ideal_postcodes_address_search", [$this, "add_js"]);
        //Bind to checkout
        add_action("woocommerce_before_checkout_form", function () {
          do_action("ideal_postcodes_address_search");
        });
        // Bind to accounts
        add_action("woocommerce_before_edit_account_address_form", function () {
          do_action("ideal_postcodes_address_search");
        });
        if(is_admin()) {
          add_action( 'admin_enqueue_scripts', [$this, 'add_admin_js'] );
        }
      }
    }

    public function add_form_fields()
    {
      $this->form_fields = [
        "idealpostcodes_required" => [
          "title" => __("Required", IDEALPOSTCODES_SLUG),
          "type" => "title",
          "css" => "",
          "id" => "idealpostcodes_required",
          "description" => "",
        ],
        "idealpostcodes_enabled" => [
          "id" => "idealpostcodes_enabled",
          "title" => __("Enabled", IDEALPOSTCODES_SLUG),
          "type" => "checkbox",
          "description" => __(
            "Globally activate or deactivate this plugin",
            IDEALPOSTCODES_SLUG
          ),
          "default" => "yes",
        ],
        "idealpostcodes_api_key" => [
          "id" => "idealpostcodes_api_key",
          "title" => __("API Key", IDEALPOSTCODES_SLUG),
          "type" => "text",
          "description" => "",
        ],
        "idealpostcodes_options" => [
          "title" => __("Options", IDEALPOSTCODES_SLUG),
          "type" => "title",
          "css" => "",
          "id" => "idealpostcodes_options",
          "description" => "",
        ],
        "idealpostcodes_autocomplete" => [
          "id" => "idealpostcodes_autocomplete",
          "title" => __("Enable Address Autocomplete", IDEALPOSTCODES_SLUG),
          "type" => "checkbox",
          "description" => __(
            "Toggles customer facing address autocomplete functionality in checkout and accounts pages",
            IDEALPOSTCODES_SLUG
          ),
          "default" => "yes",
        ],
        "idealpostcodes_postcodelookup" => [
          "id" => "idealpostcodes_postcodelookup",
          "title" => __("Enable Address Postcode Lookup", IDEALPOSTCODES_SLUG),
          "type" => "checkbox",
          "description" => __(
            "Toggles customer facing postcode lookup functionality in checkout and accounts pages",
            IDEALPOSTCODES_SLUG
          ),
          "default" => "yes",
        ],
        "idealpostcodes_admin_autocomplete" => [
          "id" => "idealpostcodes_admin_autocomplete",
          "title" => __("Enable Admin Address Autocomplete", IDEALPOSTCODES_SLUG),
          "type" => "checkbox",
          "description" => __(
            "Toggles Address Autocomplete functionality on your WooCommerce administrative pages like order creation and editing",
            IDEALPOSTCODES_SLUG
          ),
          "default" => "yes",
        ],
        "idealpostcodes_watch_country" => [
          "id" => "idealpostcodes_watch_country",
          "title" => __(
            "Enable Address Validation based on country",
            IDEALPOSTCODES_SLUG
          ),
          "type" => "checkbox",
          "description" => __(
            "Enabling this feature will disable our Address Validation tools when an unsupported territory is selected",
            IDEALPOSTCODES_SLUG
          ),
          "default" => "false",
        ],
        "idealpostcodes_separate_finder" => [
          "id" => "idealpostcodes_separate_finder",
          "title" => __(
            "Create a Separate Field for Address Finder",
            IDEALPOSTCODES_SLUG
          ),
          "type" => "checkbox",
          "description" => __(
            "Enabling this feature will move the Address Finder into a separate input field above the main address form",
            IDEALPOSTCODES_SLUG
          ),
          "default" => "false",
        ],
        "idealpostcodes_populate_organisation" => [
          "id" => "idealpostcodes_populate_organisation",
          "title" => __("Enable Populate Organisation", IDEALPOSTCODES_SLUG),
          "type" => "checkbox",
          "description" => __(
            "Fill the Company field based on selected address.",
            IDEALPOSTCODES_SLUG
          ),
          "default" => "yes",
        ],
        "idealpostcodes_populate_county" => [
          "id" => "idealpostcodes_populate_county",
          "title" => __("Enable County", IDEALPOSTCODES_SLUG),
          "type" => "checkbox",
          "description" => __(
            "This will populate the county field. County data is no longer used in the UK to identify a premise, however this can be enabled if you prefer.",
            IDEALPOSTCODES_SLUG
          ),
          "default" => "yes",
        ],
        "idealpostcodes_advanced" => [
          "title" => __("Advanced Configuration", IDEALPOSTCODES_SLUG),
          "type" => "title",
          "css" => "",
          "id" => "idealpostcodes_advanced",
          "description" => "",
        ],
        "idealpostcodes_postcodelookup_override" => [
          "id" => "idealpostcodes_postcodelookup_override",
          "title" => __(
            "Postcode Lookup Configuration Override",
            IDEALPOSTCODES_SLUG
          ),
          "type" => "textarea",
          "description" => __(
            "This setting overrides your postcode lookup configuration globally to allow for highly customisable and niche integrations. Leave blank to disable. This setting is dangerous as invalid input will break your integration.",
            IDEALPOSTCODES_SLUG
          ),
          "default" => "",
        ],
        "idealpostcodes_autocomplete_override" => [
          "id" => "idealpostcodes_autocomplete_override",
          "title" => __(
            "Address Autocomplete Configuration Override",
            IDEALPOSTCODES_SLUG
          ),
          "type" => "textarea",
          "description" => __(
            "This setting overrides your address autocomplete configuration globally to allow for highly customisable and niche integrations. Leave blank to disable. This setting is dangerous as invalid input will break your integration.",
            IDEALPOSTCODES_SLUG
          ),
          "default" => "",
        ],
      ];
    }

    /**
     * Get all options with default values
     */
    public function get_options()
    {
      return [
        "enabled" => $this->to_bool(
          $this->get_option("idealpostcodes_enabled")
        ),
        "apiKey" => $this->get_option("idealpostcodes_api_key"),
        "autocomplete" => $this->to_bool(
          $this->get_option("idealpostcodes_autocomplete")
        ),
        "postcodeLookup" => $this->to_bool(
          $this->get_option("idealpostcodes_postcodelookup")
        ),
        "watchCountry" => $this->to_bool(
          $this->get_option("idealpostcodes_watch_country")
        ),
        "separateFinder" => $this->to_bool(
          $this->get_option("idealpostcodes_separate_finder")
        ),
        "populateOrganisation" => $this->to_bool(
          $this->get_option("idealpostcodes_populate_organisation")
        ),
        "populateCounty" => $this->to_bool(
          $this->get_option("idealpostcodes_populate_county")
        ),
        "postcodeLookupOverride" => $this->get_option(
          "idealpostcodes_postcodelookup_override"
        ),
        "autocompleteOverride" => $this->get_option(
          "idealpostcodes_autocomplete_override"
        ),
      ];
    }

    public function to_bool($str)
    {
      if ($str === "yes") {
        return true;
      } else {
        return false;
      }
    }

    public function add_js()
    {
      $this->add_autocomplete_styles();
      $this->add_autocomplete_plugin();
      $this->add_postcode_lookup_plugin();
      $this->add_idpc_bindings();
    }
    /**
     * Add jquery plugin code
     */
    private function add_postcode_lookup_plugin()
    {
      wp_enqueue_script(
        "postcode-lookup",
        IDEALPOSTCODES_URL . "js/postcodes.min.js",
        ["jquery"]
      );
    }

    /**
     * Add autocomplete plugin
     */
    private function add_autocomplete_plugin()
    {
      wp_enqueue_script(
        "ideal-postcodes-autocomplete",
        IDEALPOSTCODES_URL . "js/ideal-postcodes-autocomplete.min.js"
      );
    }

    public function add_admin_js()
    {
      $enabled = $this->to_bool(
        $this->get_option("idealpostcodes_admin_autocomplete")
      );

      if(!$enabled) return;

      $this->add_autocomplete_styles();
      $this->add_admin_idpc_bindings();
    }

    /**
     * Add autocomplete stylesheet
     */
    private function add_autocomplete_styles()
    {
      wp_enqueue_style(
        "ideal-postcodes-autocomplete-style",
        IDEALPOSTCODES_URL . "css/ideal-postcodes-autocomplete.css"
      );
    }

    /**
     * Init js plugin on the checkout page
     */
    private function add_idpc_bindings()
    {
      $options = $this->get_options();
      $postcode_lookup_override =
        strlen($options["postcodeLookupOverride"]) > 0
          ? html_entity_decode($options["postcodeLookupOverride"])
          : "{}";
      $autocomplete_override =
        strlen($options["autocompleteOverride"]) > 0
          ? html_entity_decode($options["autocompleteOverride"])
          : "{}";
      $options["postcodeLookupOverride"] = "%postcodeLookupOverride%";
      $options["autocompleteOverride"] = "%autocompleteOverride%";
      $json = json_encode($options, JSON_FORCE_OBJECT);
      $script = "window.idpcConfig = " . $json . ";";
      //replace overrides
      $script = str_replace(
        "\"%postcodeLookupOverride%\"",
        $postcode_lookup_override,
        $script
      );
      $script = str_replace(
        "\"%autocompleteOverride%\"",
        $autocomplete_override,
        $script
      );
      wp_enqueue_script(
        "ideal-postcodes-bindings",
        IDEALPOSTCODES_URL . "js/woocommerce.min.js",
        [],
        "1.0",
        true
      );
      wp_add_inline_script("ideal-postcodes-bindings", $script, "before");
    }
    /**
     * Init js plugin on the checkout page
     */
    private function add_admin_idpc_bindings()
    {
      $options = $this->get_options();
      $postcode_lookup_override =
        strlen($options["postcodeLookupOverride"]) > 0
          ? html_entity_decode($options["postcodeLookupOverride"])
          : "{}";
      $autocomplete_override =
        strlen($options["autocompleteOverride"]) > 0
          ? html_entity_decode($options["autocompleteOverride"])
          : "{}";
      $options["postcodeLookupOverride"] = "%postcodeLookupOverride%";
      $options["autocompleteOverride"] = "%autocompleteOverride%";
      $json = json_encode($options, JSON_FORCE_OBJECT);
      $script = "window.idpcConfig = " . $json . ";";
      //replace overrides
      $script = str_replace(
        "\"%postcodeLookupOverride%\"",
        $postcode_lookup_override,
        $script
      );
      $script = str_replace(
        "\"%autocompleteOverride%\"",
        $autocomplete_override,
        $script
      );
      wp_enqueue_script(
        "ideal-postcodes-bindings",
        IDEALPOSTCODES_URL . "js/admin-woocommerce.min.js",
        [],
        "1.0",
        true
      );
      wp_add_inline_script("ideal-postcodes-bindings", $script, "before");
    }
  }
endif;

Youez - 2016 - github.com/yon3zu
LinuXploit