minishop2 другая почта при оформлении заказа

Подскажите:

как сделать так, чтобы залогиненный пользователь при оформлении заказа,
когда указывал почту отличную от своей,
получал письмо о заказе на новую почту,
а не на ту на которую зарегистрирован
Галич Сергей
06 августа 2016, 00:43
modx.pro
1
1 707
+1

Комментарии: 2

Галич Сергей
06 августа 2016, 13:05
0
идеи то есть?
    Галич Сергей
    08 августа 2016, 03:43
    +1
    может пригодиться кому, но сделано костыльно, в поле metro новую почту пишу

    плагин на событие: 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 если укказан другой мейл
      Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
      2