Вход • Регистрация

Корзина. Отправка заказа на разные почтовые ящики

  • 06 июля 2015 г. , редакция: 06 июля 2015 г.
  • Добрый день!
    Задача следующая. Есть несколько офисов. В корзине, одна из форм заказа - выпадающий список с выбором офиса.
    В соответствии с выбранным офисом, письмо о совершенном заказе должно падать непосредственно на е-мейл выбранного офиса..
    Подскажите, как реализовать? Может кто сталкивался?
    Где то надо прописывать условие...но вот где? в каком файле прописана отправка на е-мейл?
  • 06 июля 2015 г. , редакция: 06 июля 2015 г.
  • Вот, смотрю.
    В файле cart.action.php есть
    Код
    //send mail admin
    $subject = str_replace(array('%title', '%url', '%id', '%message'),
    array(TITLE, BASE_URL, $order_id, strip_tags($this->message_admin_param)),
    $this->diafan->configmodules('subject_admin', 'shop')
    );

    $message = str_replace(
    array('%title',
    '%url',
    '%id',
    '%message',
    '%order',
    '%payment',
    '%fio'
    ),
    array(
    TITLE,
    BASE_URL,
    $order_id,
    $this->message_admin_param,
    $cart,
    $payment_name,
    $user_fio
    ),
    $this->diafan->configmodules('message_admin', 'shop'));
    // как я понимаю нужно нам вот тут делать условие
    send_mail(
    $this->diafan->configmodules("emailconfadmin", 'shop') ? $this->diafan->configmodules("email_admin", 'shop') : EMAIL_CONFIG,
    $subject,
    $message,
    $this->diafan->configmodules("emailconf", 'shop') ? $this->diafan->configmodules("email", 'shop') : ''
    );

    if(in_array("subscribtion", $this->diafan->installed_modules))
    {
    if(! empty($user_phone))
    {
    $phone = preg_replace('/[^0-9]+/', '', $user_phone);
    if(! DB::query_result("SELECT id FROM {subscribtion_phones} WHERE phone='%s' AND trash='0'", $user_phone))
    {
    DB::query("INSERT INTO {subscribtion_phones} (phone, name, created, act) VALUES ('%s', '%h', %d, '1')", $user_phone, $user_fio, time());
    }
    }
    }


    Думаю, что нужно писать какое то условие, где параметр "офис" по id.
  • 06 июля 2015 г. , редакция: 06 июля 2015 г.
  • Код
    ),
    $this->diafan->configmodules('message_admin', 'shop'));
    .................................................................................................

    if($param["id"] == '11') // ид параметра с выпадающим списком у меня 11
    {
    if ($param[11] == "г. Москва") // если выбран параметр г. Москва
    {
    send_mail( // отправляем сообщение
    $this->diafan->configmodules("emailconfadmin", 'shop') ? $this->diafan->configmodules("емейл_москвы@майл.ру", 'shop') : EMAIL_CONFIG,
    $subject,
    $message,
    $this->diafan->configmodules("emailconf", 'shop') ? $this->diafan->configmodules("email", 'shop') : ''
    );
    }

    Но что-то у меня не работает, просто не отправляет админу сообщение вообще и не выводит сообщение "заказ отправлен", а вот покупателю сообщение отправляется.
  • 07 июля 2015 г.
  • Код
    if($param['id'] == "11")
    {
    if ($param[11] == "г. Москва")
    {
    send_mail("емейл_москвы@майл.ру" );
    }


    Спасибо, исправила, но все равно не работает. Может из за выпадающего списка? Или не верные кавычки или вообще условие?(
    • 08 июля 2015 г.
    • Зачем второй IF?
      • 08 июля 2015 г. , редакция: 08 июля 2015 г.
      • Если id поля формы 11 (Офис),
        то
        Если значение в поле(11) = г. Москва
        то
        отправлем письмо на емейл Москвы,
        Если значение в поле(11) = г. Самара
        то
        отправлем письмо на емейл Самары

        и тд....
  • 08 июля 2015 г. , редакция: 08 июля 2015 г.
  • Урра! Заработало!
    Мало ли кому потребуется.
    Рабочий пример:
    в файле
    cart.action.php

    функция
    Код
    //send mail admin
    $this->diafan->configmodules('message_admin', 'shop'));
    .................................................................................................

    Код
    switch($_POST["p11"]) // р11 id поля по которому определяется куда пересылаем
    {
    case 1: // если выбран первый параметр
    send_mail(
    "емейл_москвы@майл.ру",
    $subject,
    $message,
    $this->diafan->configmodules("emailconf", 'shop') ? $this->diafan->configmodules("email", 'shop') : ''
    );
    break;

    case 2:
    send_mail(
    "емейл_самары@майл.ру",
    $subject,
    $message,
    $this->diafan->configmodules("emailconf", 'shop') ? $this->diafan->configmodules("email", 'shop') : ''
    );
    break;
    /*ну и так далее... */
    }


    Единственная моя обида - это почему-то письма администратору попадают в папку СПАМ, но если единожды его от туда вытащить, потом все приходит...

    Всем спасибо большое за советы!

Новости

  • 18 июня
  • В сборке большое обновление demo-шаблона, дополнительная защита от спама, улучшение YML-импорта и еще много важного и интересного.
  • 24 апреля
  • В новой сборке совершили революцию в структурировании кастомизированной информации в шаблонах, добавили авторегистрацию пользователей, усовершенствовали защиту от спама, актуализировали накопительную скидку, а также улучшили производительность и стабильность работы системы.
  • 12 января
  • После выхода сборки 7.1 мы выпустили уже три патча, в каждом из которых улучшаем административную часть сайта. Сборка DIAFAN.CMS 7.1.3 уже доступна к установке.