Pereiti prie turinio
← Visos PrestaShop 9 klaidos

PrestaShop 9 klaidos

Call to undefined method ajaxDie() PrestaShop 9 versijoje

PrestaShop 9 pašalino ajaxDie() iš valdiklių. Modulių AJAX veiksmai, kurie juo atsakydavo, nebeveikia, o mygtukai, filtrai ar formos tyliai nustoja reaguoti.

Klaida
Call to undefined method MyModuleAjaxModuleFrontController::ajaxDie()
Pašalinta
PrestaShop 9.0
Dažniausiai randama
Modulių valdikliai (parduotuvės ir administravimo)

Kas nutiko

Daug modulių į AJAX užklausas valdiklyje atsako $this->ajaxDie($json): išveda atsakymą ir sustoja. PrestaShop 9.0 pašalino ajaxDie() iš bazinės Controller klasės. PrestaShop 8 jis jau buvo tik apvalkalas, kuris iškvietė ajaxRender() ir tada exit.

Klaidoje nurodoma jūsų valdiklio klasė, pavyzdžiui, MyModuleAjaxModuleFrontController::ajaxDie() ar AdminMyModuleController::ajaxDie(), nes PHP parodo klasę, kurioje kvietimas atliktas.

Ekrane tai retai atrodo kaip klaida. AJAX užklausa fone grąžina klaidą 500, o lankytojas mato tik tai, kad „į norų sąrašą“, filtras, paieška ar išsaugojimo mygtukas nieko nedaro. Nesėkmingą užklausą matysite naršyklės kūrėjo įrankiuose, skiltyje Network.

Sprendimas

ajaxRender() PrestaShop 9 tebėra ir išveda atsakymą. Jis nesustabdo skripto, todėl exit pridėkite patys:

// Buvo
$this->ajaxDie(json_encode($result));

// Dabar (veikia 1.7, 8 ir 9)
$this->ajaxRender(json_encode($result));
exit;

Hook'as actionAjaxDie<Controller><Method>Before vis dar vykdomas ajaxRender() viduje, todėl jo klausantys moduliai veikia toliau.

Kur dar slepiasi

Peržiūrėkite visus modulio valdiklius: controllers/front/, controllers/admin/ ir kiekvieną klasę, kuri paveldi PrestaShop valdiklį.

grep -rn "ajaxDie" modules/ override/

Modulis, naudojęs ajaxDie(), dažnai turi ir savo ajax.php failą modulio aplanke. PrestaShop 9 blokuoja ir jį: žr. 403 Forbidden modulio ajax.php faile.

Raskite visas tokias vietas prieš atnaujindami

Kur yra vienas pašalintas kvietimas, paprastai yra ir daugiau. Mūsų nemokama PrestaShop 9 parengties patikra perskaito visų modulių, temos ir override failų kodą ir parodo kiekvieną problemą su failu ir eilute. Ji tik skaito, nieko nekeičia.

Gauti nemokamą patikrą

Nenorite taisyti patys? Parduotuves į PrestaShop 9 atnaujiname už fiksuotą kainą. Apie atnaujinimą