Сброс сессии и cookie гостя (demomarket) — различия между версиями
Материал из Umicms
Xakep2003 (обсуждение | вклад) (Новая страница: «'''Актуально для версии 18''' '''Задача:''' Реализовать сброс cookie и сессии после оформления за…») |
Whoa (обсуждение | вклад) |
||
(не показаны 2 промежуточные версии 2 участников) | |||
Строка 1: | Строка 1: | ||
− | '''Актуально для версии 18''' | + | '''Актуально для версии 18.''' |
'''Задача:''' Реализовать сброс cookie и сессии после оформления заказа незарегистрированным пользователем. | '''Задача:''' Реализовать сброс cookie и сессии после оформления заказа незарегистрированным пользователем. | ||
− | '''Внедрение для PHP | + | '''Внедрение для PHP на примере интернет-магазина "Адаптивный" (demomarket).''' |
− | 1) Добавим код макроса в classes/components/custom.php | + | 1) Добавим код макроса в /classes/components/custom.php: |
<source lang="php"> | <source lang="php"> | ||
Строка 14: | Строка 14: | ||
$userId = $permissions->getUserId(); | $userId = $permissions->getUserId(); | ||
$guestId = $permissions->getGuestId(); | $guestId = $permissions->getGuestId(); | ||
− | if ($userId == $guestId) | + | |
− | + | if ($userId == $guestId) { | |
− | + | session_start(); | |
− | + | session_destroy(); | |
− | + | $_SESSION = []; | |
− | + | $_COOKIE["customer-id"] = ''; | |
− | + | return; | |
− | + | } | |
} | } | ||
</source> | </source> | ||
− | 2) Добавим вызов макроса в шаблон. Например, на страницу с сообщением об успешном оформлении заказа templates/demomarket/php/emarket/result/successful.phtml | + | 2) Добавим вызов макроса в шаблон. Например, на страницу с сообщением об успешном оформлении заказа /templates/demomarket/php/emarket/result/successful.phtml |
<source lang="php"> | <source lang="php"> | ||
Строка 33: | Строка 33: | ||
− | Теперь | + | Теперь после завершения оформления заказа у незарегистрированных пользователей будут обновляться данные. |
[[category:Модуль Интернет магазин]][[Категория:Написание кастомных макросов]] | [[category:Модуль Интернет магазин]][[Категория:Написание кастомных макросов]] |
Текущая версия на 08:53, 28 сентября 2018
Актуально для версии 18.
Задача: Реализовать сброс cookie и сессии после оформления заказа незарегистрированным пользователем.
Внедрение для PHP на примере интернет-магазина "Адаптивный" (demomarket).
1) Добавим код макроса в /classes/components/custom.php:
public function destroy() {
$permissions = permissionsCollection::getInstance();
$userId = $permissions->getUserId();
$guestId = $permissions->getGuestId();
if ($userId == $guestId) {
session_start();
session_destroy();
$_SESSION = [];
$_COOKIE["customer-id"] = '';
return;
}
}
2) Добавим вызов макроса в шаблон. Например, на страницу с сообщением об успешном оформлении заказа /templates/demomarket/php/emarket/result/successful.phtml
$this->macros('custom', 'destroy');
Теперь после завершения оформления заказа у незарегистрированных пользователей будут обновляться данные.