UMIhelp

Разработка дополнительного функционала => Разработка модулей => Тема начата: john от 24 Марта 2016, 22:30:55

Название: Передать параметр email
Отправлено: john от 24 Марта 2016, 22:30:55
Как получить email пользователя?
если вручную написать то передаст mail@mail.ru
$param["userEmail"] = "mail@mail.ru";

А что написать, чтобы он каждый раз подхватывал email введенный пользователем при оформление заказа.
$param["userEmail"] = $email; - не передает.
Спасибо.
Название: Re: Передать параметр email
Отправлено: aghigay от 24 Марта 2016, 23:21:34
Откуда вы хотите получить параметры пользователя и в каком месте: макросе, шаблоне, свой вариант?
Название: Re: Передать параметр email
Отправлено: john от 24 Марта 2016, 23:44:04
В payment.xsl я написал.
<input type="hidden" name="user_email" value="{userEmail}" />
далее
/emarket/classes/payment/systems/rbk.php
Интересует строчка $param["userEmail"] = $email;
Хочу получить e-mail в момент когда пользователь оформляет заказ и выбирает способ оплаты, чтобы передать e-mail в RBK money.

      public function process($template = null) {
         $this->order->order();
         $currency = strtoupper( mainConfiguration::getInstance()->get('system', 'default-currency') );
         $amount = number_format($this->order->getActualPrice(), 2, '.', '');
         $param = array();
         $param["formAction"] = "https://rbkmoney.ru/acceptpurchase.aspx";
         $param["eshopId"] = $this->object->eshopId;
         $param["orderId"] = $this->order->id;
         $param["recipientAmount"] = $amount;
         $param["recipientCurrency"] = $currency;
         $param["userEmail"] = $email;
         $param["version"] = "2"; // May be 1 or 2, see documentation
         $this->order->setPaymentStatus('initialized');
         list($templateString) = def_module::loadTemplates("emarket/payment/rbk/".$template, "form_block");
         return def_module::parseTemplate($templateString, $param);
      }
Название: Re: Передать параметр email
Отправлено: aghigay от 24 Марта 2016, 23:46:30
а чем плох getRequest('userEmail')?
Название: Re: Передать параметр email
Отправлено: aghigay от 24 Марта 2016, 23:47:09
Только, естественно, нужно брать getRequest('user_email')
Название: Re: Передать параметр email
Отправлено: e.ioffe от 24 Марта 2016, 23:49:16
Цитировать
Хочу получить e-mail в момент когда пользователь оформляет заказ и выбирает способ оплаты, чтобы передать e-mail в RBK money.

Получаете объект текущего покупателя:

$customer = customer::get();

Далее есть два варианта - покупатель зарегистрирован, тогда у него email хранится в поле e-mail. Если не зарегистрирован, то email хранится в поле email (без дефиса). Соответственно, код:

$email = $customer->getValue('e-mail');

if(!$email) {
$email = $customer->getValue('email');
}
Название: Re: Передать параметр email
Отправлено: john от 25 Марта 2016, 00:06:23
getRequest('user_email'), хоть тресни не хотел работать.
Последний вариант заработал, спасибо.