[РЕШЕНО] Плагин msOnBeforeCreateOrder иногда не срабатывает
Всем привет!
Есть задача: при попытке оформления нового заказа в minishop2, если заказчик уже есть в БД и у него есть хотя бы один заказ, выдавать предупреждение и не оформлять текущий заказ. Казалось бы, достаточно простая задача, был написан плагин на событие msOnBeforeCreateOrder
Что-то не так в коде плагина? Я пытался воспроизвести эту ситуацию — но всё норм, плагин не пропускает повторный заказ моего пользователя.
Есть задача: при попытке оформления нового заказа в minishop2, если заказчик уже есть в БД и у него есть хотя бы один заказ, выдавать предупреждение и не оформлять текущий заказ. Казалось бы, достаточно простая задача, был написан плагин на событие msOnBeforeCreateOrder
<?php
if ($modx->event->name == 'msOnBeforeCreateOrder') {
$arr = $order->get();
$email = str_replace(' ', '', $arr['email']);
$user = $modx->getObject('modUserProfile', ['email' => $email]);
if(is_object($user)) {
$user_id = $user->internalKey;
$orders = $modx->getCollection('msOrder', ['user_id' => $user_id]);
if (count($orders) > 0) {
$modx->event->output('пользователь с email '.$arr['email'].' уже зарегистрирован! Попробуйте ввести другой email');
}
}
}Плагин срабатывает корректно, но в списке заказов увидел, что у пары пользователей есть более одного заказа. Что-то не так в коде плагина? Я пытался воспроизвести эту ситуацию — но всё норм, плагин не пропускает повторный заказ моего пользователя.
Комментарии: 6
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
Раньше не сообразил. Спасибо всем за участие!