minishop2 другая почта при оформлении заказа
Подскажите:
как сделать так, чтобы залогиненный пользователь при оформлении заказа,
когда указывал почту отличную от своей,
получал письмо о заказе на новую почту,
а не на ту на которую зарегистрирован
как сделать так, чтобы залогиненный пользователь при оформлении заказа,
когда указывал почту отличную от своей,
получал письмо о заказе на новую почту,
а не на ту на которую зарегистрирован
Комментарии: 2
идеи то есть?
может пригодиться кому, но сделано костыльно, в поле metro новую почту пишу
плагин на событие: msOnSubmitOrder
и у функции changeOrderStatus, в самом конце где идет отправка на почту юзеру
перед этой строчкой: $this->ms2->sendEmail($email, $subject, $body); ( или $this->sendEmail($email, $subject, $body); )
плагин на событие: msOnSubmitOrder
// добавляем новый email если нужно
if ($user = $modx->getAuthenticatedUser('web') ) {
$profile = $user->getOne('Profile');
//$modx->log( 1,'mail user: '. $profile->get('email') .'; new mail: '. $order->get()['email'] );
if( $profile->get('email') != ( $newmail = $order->get()['email'] ) ) {
$miniShop2->order->add('metro', $newmail);
}
}
и у функции changeOrderStatus, в самом конце где идет отправка на почту юзеру
перед этой строчкой: $this->ms2->sendEmail($email, $subject, $body); ( или $this->sendEmail($email, $subject, $body); )
// start если укказан другой мейл
$checkMail = $order->getOne('Address');
$newMail = $checkMail->get('metro');
if(
!empty($newMail)
&& preg_match('/^[^@а-яА-Я]+@[^@а-яА-Я]+(?<!\.)\.[^\.а-яА-Я]{2,}$/m', $newMail)
&& $newMail != $email
) {
$email = $newMail;
}
// end если укказан другой мейл
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.