Опять дополнительные поля при оформлении заказа
Прошу помощи! необходимо добаить дополнительное поле при оформлении заказа.
Обшарил форум но нигде нет нормального (поэтапного) описания как это сделать.
итак делаю так:
1) XSL МагазинАдресДоставки:
...<td>Город:</td>
<td>
<select name="sel_city" class="sel_city" style="width: 390px;" id="sel_city" onchange="doSetCityArea(this.options[this.selectedIndex].value, '{/locations/shop/path}cart/')">
<option></option>
<xsl:apply-templates select="city[@parent = location[@parent = $country_id]]"/>
</select>
</td>
</tr>
<tr>
<td style="vertical-align: middle;">Индекс:</td>
<td><input id="index" type="text" size="6" name="index" value="{external_propertys/site_users_postcode}" /></td>
</tr>
<tr>
<td style="vertical-align: middle;">
Дата и, при необходимости, время заезда:</td><td>
<input type="text" size="30" name="site_users_dat" value=""/>...
2) далее обработчик платёжной системы "Оплата через банк для физических лиц":
...
// описание и системная информация, по умолчанию пустая строка
if (to_str($_SESSION['shop_coupon_text']) != '')
{
$order_row['description'] = "Купон на скидку: ".to_str($_SESSION['shop_coupon_text'])."\n";
}
else
{
$order_row['description'] = "Дата приезда: ".to_str($_SESSION['site_user_dat'])."\n";
}
$shop = & singleton('shop');
/* Оформляем заказ */
$order_id = $shop->ProcessOrder($shop_id, $site_users_id, $system_of_pay_id, $order_row);
if ($order_id > 0)
{
if (!class_exists('SiteUsers'))
{
/* Класс пользователей сайта не существует, дописываем информацию о заказчике
в поле shop_order_description из текущей сессии */
if ($order_row)
{
/* E-Mail заказчика */
$user_email = trim(to_str($_SESSION['site_users_email']));
/* Описание заказчика */
$description = "Информация о заказчике:\n"
."Имя: ".to_str($_SESSION['site_users_name'])."\n"
."Фамилия: ".to_str($_SESSION['site_users_surname'])."\n"
."Отчество: ".to_str($_SESSION['site_users_patronymic'])."\n"
."E-Mail: ".to_str($_SESSION['site_users_email'])."\n"
."Телефон: ".to_str($_SESSION['site_users_phone'])."\n"
."Факс: ".to_str($_SESSION['site_users_fax'])."\n"
."Адрес: ".to_str($_SESSION['site_users_address'])."\n";
."Дата приезда: ".to_str($_SESSION['site_users_dat'])."\n";
...
3)потом тдс "Интернет-магазин корзина":
...
/* Отображаем доступные доставки */
elseif (isset($_POST['step_2']))
{
/* Сохраняем данные, введенные на первом этапе */
$country = to_int($_POST['country']);
$location = to_int($_POST['location']);
$city = to_int($_POST['sel_city']);
$city_area = to_int($_POST['sel_city_area']);
$site_users_dat = to_int($_POST['site_users_dat']);
// Сбрасываем информацию о последнем заказе
$_SESSION['last_order_id'] = 0;
/* Пишем информацию об адресе доставки в сессию */
$_SESSION['country'] = $country;
$_SESSION['location'] = $location;
$_SESSION['city'] = $city;
$_SESSION['city_area'] = $city_area;
$_SESSION['index'] = to_int($_POST['index']);
$_SESSION['full_address'] = to_str($_POST['full_address']);
$_SESSION['site_users_dat'] = to_str($_POST['site_users_dat']);
$_SESSION['site_users_name'] = to_str($_POST['site_users_name']);
$_SESSION['site_users_surname'] = to_str($_POST['site_users_surname']);
$_SESSION['site_users_patronymic'] = to_str($_POST['site_users_patronymic']);
$_SESSION['site_users_email'] = to_str($_POST['site_users_email']);
$_SESSION['site_users_phone'] = to_str($_POST['site_users_phone']);
$_SESSION['site_users_fax'] = to_str($_POST['site_users_fax']);
$_SESSION['site_users_company'] = to_str($_POST['site_users_company']);
$_SESSION['description'] = to_str($_POST['description']);
/* Индекс и полный адрес (в массив дополнительных параметров) */
$external_propertys['site_users_postcode'] = to_str($_POST['site_users_postcode']);
$external_propertys['full_address'] = to_str($_POST['full_address']);
...
4) и наконец xsl ОплатаПоФормеПД4 :
...
<h2>Данные доставки</h2>
<p>
<b>Дата приезда:</b><xsl:value-of select="site_user_dat"/>
<br /><b>ФИО:</b><xsl:text> </xsl:text><xsl:value-of select="site_user_fio"/>
<br /><b>E-mail:</b><xsl:text> </xsl:text><xsl:value-of select="site_users_email"/>
<xsl:if test="site_users_phone != ''">
...
но содержимого поля которое мы добавляле не первом шаге в конце не выводится.
Что не так сделал??? или может чего упустил.
Ещё раз повторюсь. На форуме есть темы с данными вопросами, с них и взял что где править... Но почему-то не выводится...
Обшарил форум но нигде нет нормального (поэтапного) описания как это сделать.
итак делаю так:
1) XSL МагазинАдресДоставки:
...<td>Город:</td>
<td>
<select name="sel_city" class="sel_city" style="width: 390px;" id="sel_city" onchange="doSetCityArea(this.options[this.selectedIndex].value, '{/locations/shop/path}cart/')">
<option></option>
<xsl:apply-templates select="city[@parent = location[@parent = $country_id]]"/>
</select>
</td>
</tr>
<tr>
<td style="vertical-align: middle;">Индекс:</td>
<td><input id="index" type="text" size="6" name="index" value="{external_propertys/site_users_postcode}" /></td>
</tr>
<tr>
<td style="vertical-align: middle;">
Дата и, при необходимости, время заезда:</td><td>
<input type="text" size="30" name="site_users_dat" value=""/>...
2) далее обработчик платёжной системы "Оплата через банк для физических лиц":
...
// описание и системная информация, по умолчанию пустая строка
if (to_str($_SESSION['shop_coupon_text']) != '')
{
$order_row['description'] = "Купон на скидку: ".to_str($_SESSION['shop_coupon_text'])."\n";
}
else
{
$order_row['description'] = "Дата приезда: ".to_str($_SESSION['site_user_dat'])."\n";
}
$shop = & singleton('shop');
/* Оформляем заказ */
$order_id = $shop->ProcessOrder($shop_id, $site_users_id, $system_of_pay_id, $order_row);
if ($order_id > 0)
{
if (!class_exists('SiteUsers'))
{
/* Класс пользователей сайта не существует, дописываем информацию о заказчике
в поле shop_order_description из текущей сессии */
if ($order_row)
{
/* E-Mail заказчика */
$user_email = trim(to_str($_SESSION['site_users_email']));
/* Описание заказчика */
$description = "Информация о заказчике:\n"
."Имя: ".to_str($_SESSION['site_users_name'])."\n"
."Фамилия: ".to_str($_SESSION['site_users_surname'])."\n"
."Отчество: ".to_str($_SESSION['site_users_patronymic'])."\n"
."E-Mail: ".to_str($_SESSION['site_users_email'])."\n"
."Телефон: ".to_str($_SESSION['site_users_phone'])."\n"
."Факс: ".to_str($_SESSION['site_users_fax'])."\n"
."Адрес: ".to_str($_SESSION['site_users_address'])."\n";
."Дата приезда: ".to_str($_SESSION['site_users_dat'])."\n";
...
3)потом тдс "Интернет-магазин корзина":
...
/* Отображаем доступные доставки */
elseif (isset($_POST['step_2']))
{
/* Сохраняем данные, введенные на первом этапе */
$country = to_int($_POST['country']);
$location = to_int($_POST['location']);
$city = to_int($_POST['sel_city']);
$city_area = to_int($_POST['sel_city_area']);
$site_users_dat = to_int($_POST['site_users_dat']);
// Сбрасываем информацию о последнем заказе
$_SESSION['last_order_id'] = 0;
/* Пишем информацию об адресе доставки в сессию */
$_SESSION['country'] = $country;
$_SESSION['location'] = $location;
$_SESSION['city'] = $city;
$_SESSION['city_area'] = $city_area;
$_SESSION['index'] = to_int($_POST['index']);
$_SESSION['full_address'] = to_str($_POST['full_address']);
$_SESSION['site_users_dat'] = to_str($_POST['site_users_dat']);
$_SESSION['site_users_name'] = to_str($_POST['site_users_name']);
$_SESSION['site_users_surname'] = to_str($_POST['site_users_surname']);
$_SESSION['site_users_patronymic'] = to_str($_POST['site_users_patronymic']);
$_SESSION['site_users_email'] = to_str($_POST['site_users_email']);
$_SESSION['site_users_phone'] = to_str($_POST['site_users_phone']);
$_SESSION['site_users_fax'] = to_str($_POST['site_users_fax']);
$_SESSION['site_users_company'] = to_str($_POST['site_users_company']);
$_SESSION['description'] = to_str($_POST['description']);
/* Индекс и полный адрес (в массив дополнительных параметров) */
$external_propertys['site_users_postcode'] = to_str($_POST['site_users_postcode']);
$external_propertys['full_address'] = to_str($_POST['full_address']);
...
4) и наконец xsl ОплатаПоФормеПД4 :
...
<h2>Данные доставки</h2>
<p>
<b>Дата приезда:</b><xsl:value-of select="site_user_dat"/>
<br /><b>ФИО:</b><xsl:text> </xsl:text><xsl:value-of select="site_user_fio"/>
<br /><b>E-mail:</b><xsl:text> </xsl:text><xsl:value-of select="site_users_email"/>
<xsl:if test="site_users_phone != ''">
...
но содержимого поля которое мы добавляле не первом шаге в конце не выводится.
Что не так сделал??? или может чего упустил.
Ещё раз повторюсь. На форуме есть темы с данными вопросами, с них и взял что где править... Но почему-то не выводится...
kvasiliy писал(а):
И еще: строка kvasiliy писал(а):
но содержимого поля которое мы добавляле не первом шаге в конце не выводится
- не выводится потому, что в XML-е никогда не было и не будет тега site_user_dat, который вы пытаетесь отобразить. Посмотрите XML-код последнего этапа оформления заказа, введенная вами через поле 'site_users_dat' информация будет содержаться в теге description, поэтому выводить нужно его.И еще: строка kvasiliy писал(а):
$site_users_dat = to_int($_POST['site_users_dat']);
в коде типовой динамической страницы лишняя. Удалите ее.
Авторизация