Задача модуля – отправлять пользователю письмо в случае его ухода с сайта, если в корзине остались товары через некоторое время. То есть пользователь авторизуется на сайте, добавляет товары в корзину, что-то его отвлекает, он закрывает вкладку браузера и забывает о несовершенной покупке. Через некоторое время (задается в модуле) пользователю на почту приходит письмо с просьбой вернуться на сайт и завершить оформление заказа. У пользователя есть нужный ему товар, у администрации магазина есть нужная ей прибыль. Все в плюсе.
Алгоритм работы простой. В таблицу пользователей, добавляется столбец с последней активность на сайте (обновление страницы) и статусом письма.

Добавляем функцию, которая берет из таблицы строку с самой старой активностью и статусом письма 1 и проверяет, не «просрочена» ли она и было ли что-то в корзине. Если да, отправляем письмо пользователю и устанавливаем статус в 0.

 

Для более адекватной работы будем вызывать эту функцию каждые 5 секунд из хидера через ajax, пока пользователь на сайте.