minishop2 + office - чистится корзина при выходе
minishop2 в связке с office
ситуация:
залогенный пользователь добавляет в корзину товары,
если выйти — корзина чиститься в браузерах opera и firefox
пока дошел до того: что — в куках удаляется переменная PHPSESSID
при проходе по ссылке /?action=auth/logout
в браузерах opera и firefox
в остальных вроде норм все
ситуация:
залогенный пользователь добавляет в корзину товары,
если выйти — корзина чиститься в браузерах opera и firefox
пока дошел до того: что — в куках удаляется переменная PHPSESSID
при проходе по ссылке /?action=auth/logout
в браузерах opera и firefox
в остальных вроде норм все
Комментарии: 3
Сергей, добрый день, нашли ли вы решения данной проблемы, у меня очищается корзина в любом браузере ((
кому актуально, решение есть тут compaero.ru/docs/modx-i-xpdo/soxranenie-korzinyi-polzovatelya.html
Так как url более не доступен, то приведу код Руслана с небольшим дополнением: товары, добавленные в корзину до входа, добавляются в сохранённую корзину.
switch ($modx->event->name) {
case 'msOnAddToCart':
case 'msOnChangeInCart':
case 'msOnEmptyCart':
case 'msOnRemoveFromCart':
if ($user = $modx->getAuthenticatedUser('web') and $ms2 = $modx->getService('minishop2')) {
$ms2->initialize($modx->context->key);
$profile = $user->getOne('Profile');
$extended = $profile->get('extended');
$extended['ms2cart'] = $ms2->cart->get();
$profile->set('extended', $extended);
$profile->save();
}
break;
case 'OnWebPageInit':
case 'OnWebLogin':
if ( $user = $modx->getAuthenticatedUser('web') and $ms2 = $modx->getService('minishop2')) {
$ms2->initialize($modx->context->key);
$profile = $user->getOne('Profile');
$extended = $profile->get('extended');
if ( isset($extended['ms2cart']) && !empty($extended['ms2cart']) ) {
$mycart = array_merge($extended['ms2cart'], $ms2->cart->get());
$ms2->cart->set($mycart);
}
}
break;
}
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.