Я предполагаю, что вы используете Prestashop v1.4.Основная проблема, которую я вижу, состоит в том, что вы отредактировали один из основных файлов, поэтому большинство ставок не поддерживаются для возможности поддержки вашего кода в будущем.Если вы хотите аккуратно изменить поведение основных классов, то вам следует создать переопределение с именем /override/classes/FrontController.php со следующим содержимым:
class FrontController extends FrontControllerCore
{
function init()
{
// Your additional custom init code goes here
parent::init();
// And/or additional custom init code goes here
}
}
Это не такосновные проблемы, хотя, как мы дойдем до следующего этапа.Ошибка, которую вы видите, заключается в том, что вы пытаетесь использовать глобальную переменную $ cookie, но в какой-то момент времени, прежде чем для переменной будет установлено какое-либо значение (глобальная переменная cookie фактически инициализируется позже в самой функции, которую вы изменяли),Поскольку вам нужно манипулировать свойствами cookie, вы можете попытаться создать временный объект cookie, использовать его для управления cookie пользователя, а затем вызвать основной код, например,
class FrontController extends FrontControllerCore
{
function init()
{
if ( !session_id() ) {
if( !isset($_SESSION) ) {
session_start();
}
}
$cookieLifetime = (time() + (((int)Configuration::get('PS_COOKIE_LIFETIME_FO') > 0 ? (int)Configuration::get('PS_COOKIE_LIFETIME_FO') : 1)* 3600));
$cookie = new Cookie('ps', '', $cookieLifetime);
$cookie->id_cart=$_SESSION['pj_punchout_id'];
parent::init();
}
}