Автозаполнение полей на шаге Адрес доставки из личных данных пользователя
Такая ситуация.
Создали парочку дополнительных параметров в журнале пользователей, приписали в сессии - все ок
В шаблоне "МагазинАдресДоставки" сделал такие же поля и приписал к описанию заказа - все ок
Но
Теперь вопрос как сделать чтобы на шаге ввода адреса доставки вот эти поля заполнились из идентичных полей личного кабинета?
Редакция Корпорация 5.7.9
Создали парочку дополнительных параметров в журнале пользователей, приписали в сессии - все ок
В шаблоне "МагазинАдресДоставки" сделал такие же поля и приписал к описанию заказа - все ок
Но
Теперь вопрос как сделать чтобы на шаге ввода адреса доставки вот эти поля заполнились из идентичных полей личного кабинета?
Редакция Корпорация 5.7.9
ку
namez писал(а):
Для этого нужно посмотреть на то, как происходит заполнение аналогичных уже существующих полей в XSL-шаблоне:
Теперь вопрос как сделать чтобы на шаге ввода адреса доставки вот эти поля заполнились из идентичных полей личного кабинета?
Для этого нужно посмотреть на то, как происходит заполнение аналогичных уже существующих полей в XSL-шаблоне:
<tr>
<td style="vertical-align: middle;">Индекс:</td>
<td>
<input type="text" size="5" class="large_input" style="width: 90px;" name="index" value="{external_propertys/site_users_postcode}"/>
</td>
</tr>
<td style="vertical-align: middle;">Индекс:</td>
<td>
<input type="text" size="5" class="large_input" style="width: 90px;" name="index" value="{external_propertys/site_users_postcode}"/>
</td>
</tr>
хммм нет не заполняется
вот шаблон МагазинАдресДоставки
вот шаблон МагазинАдресДоставки
<?xml version="1.0" encoding="windows-1251"?>
<!DOCTYPE xsl:stylesheet>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output xmlns="http://www.w3.org/TR/xhtml1/strict" doctype-public="-//W3C//DTD XHTML 1.0 Strict//EN" encoding="Windows-1251" indent="yes" method="html" omit-xml-declaration="no" version="1.0" media-type="text/xml"/>
<xsl:template match="/locations">
<table border="0" cellpadding="5" cellspacing="5" class="shop_navigation_table">
<tr>
<td id="shop_navigation_current">Адрес доставки</td>
<td>→</td>
<td id="shop_navigation">Способ доставки</td>
<td>→</td>
<td id="shop_navigation">Форма оплаты</td>
<td>→</td>
<td id="shop_navigation">Данные доставки</td>
</tr>
</table>
<SCRIPT type="text/javascript" language="JavaScript">
<xsl:comment>
<xsl:text disable-output-escaping="yes">
<![CDATA[
location_select_id = "location";
city_select_id = "sel_city";
cityarea_select_id = "sel_city_area";
]]>
</xsl:text>
</xsl:comment>
</SCRIPT>
<form name="address" id="address" class="check" method="POST">
<h1>Адрес доставки</h1>
<p>
<a href="{shop/path}cart/">Корзина</a>
</p>
<table cellspacing="6">
<tr>
<td>Страна:</td>
<td>
<select id="country" name="country" onchange="doSetLocation(this.options[this.selectedIndex].value, '{/locations/shop/path}cart/')">
<xsl:apply-templates select="country"/>
</select>
</td>
</tr>
<tr>
<td>Индекс:</td>
<td>
<input type="text" size="5" name="index" value=""/>
</td>
</tr>
<tr>
<td>Область:</td>
<td>
<xsl:variable name="country_id" select="/locations//country[@select = 1]/@id" />
<select name="location" id="location" onchange="doSetCity(this.options[this.selectedIndex].value, '{/locations/shop/path}cart/')">
<option value="0">..</option>
<xsl:apply-templates select="location[@parent = $country_id]"/>
</select>
</td>
</tr>
<tr>
<td>Город: <br/><br/><br/></td>
<td>
<select name="sel_city" id="sel_city" onchange="doSetCityArea(this.options[this.selectedIndex].value, '{/locations/shop/path}cart/')">
<option value="0">..</option>
<xsl:apply-templates select="city[@parent = location[@parent = $country_id]]"/>
</select>
<br/><span style="font-size: x-small;"> <span style="color: #ff0000;">Обязательное заполните!</span></span><br/><br/>
</td>
</tr>
<tr>
<td>Район города:</td>
<td>
<select name="sel_city_area" id="sel_city_area">
<option value="0">..</option>
</select>
</td>
</tr>
<tr>
<td>Улица <br/>(с городом, если город <br/>не выбран выше) <br/> </td>
<td>
<input type="text" size="30" name="site_users_street" class="text important" value="{external_propertys/site_users_street}" />
<br/><span style="font-size: x-small;"> <span style="color: #ff0000;">Обязательное заполните!</span></span><br/><br/>
</td>
</tr>
<tr>
<td>Дом<br/><br/><br/> </td>
<td>
<input type="text" size="30" name="site_users_address_dom" class="text important" value="{external_propertys/site_users_address_dom}" />
<br/><span style="font-size: x-small;"> <span style="color: #ff0000;">Обязательное заполните!</span></span><br/><br/>
</td>
</tr>
<tr>
<td>Корпус</td>
<td>
<input type="text" size="30" name="site_users_address_bld" value="{external_propertys/site_users_address_bld}" />
</td>
</tr>
<tr>
<td>Квартира<br/><br/><br/> </td>
<td>
<input type="text" size="30" name="site_users_address_app" class="text important" value="{external_propertys/site_users_address_app}" />
<br/><span style="font-size: x-small;"> <span style="color: #ff0000;">Обязательное заполните!</span></span><br/><br/>
</td>
</tr>
<tr>
<td>Cтанция метро:</td>
<td>
<input type="text" size="30" name="metro" value=""/>
</td>
</tr>
<tr>
<td>Дополнительная информация:</td>
<td>
<input type="text" size="30" name="other_info" value=""/>
</td>
</tr>
<tr>
<td>Желаемое время доставки:</td>
<td>
<input type="text" size="30" name="my_time" value=""/>
</td>
</tr>
<tr>
<td>
<input name="step_2" value="Далее >>" class="submit" type="submit" ></input>
</td>
</tr>
</table>
</form>
<!-- Заполняем все дочерние элементы страны -->
<SCRIPT type="text/javascript" language="JavaScript">
var oldHandler=window['onload'];
window['onload']=function(){if(typeof(oldHandler)=='function'){oldHandler();}newHandler();};
function newHandler(){
doSetLocation(document.getElementById('country').options[document.getElementById('country').selectedIndex].value, '<xsl:value-of select="/locations/shop/path" />cart/');
}
</SCRIPT>
</xsl:template>
<!-- Шаблон заполняет options для стран -->
<xsl:template match="country">
<xsl:choose>
<!-- Если страна задана по умолчанию -->
<xsl:when test="@select=1">
<option value="{@id}" selected="">
<xsl:value-of disable-output-escaping="yes" select="name"/>
</option>
</xsl:when>
<xsl:otherwise>
<option value="{@id}">
<xsl:value-of disable-output-escaping="yes" select="name"/>
</option>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<!-- Шаблон заполняет options для местоположений (областей) -->
<xsl:template match="location">
<option value="{@id}">
<xsl:value-of disable-output-escaping="yes" select="name"/>
</option>
</xsl:template>
<!-- Шаблон заполняет options для городов -->
<xsl:template match="city">
<option value="{@id}">
<xsl:value-of disable-output-escaping="yes" select="name"/>
</option>
</xsl:template>
<!-- Шаблон заполняет options для районов -->
<xsl:template match="cityarea">
<option value="{@id}">
<xsl:value-of disable-output-escaping="yes" select="name"/>
</option>
</xsl:template>
</xsl:stylesheet>
<!DOCTYPE xsl:stylesheet>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output xmlns="http://www.w3.org/TR/xhtml1/strict" doctype-public="-//W3C//DTD XHTML 1.0 Strict//EN" encoding="Windows-1251" indent="yes" method="html" omit-xml-declaration="no" version="1.0" media-type="text/xml"/>
<xsl:template match="/locations">
<table border="0" cellpadding="5" cellspacing="5" class="shop_navigation_table">
<tr>
<td id="shop_navigation_current">Адрес доставки</td>
<td>→</td>
<td id="shop_navigation">Способ доставки</td>
<td>→</td>
<td id="shop_navigation">Форма оплаты</td>
<td>→</td>
<td id="shop_navigation">Данные доставки</td>
</tr>
</table>
<SCRIPT type="text/javascript" language="JavaScript">
<xsl:comment>
<xsl:text disable-output-escaping="yes">
<![CDATA[
location_select_id = "location";
city_select_id = "sel_city";
cityarea_select_id = "sel_city_area";
]]>
</xsl:text>
</xsl:comment>
</SCRIPT>
<form name="address" id="address" class="check" method="POST">
<h1>Адрес доставки</h1>
<p>
<a href="{shop/path}cart/">Корзина</a>
</p>
<table cellspacing="6">
<tr>
<td>Страна:</td>
<td>
<select id="country" name="country" onchange="doSetLocation(this.options[this.selectedIndex].value, '{/locations/shop/path}cart/')">
<xsl:apply-templates select="country"/>
</select>
</td>
</tr>
<tr>
<td>Индекс:</td>
<td>
<input type="text" size="5" name="index" value=""/>
</td>
</tr>
<tr>
<td>Область:</td>
<td>
<xsl:variable name="country_id" select="/locations//country[@select = 1]/@id" />
<select name="location" id="location" onchange="doSetCity(this.options[this.selectedIndex].value, '{/locations/shop/path}cart/')">
<option value="0">..</option>
<xsl:apply-templates select="location[@parent = $country_id]"/>
</select>
</td>
</tr>
<tr>
<td>Город: <br/><br/><br/></td>
<td>
<select name="sel_city" id="sel_city" onchange="doSetCityArea(this.options[this.selectedIndex].value, '{/locations/shop/path}cart/')">
<option value="0">..</option>
<xsl:apply-templates select="city[@parent = location[@parent = $country_id]]"/>
</select>
<br/><span style="font-size: x-small;"> <span style="color: #ff0000;">Обязательное заполните!</span></span><br/><br/>
</td>
</tr>
<tr>
<td>Район города:</td>
<td>
<select name="sel_city_area" id="sel_city_area">
<option value="0">..</option>
</select>
</td>
</tr>
<tr>
<td>Улица <br/>(с городом, если город <br/>не выбран выше) <br/> </td>
<td>
<input type="text" size="30" name="site_users_street" class="text important" value="{external_propertys/site_users_street}" />
<br/><span style="font-size: x-small;"> <span style="color: #ff0000;">Обязательное заполните!</span></span><br/><br/>
</td>
</tr>
<tr>
<td>Дом<br/><br/><br/> </td>
<td>
<input type="text" size="30" name="site_users_address_dom" class="text important" value="{external_propertys/site_users_address_dom}" />
<br/><span style="font-size: x-small;"> <span style="color: #ff0000;">Обязательное заполните!</span></span><br/><br/>
</td>
</tr>
<tr>
<td>Корпус</td>
<td>
<input type="text" size="30" name="site_users_address_bld" value="{external_propertys/site_users_address_bld}" />
</td>
</tr>
<tr>
<td>Квартира<br/><br/><br/> </td>
<td>
<input type="text" size="30" name="site_users_address_app" class="text important" value="{external_propertys/site_users_address_app}" />
<br/><span style="font-size: x-small;"> <span style="color: #ff0000;">Обязательное заполните!</span></span><br/><br/>
</td>
</tr>
<tr>
<td>Cтанция метро:</td>
<td>
<input type="text" size="30" name="metro" value=""/>
</td>
</tr>
<tr>
<td>Дополнительная информация:</td>
<td>
<input type="text" size="30" name="other_info" value=""/>
</td>
</tr>
<tr>
<td>Желаемое время доставки:</td>
<td>
<input type="text" size="30" name="my_time" value=""/>
</td>
</tr>
<tr>
<td>
<input name="step_2" value="Далее >>" class="submit" type="submit" ></input>
</td>
</tr>
</table>
</form>
<!-- Заполняем все дочерние элементы страны -->
<SCRIPT type="text/javascript" language="JavaScript">
var oldHandler=window['onload'];
window['onload']=function(){if(typeof(oldHandler)=='function'){oldHandler();}newHandler();};
function newHandler(){
doSetLocation(document.getElementById('country').options[document.getElementById('country').selectedIndex].value, '<xsl:value-of select="/locations/shop/path" />cart/');
}
</SCRIPT>
</xsl:template>
<!-- Шаблон заполняет options для стран -->
<xsl:template match="country">
<xsl:choose>
<!-- Если страна задана по умолчанию -->
<xsl:when test="@select=1">
<option value="{@id}" selected="">
<xsl:value-of disable-output-escaping="yes" select="name"/>
</option>
</xsl:when>
<xsl:otherwise>
<option value="{@id}">
<xsl:value-of disable-output-escaping="yes" select="name"/>
</option>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<!-- Шаблон заполняет options для местоположений (областей) -->
<xsl:template match="location">
<option value="{@id}">
<xsl:value-of disable-output-escaping="yes" select="name"/>
</option>
</xsl:template>
<!-- Шаблон заполняет options для городов -->
<xsl:template match="city">
<option value="{@id}">
<xsl:value-of disable-output-escaping="yes" select="name"/>
</option>
</xsl:template>
<!-- Шаблон заполняет options для районов -->
<xsl:template match="cityarea">
<option value="{@id}">
<xsl:value-of disable-output-escaping="yes" select="name"/>
</option>
</xsl:template>
</xsl:stylesheet>
ку
пробую посмотреть(?show_xml) но с шага адреса доставки кидает обратно в корзину и показывает xml там
ку
Посмотрел на демо сайте типовую корзины, стало вроде ясно что поля то у меня не пишутся в xml
сделал, вот кусок типовой, жирным то что добавил
а xls мой выше в предыдущем сообщении
... не заполняется что-то 8(
сделал, вот кусок типовой, жирным то что добавил
/* Ввод адреса доставки */
if (isset($_POST['step_1']))
{
$external_propertys = array ();
/* Если отключен модуль пользователей сайта, то вызывается этот подэтап */
if (isset($_POST['step_1_1a']))
{
/* Сохраняем данные о пользователе в сессию */
$_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_address'] = to_str($_POST['site_users_address']);
$_SESSION['site_users_company'] = to_str($_POST['site_users_company']);
}
else
{
$aInfoSiteUser = $SiteUsers->GetSiteUser($site_users_id);
$external_propertys['site_users_address_dom'] = $_SESSION['site_users_address_dom'] = to_str($aInfoSiteUser['site_users_address_dom']);
$external_propertys['site_users_address_bld'] = $_SESSION['site_users_address_bld'] = to_str($aInfoSiteUser['site_users_address_bld']);
$external_propertys['site_users_address_app'] = $_SESSION['site_users_address_app'] = to_str($aInfoSiteUser['site_users_address_app']);
$external_propertys['site_users_street'] = $_SESSION['site_users_street'] = to_str($aInfoSiteUser['site_users_street']);
}
/* Запоминаем купон */
$_SESSION['shop_coupon_text'] = to_str($_POST['shop_coupon_text']);
/* Отображаем форму ввода адреса */
// Не выбираем show_location, show_city и show_city_area, т.к. подгружаются через AJAX
$shop->ShowAddress(to_str($GLOBALS['LA']['xsl_delivery_address']), $shop_id, array('show_location' => false, 'show_city' => false, 'show_city_area' => false, $external_propertys));
}
if (isset($_POST['step_1']))
{
$external_propertys = array ();
/* Если отключен модуль пользователей сайта, то вызывается этот подэтап */
if (isset($_POST['step_1_1a']))
{
/* Сохраняем данные о пользователе в сессию */
$_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_address'] = to_str($_POST['site_users_address']);
$_SESSION['site_users_company'] = to_str($_POST['site_users_company']);
}
else
{
$aInfoSiteUser = $SiteUsers->GetSiteUser($site_users_id);
$external_propertys['site_users_address_dom'] = $_SESSION['site_users_address_dom'] = to_str($aInfoSiteUser['site_users_address_dom']);
$external_propertys['site_users_address_bld'] = $_SESSION['site_users_address_bld'] = to_str($aInfoSiteUser['site_users_address_bld']);
$external_propertys['site_users_address_app'] = $_SESSION['site_users_address_app'] = to_str($aInfoSiteUser['site_users_address_app']);
$external_propertys['site_users_street'] = $_SESSION['site_users_street'] = to_str($aInfoSiteUser['site_users_street']);
}
/* Запоминаем купон */
$_SESSION['shop_coupon_text'] = to_str($_POST['shop_coupon_text']);
/* Отображаем форму ввода адреса */
// Не выбираем show_location, show_city и show_city_area, т.к. подгружаются через AJAX
$shop->ShowAddress(to_str($GLOBALS['LA']['xsl_delivery_address']), $shop_id, array('show_location' => false, 'show_city' => false, 'show_city_area' => false, $external_propertys));
}
а xls мой выше в предыдущем сообщении
... не заполняется что-то 8(
ку
Вы не туда $external_propertys дописали, посмотрите на скобки. Он дописан к массиву, а должен быть дописан к методу.
Поправил и думал что наконец увижу результат но нет 8( В чем же еще дело?Привожу полный код
<?php
$shop = & singleton('shop');
######################################################
#### Обработка принятия заказа от платежной системы ###
######################################################
// Обработка уведомления об оплате от RUpay
if (isset($_POST['rupay_action']))
{
// Получаем ID заказа
$order_id = to_int($_POST['rupay_order_id']);
$order_row = $shop->GetOrder($order_id);
if ($order_row)
{
// Вызов обработчика платежной системы
$shop->ExecSystemsOfPayHandler($order_row['shop_system_of_pay_id']);
}
}
// Обработка уведомления об оплате от WebMoney
if (isset($_POST['LMI_PAYEE_PURSE']))
{
// Получаем ID заказа
$order_id = to_int($_POST['LMI_PAYMENT_NO']);
$order_row = $shop->GetOrder($order_id);
if ($order_row)
{
// Вызов обработчика платежной системы
$shop->ExecSystemsOfPayHandler($order_row['shop_system_of_pay_id']);
}
}
############################################################
### [END] Обработка принятия заказа от платежной системы ###
############################################################
if (class_exists("SiteUsers"))
{
/* Получаем id текущего пользователя сайта */
$SiteUsers = & singleton('SiteUsers');
$site_users_id = $SiteUsers->GetCurrentSiteUser();
}
else
{
$site_users_id = false;
}
/*
Вывод информации о статусе платежа после его совершения и перенапрпавления с платежной системы
*/
if (isset($_GET['payment']) && isset($_GET['order_id']))
{
// Получаем ID заказа
$order_id = to_int($_GET['order_id']);
$order_row = $shop->GetOrder($order_id);
// Если заказ принадлежит текущему авторизированному пользователю
if ($order_row['site_users_id'] == $site_users_id)
{
if (to_str($_GET['payment']) == 'success')
{
?>
<h1>Подтверждение платежа</h1>
<p>Спасибо, информация об оплате заказа <strong>№ <?php echo $order_id?></strong> получена.</p>
<?php
}
else
{
?>
<h1>Платеж не получен</h1>
<p>К сожалению при оплате заказа <strong>№ <?php echo $order_id?></strong> произошла ошибка.</p>
<?php
}
}
elseif ($site_users_id === false) // Для случаев, когда отключен модуль "Пользователи сайта"
{
?>
<h1>Подтверждение платежа</h1>
<p>Благодарим за посещение нашего магазина!</p>
<?php
}
else
{
?>
<h1>Ошибка</h1>
<p>Неверный номер заказа!</p>
<?php
}
// Прерываем выполнение типовой динамической страницы
return true;
}
/* Идентификатор интернет-магазина */
$shop_id = to_int($GLOBALS['LA']['shop_id']);
/* Проверяем наличие текущего пользователя */
/* Пользователь не авторизироаан */
if ($site_users_id == 0)
{
/* Быстрая регистрация пользователя */
if (isset($_POST['step1_2']))
{
/* пароль необязателен при обновлении данных о пользователе */
if (isset($_POST['site_users_login'])
&& isset($_POST['site_users_password'])
//&& isset($_POST['site_users_email'])
&& isset($_POST['site_users_password_retry'])
&& strpos($_POST['site_users_login'], 'http://') === false // Логин не начинается с http://
)
{
if (to_str($_POST['site_users_password']) == to_str($_POST['site_users_password_retry']))
{
// В массив дополнительных параметров пишем адрес магазина
$shop_row = $shop->GetShop($shop_id);
// Получаем путь к магазину
$Structure = & singleton('Structure');
$shop_path = "/".$Structure->GetStructurePath($shop_row['structure_id'],0);
$param['location'] = $shop_path . "cart/";
$param['site_users_login'] = to_str($_POST['site_users_login']);
$param['site_users_password'] = to_str($_POST['site_users_password']);
$param['site_users_email'] = to_str($_POST['site_users_email']);
$param['site_users_name'] = to_str($_POST['site_users_name']);
$param['site_users_surname'] = to_str($_POST['site_users_surname']);
$param['site_users_patronymic'] = to_str($_POST['site_users_patronymic']);
$param['site_users_country'] = to_str($_POST['site_users_country']);
$param['site_users_company'] = to_str($_POST['site_users_company']);
$param['site_users_phone'] = to_str($_POST['site_users_phone']);
// Группа по умолчанию
$param['site_users_group_id'] = $SiteUsers->GetDefaultGroup();
$param['xslname'] = to_str($GLOBALS['LA']['xsl_registaration_letter']);
/* Не отправлять письмо о подтверждении регистрации,
необходим при автоматическом подтрвеждении регистрации (ниже подтверждение) */
/*
ДАННЫЙ ПАРАМЕТР НЕОБХОДИМО УСТАНОВИТЬ, ЕСЛИ НЕ ТРЕБУЕТСЯ ПОДТВЕРЖДЕНИЕ РЕГИСТРАЦИИ
ПОЛЬЗОВАТЕЛЯ ПОСЛЕ БЫСТРОГО ЗАКАЗА
*/
$param['not_send_mail_confirm'] = true;
// добавляем пользователя, отправляем уведомление о регистрации
$result = $SiteUsers->InsertSiteUser($param);
/* Если не отправляли подтверждение - */
if ($result > 0 && $param['not_send_mail_confirm'])
{
/* Подтверждаем регистрацию */
$SiteUsers->SetConfirmationID($result);
/* Авторизируем пользователя */
$SiteUsers->SetCurrentSiteUser($result);
$site_users_id = $result;
/* Перенсоим товары из cookies в корзину пользователя */
$shop->GetItemsFromCookiesToCart($site_users_id);
}
/* Если пользователь зарегистрирован и необходимо подтверждать авторизацию */
if ($result > 0 && !$param['not_send_mail_confirm'])
{
?>
<h1>Спасибо за регистрацию</h1>
<p>Для продолжения работы необходимо подтвердить регистрацию Ваших данных.
В Ваш адрес отправлено письмо, содержащее ссылку для подтверждения регистрации.</p>
<?php
}
// Проверяем наличие ошибки при регистрации
if ($result < 0)
{
// -3 - Пользователь с таким логином зарегистрирован ранее
// -2 - Пользователь с таким e-mail зарегистрирован ранее
// -1 - Введен некорректный e-mail
$GLOBALS['external_propertys']['error'] = $result;
}
}
else
{
$GLOBALS['external_propertys']['error'] = -7; /*Повторный пароль введен неверно*/
}
}
else
{
$GLOBALS['external_propertys']['error'] = -4; /* Пожалуйста, задайте все обязательные параметры */
}
}
}
if ($site_users_id > 0 || $site_users_id === false)
{
/* Ввод адреса доставки */
if (isset($_POST['step_1']))
{
$external_propertys = array ();
/* Если отключен модуль пользователей сайта, то вызывается этот подэтап */
if (isset($_POST['step_1_1a']))
{
/* Сохраняем данные о пользователе в сессию */
$_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_address'] = to_str($_POST['site_users_address']);
$_SESSION['site_users_company'] = to_str($_POST['site_users_company']);
}
else
{
$aInfoSiteUser = $SiteUsers->GetSiteUser($site_users_id);
$external_propertys['site_users_address_dom'] = $_SESSION['site_users_address_dom'] = to_str($aInfoSiteUser['site_users_address_dom']);
$external_propertys['site_users_address_bld'] = $_SESSION['site_users_address_bld'] = to_str($aInfoSiteUser['site_users_address_bld']);
$external_propertys['site_users_address_app'] = $_SESSION['site_users_address_app'] = to_str($aInfoSiteUser['site_users_address_app']);
$external_propertys['site_users_street'] = $_SESSION['site_users_street'] = to_str($aInfoSiteUser['site_users_street']);
}
/* Запоминаем купон */
$_SESSION['shop_coupon_text'] = to_str($_POST['shop_coupon_text']);
/* Отображаем форму ввода адреса */
// Не выбираем show_location, show_city и show_city_area, т.к. подгружаются через AJAX
$shop->ShowAddress(to_str($GLOBALS['LA']['xsl_delivery_address']), $shop_id, array('show_location' => false, 'show_city' => false, 'show_city_area' => false), $external_propertys);
}
/* Отображаем доступные доставки */
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']);
/* Пишем информацию об адресе доставки в сессию */
$_SESSION['country'] = $country;
$_SESSION['location'] = $location;
$_SESSION['city'] = $city;
$_SESSION['city_area'] = $city_area;
$_SESSION['index'] = to_str($_POST['index']);
$_SESSION['full_address'] = to_str($_POST['full_address']);
$_SESSION['metro'] = to_str($_POST['metro']);
$_SESSION['other_info'] = to_str($_POST['other_info']);
$_SESSION['my_time'] = to_str($_POST['my_time']);
$_SESSION['site_users_street'] = to_str($_POST['site_users_street']);
$_SESSION['site_users_address_dom'] = to_str($_POST['site_users_address_dom']);
$_SESSION['site_users_address_bld'] = to_str($_POST['site_users_address_bld']);
$_SESSION['site_users_address_app'] = to_str($_POST['site_users_address_app']);
/* Индекс и полный адрес (в массив дополнительных параметров) */
$external_propertys['index'] = to_str($_POST['index']);
$external_propertys['full_address'] = to_str($_POST['full_address']);
$external_propertys['metro'] = to_str($_POST['metro']);
/* Получаем количество элементов, их общую цену, вес, валюту для заданного пользователя */
$a_param = $shop->SelectAllItemsFromCartForUser($shop_id,
$site_users_id);
/* Выбираем все доступные типы доставки (с группировкой по типу доставки) */
$param = array();
$param['shop_coupon_text'] = to_str($_SESSION['shop_coupon_text']);
$shop->ShowTypeOfDelivery($shop_id, $country, $location, $city, $city_area, $a_param['weight'], $a_param['price'],
to_str($GLOBALS['LA']['xsl_shop_delivery']), $param, $external_propertys);
}
/* Показываем страницу доступных платежных систем */
elseif (isset($_POST['step_3']))
{
/* Обрабатываем полученные данные о типе доставки */
$_SESSION['cond_of_delivery'] = to_int($_POST['cond_of_delivery']);
/* Расчитываем цену доставки */
/* Получаем данные о магазине */
$shop_row = $shop->GetShop($shop_id);
$row = $shop->GetCondOfDelivery($_SESSION['cond_of_delivery']);
/* идентификатор валюты магазина */
$shop_currency_id = to_int($shop_row['shop_currency_id']);
$coefficient = $shop->GetCurrencyCoefficientToShopCurrency($row['shop_currency_id'], $shop_currency_id);
$price_delivery = sprintf("%.2f", $row['shop_cond_of_delivery_price'] * $coefficient);
$_SESSION['cond_of_delivery_price'] = $price_delivery;
/* Выводим платежные системы */
$external_propertys['cond_of_delivery'] = to_int($_POST['cond_of_delivery']);
$shop->ShowSystemOfPay(to_str($GLOBALS['LA']['xsl_system_of_pay']), $external_propertys, array('shop_shops_id' => $shop_id));
}
elseif (isset($_POST['step_4']))
{
/* Если выбрана (существует) платежная система */
if (to_int($_POST['system_of_pay_id']) != 0)
{
/* Вызываем обработчик платежной системы */
if (!$shop->ExecSystemsOfPayHandler(to_int($_POST['system_of_pay_id'])))
{
/* Не удалось найти обработчик */
show_error_message("Не найден обработчик платежной системы с номером ".to_int($_POST['system_of_pay_id']));
}
}
else
{
/* Ошибка, не указана платежная система! */
show_error_message('Ошибка! Не указана ни одна платежная система.');
}
}
else
{
/* Очищаем сессию */
if (isset($_SESSION['CART'][$shop_id]))
{
unset($_SESSION['CART'][$shop_id]);
}
/* Отображаем корзину */
$shop->ShowCart($shop_id, $site_users_id,
to_str($GLOBALS['LA']['xsl_cart']), array('shop_coupon_text' => to_str($_REQUEST['shop_coupon_text'])));
}
}
elseif ($site_users_id === 0)
{
/* Выводим корзину */
$shop->ShowCart($shop_id, $site_users_id,
to_str($GLOBALS['LA']['xsl_cart']), array('shop_coupon_text' => to_str($_REQUEST['shop_coupon_text'])));
/* Выводим форму быстрой регистрации (регистрация для пользователей) */
$GLOBALS['external_propertys']['ПоказатьАвторизацию'] = 'true';
$SiteUsers->ShowSiteUserRegistartion($site_users_id,
to_str($GLOBALS['LA']['xsl_quick_registration']), $GLOBALS['external_propertys']);
}
else
{
?>
Вам необходимо подтвердить регистрацию!
<?php
}
?>
$shop = & singleton('shop');
######################################################
#### Обработка принятия заказа от платежной системы ###
######################################################
// Обработка уведомления об оплате от RUpay
if (isset($_POST['rupay_action']))
{
// Получаем ID заказа
$order_id = to_int($_POST['rupay_order_id']);
$order_row = $shop->GetOrder($order_id);
if ($order_row)
{
// Вызов обработчика платежной системы
$shop->ExecSystemsOfPayHandler($order_row['shop_system_of_pay_id']);
}
}
// Обработка уведомления об оплате от WebMoney
if (isset($_POST['LMI_PAYEE_PURSE']))
{
// Получаем ID заказа
$order_id = to_int($_POST['LMI_PAYMENT_NO']);
$order_row = $shop->GetOrder($order_id);
if ($order_row)
{
// Вызов обработчика платежной системы
$shop->ExecSystemsOfPayHandler($order_row['shop_system_of_pay_id']);
}
}
############################################################
### [END] Обработка принятия заказа от платежной системы ###
############################################################
if (class_exists("SiteUsers"))
{
/* Получаем id текущего пользователя сайта */
$SiteUsers = & singleton('SiteUsers');
$site_users_id = $SiteUsers->GetCurrentSiteUser();
}
else
{
$site_users_id = false;
}
/*
Вывод информации о статусе платежа после его совершения и перенапрпавления с платежной системы
*/
if (isset($_GET['payment']) && isset($_GET['order_id']))
{
// Получаем ID заказа
$order_id = to_int($_GET['order_id']);
$order_row = $shop->GetOrder($order_id);
// Если заказ принадлежит текущему авторизированному пользователю
if ($order_row['site_users_id'] == $site_users_id)
{
if (to_str($_GET['payment']) == 'success')
{
?>
<h1>Подтверждение платежа</h1>
<p>Спасибо, информация об оплате заказа <strong>№ <?php echo $order_id?></strong> получена.</p>
<?php
}
else
{
?>
<h1>Платеж не получен</h1>
<p>К сожалению при оплате заказа <strong>№ <?php echo $order_id?></strong> произошла ошибка.</p>
<?php
}
}
elseif ($site_users_id === false) // Для случаев, когда отключен модуль "Пользователи сайта"
{
?>
<h1>Подтверждение платежа</h1>
<p>Благодарим за посещение нашего магазина!</p>
<?php
}
else
{
?>
<h1>Ошибка</h1>
<p>Неверный номер заказа!</p>
<?php
}
// Прерываем выполнение типовой динамической страницы
return true;
}
/* Идентификатор интернет-магазина */
$shop_id = to_int($GLOBALS['LA']['shop_id']);
/* Проверяем наличие текущего пользователя */
/* Пользователь не авторизироаан */
if ($site_users_id == 0)
{
/* Быстрая регистрация пользователя */
if (isset($_POST['step1_2']))
{
/* пароль необязателен при обновлении данных о пользователе */
if (isset($_POST['site_users_login'])
&& isset($_POST['site_users_password'])
//&& isset($_POST['site_users_email'])
&& isset($_POST['site_users_password_retry'])
&& strpos($_POST['site_users_login'], 'http://') === false // Логин не начинается с http://
)
{
if (to_str($_POST['site_users_password']) == to_str($_POST['site_users_password_retry']))
{
// В массив дополнительных параметров пишем адрес магазина
$shop_row = $shop->GetShop($shop_id);
// Получаем путь к магазину
$Structure = & singleton('Structure');
$shop_path = "/".$Structure->GetStructurePath($shop_row['structure_id'],0);
$param['location'] = $shop_path . "cart/";
$param['site_users_login'] = to_str($_POST['site_users_login']);
$param['site_users_password'] = to_str($_POST['site_users_password']);
$param['site_users_email'] = to_str($_POST['site_users_email']);
$param['site_users_name'] = to_str($_POST['site_users_name']);
$param['site_users_surname'] = to_str($_POST['site_users_surname']);
$param['site_users_patronymic'] = to_str($_POST['site_users_patronymic']);
$param['site_users_country'] = to_str($_POST['site_users_country']);
$param['site_users_company'] = to_str($_POST['site_users_company']);
$param['site_users_phone'] = to_str($_POST['site_users_phone']);
// Группа по умолчанию
$param['site_users_group_id'] = $SiteUsers->GetDefaultGroup();
$param['xslname'] = to_str($GLOBALS['LA']['xsl_registaration_letter']);
/* Не отправлять письмо о подтверждении регистрации,
необходим при автоматическом подтрвеждении регистрации (ниже подтверждение) */
/*
ДАННЫЙ ПАРАМЕТР НЕОБХОДИМО УСТАНОВИТЬ, ЕСЛИ НЕ ТРЕБУЕТСЯ ПОДТВЕРЖДЕНИЕ РЕГИСТРАЦИИ
ПОЛЬЗОВАТЕЛЯ ПОСЛЕ БЫСТРОГО ЗАКАЗА
*/
$param['not_send_mail_confirm'] = true;
// добавляем пользователя, отправляем уведомление о регистрации
$result = $SiteUsers->InsertSiteUser($param);
/* Если не отправляли подтверждение - */
if ($result > 0 && $param['not_send_mail_confirm'])
{
/* Подтверждаем регистрацию */
$SiteUsers->SetConfirmationID($result);
/* Авторизируем пользователя */
$SiteUsers->SetCurrentSiteUser($result);
$site_users_id = $result;
/* Перенсоим товары из cookies в корзину пользователя */
$shop->GetItemsFromCookiesToCart($site_users_id);
}
/* Если пользователь зарегистрирован и необходимо подтверждать авторизацию */
if ($result > 0 && !$param['not_send_mail_confirm'])
{
?>
<h1>Спасибо за регистрацию</h1>
<p>Для продолжения работы необходимо подтвердить регистрацию Ваших данных.
В Ваш адрес отправлено письмо, содержащее ссылку для подтверждения регистрации.</p>
<?php
}
// Проверяем наличие ошибки при регистрации
if ($result < 0)
{
// -3 - Пользователь с таким логином зарегистрирован ранее
// -2 - Пользователь с таким e-mail зарегистрирован ранее
// -1 - Введен некорректный e-mail
$GLOBALS['external_propertys']['error'] = $result;
}
}
else
{
$GLOBALS['external_propertys']['error'] = -7; /*Повторный пароль введен неверно*/
}
}
else
{
$GLOBALS['external_propertys']['error'] = -4; /* Пожалуйста, задайте все обязательные параметры */
}
}
}
if ($site_users_id > 0 || $site_users_id === false)
{
/* Ввод адреса доставки */
if (isset($_POST['step_1']))
{
$external_propertys = array ();
/* Если отключен модуль пользователей сайта, то вызывается этот подэтап */
if (isset($_POST['step_1_1a']))
{
/* Сохраняем данные о пользователе в сессию */
$_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_address'] = to_str($_POST['site_users_address']);
$_SESSION['site_users_company'] = to_str($_POST['site_users_company']);
}
else
{
$aInfoSiteUser = $SiteUsers->GetSiteUser($site_users_id);
$external_propertys['site_users_address_dom'] = $_SESSION['site_users_address_dom'] = to_str($aInfoSiteUser['site_users_address_dom']);
$external_propertys['site_users_address_bld'] = $_SESSION['site_users_address_bld'] = to_str($aInfoSiteUser['site_users_address_bld']);
$external_propertys['site_users_address_app'] = $_SESSION['site_users_address_app'] = to_str($aInfoSiteUser['site_users_address_app']);
$external_propertys['site_users_street'] = $_SESSION['site_users_street'] = to_str($aInfoSiteUser['site_users_street']);
}
/* Запоминаем купон */
$_SESSION['shop_coupon_text'] = to_str($_POST['shop_coupon_text']);
/* Отображаем форму ввода адреса */
// Не выбираем show_location, show_city и show_city_area, т.к. подгружаются через AJAX
$shop->ShowAddress(to_str($GLOBALS['LA']['xsl_delivery_address']), $shop_id, array('show_location' => false, 'show_city' => false, 'show_city_area' => false), $external_propertys);
}
/* Отображаем доступные доставки */
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']);
/* Пишем информацию об адресе доставки в сессию */
$_SESSION['country'] = $country;
$_SESSION['location'] = $location;
$_SESSION['city'] = $city;
$_SESSION['city_area'] = $city_area;
$_SESSION['index'] = to_str($_POST['index']);
$_SESSION['full_address'] = to_str($_POST['full_address']);
$_SESSION['metro'] = to_str($_POST['metro']);
$_SESSION['other_info'] = to_str($_POST['other_info']);
$_SESSION['my_time'] = to_str($_POST['my_time']);
$_SESSION['site_users_street'] = to_str($_POST['site_users_street']);
$_SESSION['site_users_address_dom'] = to_str($_POST['site_users_address_dom']);
$_SESSION['site_users_address_bld'] = to_str($_POST['site_users_address_bld']);
$_SESSION['site_users_address_app'] = to_str($_POST['site_users_address_app']);
/* Индекс и полный адрес (в массив дополнительных параметров) */
$external_propertys['index'] = to_str($_POST['index']);
$external_propertys['full_address'] = to_str($_POST['full_address']);
$external_propertys['metro'] = to_str($_POST['metro']);
/* Получаем количество элементов, их общую цену, вес, валюту для заданного пользователя */
$a_param = $shop->SelectAllItemsFromCartForUser($shop_id,
$site_users_id);
/* Выбираем все доступные типы доставки (с группировкой по типу доставки) */
$param = array();
$param['shop_coupon_text'] = to_str($_SESSION['shop_coupon_text']);
$shop->ShowTypeOfDelivery($shop_id, $country, $location, $city, $city_area, $a_param['weight'], $a_param['price'],
to_str($GLOBALS['LA']['xsl_shop_delivery']), $param, $external_propertys);
}
/* Показываем страницу доступных платежных систем */
elseif (isset($_POST['step_3']))
{
/* Обрабатываем полученные данные о типе доставки */
$_SESSION['cond_of_delivery'] = to_int($_POST['cond_of_delivery']);
/* Расчитываем цену доставки */
/* Получаем данные о магазине */
$shop_row = $shop->GetShop($shop_id);
$row = $shop->GetCondOfDelivery($_SESSION['cond_of_delivery']);
/* идентификатор валюты магазина */
$shop_currency_id = to_int($shop_row['shop_currency_id']);
$coefficient = $shop->GetCurrencyCoefficientToShopCurrency($row['shop_currency_id'], $shop_currency_id);
$price_delivery = sprintf("%.2f", $row['shop_cond_of_delivery_price'] * $coefficient);
$_SESSION['cond_of_delivery_price'] = $price_delivery;
/* Выводим платежные системы */
$external_propertys['cond_of_delivery'] = to_int($_POST['cond_of_delivery']);
$shop->ShowSystemOfPay(to_str($GLOBALS['LA']['xsl_system_of_pay']), $external_propertys, array('shop_shops_id' => $shop_id));
}
elseif (isset($_POST['step_4']))
{
/* Если выбрана (существует) платежная система */
if (to_int($_POST['system_of_pay_id']) != 0)
{
/* Вызываем обработчик платежной системы */
if (!$shop->ExecSystemsOfPayHandler(to_int($_POST['system_of_pay_id'])))
{
/* Не удалось найти обработчик */
show_error_message("Не найден обработчик платежной системы с номером ".to_int($_POST['system_of_pay_id']));
}
}
else
{
/* Ошибка, не указана платежная система! */
show_error_message('Ошибка! Не указана ни одна платежная система.');
}
}
else
{
/* Очищаем сессию */
if (isset($_SESSION['CART'][$shop_id]))
{
unset($_SESSION['CART'][$shop_id]);
}
/* Отображаем корзину */
$shop->ShowCart($shop_id, $site_users_id,
to_str($GLOBALS['LA']['xsl_cart']), array('shop_coupon_text' => to_str($_REQUEST['shop_coupon_text'])));
}
}
elseif ($site_users_id === 0)
{
/* Выводим корзину */
$shop->ShowCart($shop_id, $site_users_id,
to_str($GLOBALS['LA']['xsl_cart']), array('shop_coupon_text' => to_str($_REQUEST['shop_coupon_text'])));
/* Выводим форму быстрой регистрации (регистрация для пользователей) */
$GLOBALS['external_propertys']['ПоказатьАвторизацию'] = 'true';
$SiteUsers->ShowSiteUserRegistartion($site_users_id,
to_str($GLOBALS['LA']['xsl_quick_registration']), $GLOBALS['external_propertys']);
}
else
{
?>
Вам необходимо подтвердить регистрацию!
<?php
}
?>
ку
Посмотрите в XML, информация появилась? Покажите фрагмент от начала до этого блока с информацией.
Авторизация
