Если кураторов магазина несколько

#
Если кураторов магазина несколько
Доброго времени.
Есть задача чтобы при оформлении  заказа, покупатель смог сам выбрать себе куратора магазина из списка предложенных. Пытался реализовать передачу адреса через $_SESSION:
в XSL шаблоне корзины указал несколько кураторов на выбор(пробовал выпадающим списком - неполучилось решил попробовать указать напрямую через поле ввода):


<input name="site_users_manager" type="text" value="{site_users_manager}" size="40"/>



а принимаю адрес в обработчике платежной системы:

/**
    * Метод для отправки письма со счетом.
    *
    * @param int $order_id идентификатор заказа
    */
   function MailOrder($order_id)
   {
      $shop = & singleton('shop');

      /* Информация о заказе */
      $order_row = $shop->GetOrder($order_id);
      if (!$order_row)
      {
         return false;
      }

      /* Информация о магазине */
      $shop_row = $shop->GetShop($order_row['shop_shops_id']);
      if (!$shop_row)
      {
         return false;
      }

      ob_start();
      $this->PrintOrder($order_id);
      $blank = ob_get_clean();

      // Добавляем переводы строк после тегов.
      $blank = str_replace(">", ">\n", $blank);

      $order_row = $shop->GetOrder($order_id);

      $subject = 'Банковский счет';

      $kernel = & singleton('kernel');
      $kernel->SendMailWithFile(trim(to_str($order_row['shop_order_users_email'])),
      $shop_row['site_users_manager'], $subject, $blank, array(), 'text/html');
   }


так же внес изменения в типовую динамическую страницу:

/* Данные о пользователе передаем через внешние параметры и сохраним в сессию */
$external_propertys['site_users_manager'] = $_SESSION['site_users_manager'] = to_str($_POST['site_users_manager']);


Ругается так:Замечание: Undefined index: site_users_manager в файле /home/optomberi/optomberi.ru/docs/hostcmsfiles/shop/pay/handler3.php (строка 207)

все не возымело силы, что я делаю не так?
спасибо!
#
Re: Если кураторов магазина несколько
indizain писал(а):
что я делаю не так?
- вместо:
$kernel->SendMailWithFile(trim(to_str($order_row['shop_order_users_email'])),
$shop_row['site_users_manager'], $subject, $blank, array(), 'text/html');

используйте:
$kernel->SendMailWithFile(trim(to_str($order_row['shop_order_users_email'])),
$_SESSION['site_users_manager'], $subject, $blank, array(), 'text/html');
#
Re: Если кураторов магазина несколько
Спасибо - ошибки теперь нет, но теперь письма о заказе не идут не только на адрес куратора который указан в системе (ну это понятно почему), но и на адрес который я вписываю тут:

<input name="site_users_manager" type="text" value="{site_users_manager}" size="40"/>
#
Re: Если кураторов магазина несколько
indizain, у вас версия системы какая? Дело в том, что в последних версиях системы метод SendMailWithFile принимает гораздо больше параметров, чем передаете вы, а также совсем в другом порядке. У вас такой вызов этого метода был в коде обработчиков платежных систем?
#
Re: Если кураторов магазина несколько
Версия HostCMS: 5.9.22, мне необходимо передавать только 1 параметр — отправлять письмо на указанный пользователем e-mail... SendMailWithFile я не трогал, то есть он остался таким же как был в установленной системе, кроме:
natalya писал(а):
$kernel->SendMailWithFile(trim(to_str($order_row['shop_order_users_email'])),
$shop_row['site_users_manager'], $subject, $blank, array(), 'text/html';

используйте:
$kernel->SendMailWithFile(trim(to_str($order_row['shop_order_users_email'])),
$_SESSION['site_users_manager'], $subject, $blank, array(), 'text/html';
#
Re: Если кураторов магазина несколько
indizain писал(а):
мне необходимо передавать только 1 параметр — отправлять письмо на указанный пользователем e-mail…
- нет, передавать в метод нужно не один параметр, а столько, сколько указано в его определении(подробнее см. в API). Другой вопрос, что значение только одного из всех необходимых параметров вы укажите то, которое требуется вам.
indizain писал(а):
он остался таким же как был в установленной системе
- когда вы устанавливали систему, какую версию она имела?
Вам необходимо вместо:
$kernel->SendMailWithFile(trim(to_str($order_row['shop_order_users_email'])),
$_SESSION['site_users_manager'], $subject, $blank, array(), 'text/html');

использовать:
$shop->SendMailAboutOrder($shop_id,
            $order_id,
            $site_users_id,
            to_str($LA['xsl_letter_to_admin']),
            to_str($LA['xsl_letter_to_user']),
            $order_row['shop_order_users_email'],
            array('admin-content-type' => 'html',
            'user-content-type' => 'html',
            'admin-subject' => sprintf($GLOBALS['MSG_shops']['shop_order_admin_subject'], $shop_order_account_number, $shop_row['shop_shops_name'], $date_str),
            'user-subject' => sprintf($GLOBALS['MSG_shops']['shop_order_user_subject'], $shop_order_account_number, $shop_row['shop_shops_name'], $date_str),
'email_to' => $_SESSION['site_users_manager'],
            'attach_eitem_file' => 0,
            'email_from_admin' => $order_row['shop_order_users_email']));
#
Re: Если кураторов магазина несколько
Не работает, е-мэйл по указанному адресу не приходит, и также не отображается значение поля "Менеджер заказчика:" при просмотре заказа в "оформленных заказчиках".
#
Re: Если кураторов магазина несколько
indizain, перед вызовом метода SendMailAboutOrder распечатайте массив сессии, т.е.
var_dump($_SESSION);

Среди его элементов есть $_SESSION['site_users_manager']?

indizain писал(а):
не отображается значение поля «Менеджер заказчика:» при просмотре заказа в «оформленных заказчиках»
- что это за блок такой "Оформленные заказчики"? В системе управления подобного блок нет. Если речь об "Оформленных заказах", то там при редактировании заказа такого поля также никогда не было и нет. У вас оно отображается?
#
Re: Если кураторов магазина несколько
Да, речь идет именно об "Оформленных заказах" строка «Менеджер заказчика:» есть во вкладке описание заказа в одноименном поле. Среди его элементов $_SESSION нет site_users_manager.
Авторизация