Узнаем e-mail покупателя по заказу

  • Узнаем e-mail покупателя по заказу

    Антон Долганин 8 Апреля 2015 18:47 1689
    В Битрикс нельзя просто взять и получить e-mail владельца заказа путем обращения к базе пользователей. Быть может для данного заказа покупатель указал иной e-mail. Вот код, который вернет e-mail покупателя конкретного заказа исходя из всех условий:
       /*
        * Узнаем e-mail пользователя по заказу.
        */
       private static function getOwnerEmail($order)
       {
          //пробежимся по св-вам заказа, ища e-mail
          $res = CSaleOrderPropsValue::GetOrderProps($order);
          while ($row = $res->fetch()) {
             if ($row['IS_EMAIL']=='Y' && check_email($row['VALUE'])) {
                return $row['VALUE'];
             }
          }
          //если такого не нашли, берем просто mail пользователя
          if ($order = CSaleOrder::getById($order)) {
             if ($user = CUser::GetByID($order['USER_ID'])->fetch()) {
                return $user['EMAIL'];
             }
          }
          return false;
       }


    .