Сброс сессии и cookie гостя (demomarket)

Материал из Umicms
Перейти к:навигация, поиск

Актуально для версии 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');


Теперь после завершения оформления заказа у незарегистрированных пользователей будут обновляться данные.