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

Дополнение: minishop2

Подскажите:

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

Комментарии (2)

  1. Галич Сергей 06 августа 2016, 13:05 # 0
    идеи то есть?
    1. Галич Сергей 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 если укказан другой мейл
      Вы должны авторизоваться, чтобы оставлять комментарии.