Сброс сессии и cookie гостя (demomarket) — различия между версиями

Материал из Umicms
Перейти к:навигация, поиск
м (Xakep2003 переименовал страницу Создать статью в этой Категории в Сброс сессии и cookie гостя (demomarket) без оставления перенаправления)
 
(не показана 1 промежуточная версия 1 участника)
Строка 1: Строка 1:
'''Актуально для версии 18'''
+
'''Актуально для версии 18.'''
  
 
'''Задача:''' Реализовать сброс cookie и сессии после оформления заказа незарегистрированным пользователем.
 
'''Задача:''' Реализовать сброс cookie и сессии после оформления заказа незарегистрированным пользователем.
  
  
'''Внедрение для PHP''' (на примере интернет-магазина "Адаптивный" [demomarket]).
+
'''Внедрение для 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_start();
        session_destroy();
+
      session_destroy();
        $_SESSION = array();
+
      $_SESSION = [];
        $_COOKIE["customer-id"] = '';
+
      $_COOKIE["customer-id"] = '';
        return;
+
      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');


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