Проблема с удалением шагов в корзине
amades
8 августа 2009 г.
Есть магазин. Установлены все обновления.
Есть задача: убрать все шаги кроме первого, то есть чтобы после первого шага заказ оформлялся.
Что для этого было сделано:
1. Обновил свою динамическую страницу с вашего демо сайта
2. Из формы "данные о заказчике" передал переменные:
3. В типовой динамической странице изменил первый шаг (step_1)
Теперь если нажать "оформить заказ" мы попадаем на следующею страниу где написано:
"Ваш заказ оформлен
Заказанных товаров нет
Спасибо за использование услуг нашего магазина."
Товары из корзины в итоге не удаляются и заказ в админку не приходит.
Помогите пожалуйста, уже руки опускаются.
P.S. На форуме прочитал все темы по удалению шагов, все что было написано там сделал и привел вам в этом посте выше. Может быть у вас что-то обновилось и методы из старых тем больше не работают?
Есть задача: убрать все шаги кроме первого, то есть чтобы после первого шага заказ оформлялся.
Что для этого было сделано:
1. Обновил свою динамическую страницу с вашего демо сайта
2. Из формы "данные о заказчике" передал переменные:
<input name="step_1_1a" type="hidden" value="1" />
<input type="hidden" name="system_of_pay_id" value="1" />
<input name="step_1" type="hidden" value="1" />
<input type="hidden" name="system_of_pay_id" value="1" />
<input name="step_1" type="hidden" value="1" />
3. В типовой динамической странице изменил первый шаг (step_1)
/* Ввод адреса доставки */
if (isset($_POST['step_1']))
{
$external_propertys = array ();
/* Если отключен модуль пользователей сайта, то вызывается этот подэтап */
if (isset($_POST['step_1_1a']))
{
/* Сохраняем данные о пользователе в сессию */
$external_propertys['site_users_name'] = $_SESSION['site_users_name'] = to_str($_POST['site_users_name']);
$external_propertys['site_users_surname'] = $_SESSION['site_users_surname'] = to_str($_POST['site_users_surname']);
$external_propertys['site_users_patronymic'] = $_SESSION['site_users_patronymic'] = to_str($_POST['site_users_patronymic']);
$external_propertys['site_users_email'] = $_SESSION['site_users_email'] = to_str($_POST['site_users_email']);
$external_propertys['site_users_phone'] = $_SESSION['site_users_phone'] = to_str($_POST['site_users_phone']);
$external_propertys['site_users_fax'] = $_SESSION['site_users_fax'] = to_str($_POST['site_users_fax']);
$external_propertys['site_users_address'] = $_SESSION['site_users_address'] = to_str($_POST['site_users_address']);
$external_propertys['site_users_company'] = $_SESSION['site_users_company'] = to_str($_POST['site_users_company']);
}
else
{
$aInfoSiteUser = $SiteUsers->GetSiteUser($site_users_id);
$external_propertys['site_users_name'] = $_SESSION['site_users_name'] = to_str($aInfoSiteUser['site_users_name']);
$external_propertys['site_users_surname'] = $_SESSION['site_users_surname'] = to_str($aInfoSiteUser['site_users_surname']);
$external_propertys['site_users_patronymic'] = $_SESSION['site_users_patronymic'] = to_str($aInfoSiteUser['site_users_patronymic']);
$external_propertys['site_users_email'] = $_SESSION['site_users_email'] = to_str($aInfoSiteUser['site_users_email']);
$external_propertys['site_users_phone'] = $_SESSION['site_users_phone'] = to_str($aInfoSiteUser['site_users_phone']);
$external_propertys['site_users_fax'] = $_SESSION['site_users_fax'] = to_str($aInfoSiteUser['site_users_fax']);
$external_propertys['site_users_address'] = $_SESSION['site_users_address'] = to_str($aInfoSiteUser['site_users_address']);
$external_propertys['site_users_company'] = $_SESSION['site_users_company'] = to_str($aInfoSiteUser['site_users_company']);
$external_propertys['site_users_postcode'] = $_SESSION['index'] = to_str($aInfoSiteUser['site_users_postcode']);
}
/* Запоминаем купон */
$_SESSION['shop_coupon_text'] = to_str($_POST['shop_coupon_text']);
/* Если выбрана (существует) платежная система */
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('Ошибка! Не указана ни одна платежная система.');
}
/* Отображаем форму ввода адреса */
// Не выбираем 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']))
{
/* Сохраняем данные о пользователе в сессию */
$external_propertys['site_users_name'] = $_SESSION['site_users_name'] = to_str($_POST['site_users_name']);
$external_propertys['site_users_surname'] = $_SESSION['site_users_surname'] = to_str($_POST['site_users_surname']);
$external_propertys['site_users_patronymic'] = $_SESSION['site_users_patronymic'] = to_str($_POST['site_users_patronymic']);
$external_propertys['site_users_email'] = $_SESSION['site_users_email'] = to_str($_POST['site_users_email']);
$external_propertys['site_users_phone'] = $_SESSION['site_users_phone'] = to_str($_POST['site_users_phone']);
$external_propertys['site_users_fax'] = $_SESSION['site_users_fax'] = to_str($_POST['site_users_fax']);
$external_propertys['site_users_address'] = $_SESSION['site_users_address'] = to_str($_POST['site_users_address']);
$external_propertys['site_users_company'] = $_SESSION['site_users_company'] = to_str($_POST['site_users_company']);
}
else
{
$aInfoSiteUser = $SiteUsers->GetSiteUser($site_users_id);
$external_propertys['site_users_name'] = $_SESSION['site_users_name'] = to_str($aInfoSiteUser['site_users_name']);
$external_propertys['site_users_surname'] = $_SESSION['site_users_surname'] = to_str($aInfoSiteUser['site_users_surname']);
$external_propertys['site_users_patronymic'] = $_SESSION['site_users_patronymic'] = to_str($aInfoSiteUser['site_users_patronymic']);
$external_propertys['site_users_email'] = $_SESSION['site_users_email'] = to_str($aInfoSiteUser['site_users_email']);
$external_propertys['site_users_phone'] = $_SESSION['site_users_phone'] = to_str($aInfoSiteUser['site_users_phone']);
$external_propertys['site_users_fax'] = $_SESSION['site_users_fax'] = to_str($aInfoSiteUser['site_users_fax']);
$external_propertys['site_users_address'] = $_SESSION['site_users_address'] = to_str($aInfoSiteUser['site_users_address']);
$external_propertys['site_users_company'] = $_SESSION['site_users_company'] = to_str($aInfoSiteUser['site_users_company']);
$external_propertys['site_users_postcode'] = $_SESSION['index'] = to_str($aInfoSiteUser['site_users_postcode']);
}
/* Запоминаем купон */
$_SESSION['shop_coupon_text'] = to_str($_POST['shop_coupon_text']);
/* Если выбрана (существует) платежная система */
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('Ошибка! Не указана ни одна платежная система.');
}
/* Отображаем форму ввода адреса */
// Не выбираем 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);
}
Теперь если нажать "оформить заказ" мы попадаем на следующею страниу где написано:
"Ваш заказ оформлен
Заказанных товаров нет
Спасибо за использование услуг нашего магазина."
Товары из корзины в итоге не удаляются и заказ в админку не приходит.
Помогите пожалуйста, уже руки опускаются.
P.S. На форуме прочитал все темы по удалению шагов, все что было написано там сделал и привел вам в этом посте выше. Может быть у вас что-то обновилось и методы из старых тем больше не работают?
Разработка и поддержка сайтов на HostCMS
hostcms
Модератор
9 августа 2009 г.
alek001,
принцип удаления следующий:
1. Переименовывать шаги не нужно.
2. Код тех шагов, что пропускаются, дописывается к коду предыдущего (или предпредыдщуего, если он пропускается) шага, при этом для значений, которые должны быть приняты из формы, указывается некоторое значение, например 0 для выбранной доставки, 0 для выбранной формы оплаты и так далее.
принцип удаления следующий:
1. Переименовывать шаги не нужно.
2. Код тех шагов, что пропускаются, дописывается к коду предыдущего (или предпредыдщуего, если он пропускается) шага, при этом для значений, которые должны быть приняты из формы, указывается некоторое значение, например 0 для выбранной доставки, 0 для выбранной формы оплаты и так далее.
amades
9 августа 2009 г.
HostCMS,
Все работает, огромное спасибо. Но есть одно НО:
Если не убирать шаги то схема работы корзина следующая: мы проходим все шаги и на последнем нам пишут "Ваш заказ оформлен и тп..." и информация из краткой корзины пропадает, т.е. на последнем шаге ее уже нет в краткой корзине написано что корзина пуста.
У меня же сейчас на последнем шаге пишется "Ваш заказ оформлен", заказ кладется в админку, но справа все равно в краткой корзине товары остаются. После перехода на другую страницу краткая корзина очищается.
Думал поменять в настроках Дин страницы step_4 на step_1, тогда при оформлении если не заполнить поле имя и нажать оформить заказ все товары пропадают. если сразу корректно заполнить форму то все оформляется корректно и товары из краткой корзины на последнем шаге пропадают.
Вот часть кода нид страницы:
Все работает, огромное спасибо. Но есть одно НО:
Если не убирать шаги то схема работы корзина следующая: мы проходим все шаги и на последнем нам пишут "Ваш заказ оформлен и тп..." и информация из краткой корзины пропадает, т.е. на последнем шаге ее уже нет в краткой корзине написано что корзина пуста.
У меня же сейчас на последнем шаге пишется "Ваш заказ оформлен", заказ кладется в админку, но справа все равно в краткой корзине товары остаются. После перехода на другую страницу краткая корзина очищается.
Думал поменять в настроках Дин страницы step_4 на step_1, тогда при оформлении если не заполнить поле имя и нажать оформить заказ все товары пропадают. если сразу корректно заполнить форму то все оформляется корректно и товары из краткой корзины на последнем шаге пропадают.
Вот часть кода нид страницы:
/* Ввод адреса доставки */
if (isset($_POST['step_1']))
{
$external_propertys = array ();
/* Если отключен модуль пользователей сайта, то вызывается этот подэтап */
if (isset($_POST['step_1_1a']))
{
/* Сохраняем данные о пользователе в сессию */
$external_propertys['site_users_name'] = $_SESSION['site_users_name'] = to_str($_POST['site_users_name']);
$external_propertys['site_users_surname'] = $_SESSION['site_users_surname'] = to_str($_POST['site_users_surname']);
$external_propertys['site_users_patronymic'] = $_SESSION['site_users_patronymic'] = to_str($_POST['site_users_patronymic']);
$external_propertys['site_users_email'] = $_SESSION['site_users_email'] = to_str($_POST['site_users_email']);
$external_propertys['site_users_phone'] = $_SESSION['site_users_phone'] = to_str($_POST['site_users_phone']);
$external_propertys['site_users_fax'] = $_SESSION['site_users_fax'] = to_str($_POST['site_users_fax']);
$external_propertys['site_users_address'] = $_SESSION['site_users_address'] = to_str($_POST['site_users_address']);
$external_propertys['site_users_company'] = $_SESSION['site_users_company'] = to_str($_POST['site_users_company']);
}
/* Запоминаем купон */
$_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);
/* ШАГ ВТОРОЙ */
/* Сохраняем данные, введенные на первом этапе */
$country = '0';
$location = '0';
$city = '0';
$city_area = '0';
// Сбрасываем информацию о последнем заказе
$_SESSION['last_order_id'] = 0;
/* Пишем информацию об адресе доставки в сессию */
$_SESSION['country'] = $country;
$_SESSION['location'] = $location;
$_SESSION['city'] = $city;
$_SESSION['city_area'] = $city_area;
$_SESSION['index'] = '0';
$_SESSION['full_address'] = $_SESSION['site_users_address'];
$_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['index'] = '0';
$external_propertys['full_address'] = '0';
/* Получаем количество элементов, их общую цену, вес, валюту для заданного пользователя */
$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);
/* Шаг третий */
/* Обрабатываем полученные данные о типе доставки */
$_SESSION['cond_of_delivery'] = '0';
/* Расчитываем цену доставки */
/* Получаем данные о магазине */
$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'] = '0';
//$shop->ShowSystemOfPay(to_str($GLOBALS['LA']['xsl_system_of_pay']), $external_propertys);
/* шаг четвертый */
/* Если выбрана (существует) платежная система */
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('Ошибка! Не указана ни одна платежная система.');
}
if (isset($_POST['step_1']))
{
$external_propertys = array ();
/* Если отключен модуль пользователей сайта, то вызывается этот подэтап */
if (isset($_POST['step_1_1a']))
{
/* Сохраняем данные о пользователе в сессию */
$external_propertys['site_users_name'] = $_SESSION['site_users_name'] = to_str($_POST['site_users_name']);
$external_propertys['site_users_surname'] = $_SESSION['site_users_surname'] = to_str($_POST['site_users_surname']);
$external_propertys['site_users_patronymic'] = $_SESSION['site_users_patronymic'] = to_str($_POST['site_users_patronymic']);
$external_propertys['site_users_email'] = $_SESSION['site_users_email'] = to_str($_POST['site_users_email']);
$external_propertys['site_users_phone'] = $_SESSION['site_users_phone'] = to_str($_POST['site_users_phone']);
$external_propertys['site_users_fax'] = $_SESSION['site_users_fax'] = to_str($_POST['site_users_fax']);
$external_propertys['site_users_address'] = $_SESSION['site_users_address'] = to_str($_POST['site_users_address']);
$external_propertys['site_users_company'] = $_SESSION['site_users_company'] = to_str($_POST['site_users_company']);
}
/* Запоминаем купон */
$_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);
/* ШАГ ВТОРОЙ */
/* Сохраняем данные, введенные на первом этапе */
$country = '0';
$location = '0';
$city = '0';
$city_area = '0';
// Сбрасываем информацию о последнем заказе
$_SESSION['last_order_id'] = 0;
/* Пишем информацию об адресе доставки в сессию */
$_SESSION['country'] = $country;
$_SESSION['location'] = $location;
$_SESSION['city'] = $city;
$_SESSION['city_area'] = $city_area;
$_SESSION['index'] = '0';
$_SESSION['full_address'] = $_SESSION['site_users_address'];
$_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['index'] = '0';
$external_propertys['full_address'] = '0';
/* Получаем количество элементов, их общую цену, вес, валюту для заданного пользователя */
$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);
/* Шаг третий */
/* Обрабатываем полученные данные о типе доставки */
$_SESSION['cond_of_delivery'] = '0';
/* Расчитываем цену доставки */
/* Получаем данные о магазине */
$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'] = '0';
//$shop->ShowSystemOfPay(to_str($GLOBALS['LA']['xsl_system_of_pay']), $external_propertys);
/* шаг четвертый */
/* Если выбрана (существует) платежная система */
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('Ошибка! Не указана ни одна платежная система.');
}
Разработка и поддержка сайтов на HostCMS
hostcms
Модератор
11 августа 2009 г.
alek001 писал(а):
правильно, корзина очищается в коде динамической страницы, а этот код ниже, чем вывод краткой корзины, поэтому на момент вывода краткой корзины она еще не очищена.
У меня же сейчас на последнем шаге пишется «Ваш заказ оформлен», заказ кладется в админку, но справа все равно в краткой корзине товары остаются. После перехода на другую страницу краткая корзина очищается.
правильно, корзина очищается в коде динамической страницы, а этот код ниже, чем вывод краткой корзины, поэтому на момент вывода краткой корзины она еще не очищена.
amades
11 августа 2009 г.
а как сделать чтобы чтобы выодилось "ваш заказ оформлен" и кратка корзина уже была пусто?
Просто немного не допонял вашей мысли )
Просто немного не допонял вашей мысли )
Разработка и поддержка сайтов на HostCMS
hostcms
Модератор
12 августа 2009 г.
alek001 писал(а):
Тогда нужно переносить данные из корзины в заказ на предыдущем шаге, чтобы к моменту отображения корзины она была пуста.
а как сделать чтобы чтобы выодилось «ваш заказ оформлен» и кратка корзина уже была пусто?
Тогда нужно переносить данные из корзины в заказ на предыдущем шаге, чтобы к моменту отображения корзины она была пуста.
DStorm
18 ноября 2009 г.
В коде динамической страницы корзины необходимо этот код:
/* Ввод адреса доставки */
if (isset($_POST['step_1']))
{
$external_propertys = array ();
/* Если отключен модуль пользователей сайта, то вызывается этот подэтап */
if (isset($_POST['step_1_1a']))
{
/* Сохраняем данные о пользователе в сессию */
$external_propertys['site_users_name'] = $_SESSION['site_users_name'] = to_str($_POST['site_users_name']);
$external_propertys['site_users_surname'] = $_SESSION['site_users_surname'] = to_str($_POST['site_users_surname']);
$external_propertys['site_users_patronymic'] = $_SESSION['site_users_patronymic'] = to_str($_POST['site_users_patronymic']);
$external_propertys['site_users_email'] = $_SESSION['site_users_email'] = to_str($_POST['site_users_email']);
$external_propertys['site_users_phone'] = $_SESSION['site_users_phone'] = to_str($_POST['site_users_phone']);
$external_propertys['site_users_fax'] = $_SESSION['site_users_fax'] = to_str($_POST['site_users_fax']);
$external_propertys['site_users_address'] = $_SESSION['site_users_address'] = to_str($_POST['site_users_address']);
$external_propertys['site_users_company'] = $_SESSION['site_users_company'] = to_str($_POST['site_users_company']);
}
else
{
$aInfoSiteUser = $SiteUsers->GetSiteUser($site_users_id);
$external_propertys['site_users_name'] = $_SESSION['site_users_name'] = to_str($aInfoSiteUser['site_users_name']);
$external_propertys['site_users_surname'] = $_SESSION['site_users_surname'] = to_str($aInfoSiteUser['site_users_surname']);
$external_propertys['site_users_patronymic'] = $_SESSION['site_users_patronymic'] = to_str($aInfoSiteUser['site_users_patronymic']);
$external_propertys['site_users_email'] = $_SESSION['site_users_email'] = to_str($aInfoSiteUser['site_users_email']);
$external_propertys['site_users_phone'] = $_SESSION['site_users_phone'] = to_str($aInfoSiteUser['site_users_phone']);
$external_propertys['site_users_fax'] = $_SESSION['site_users_fax'] = to_str($aInfoSiteUser['site_users_fax']);
$external_propertys['site_users_address'] = $_SESSION['site_users_address'] = to_str($aInfoSiteUser['site_users_address']);
$external_propertys['site_users_company'] = $_SESSION['site_users_company'] = to_str($aInfoSiteUser['site_users_company']);
$external_propertys['site_users_postcode'] = $_SESSION['index'] = to_str($aInfoSiteUser['site_users_postcode']);
}
/* Запоминаем купон */
$_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['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_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['index'] = to_str($_POST['index']);
$external_propertys['full_address'] = to_str($_POST['full_address']);
/* Получаем количество элементов, их общую цену, вес, валюту для заданного пользователя */
$a_param = $shop->SelectAllItemsFromCartForUser($shop_id, $site_users_id);
/* Выбираем все доступные типы доставки (с группировкой по типу доставки) */
$param = array();
$param['shop_coupon_text'] = to_str($_SESSION['shop_coupon_text']);
// Передаем количество товара
$param['count'] = $a_param['quantity'];
$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 || !empty($message))
{
/* Выводим корзину */
$external_propertys = array();
if (!empty($message))
{
$external_propertys['message'] = $message;
}
$external_propertys['site_users_name'] = to_str($_POST['site_users_name']);
$external_propertys['site_users_surname'] = to_str($_POST['site_users_surname']);
$external_propertys['site_users_patronymic'] = to_str($_POST['site_users_patronymic']);
$external_propertys['site_users_email'] = to_str($_POST['site_users_email']);
$external_propertys['site_users_phone'] = to_str($_POST['site_users_phone']);
$external_propertys['site_users_fax'] = to_str($_POST['site_users_fax']);
$external_propertys['site_users_address'] = to_str($_POST['site_users_address']);
$external_propertys['site_users_company'] = to_str($_POST['site_users_company']);
$shop->ShowCart($shop_id, $site_users_id, to_str($GLOBALS['LA']['xsl_cart']), array('shop_coupon_text' => to_str($_REQUEST['shop_coupon_text'])), $external_propertys);
if (class_exists("SiteUsers"))
{
/* Выводим форму быстрой регистрации (регистрация для пользователей) */
$GLOBALS['external_propertys']['ПоказатьАвторизацию'] = 'true';
$SiteUsers->ShowSiteUserRegistartion($site_users_id,
to_str($GLOBALS['LA']['xsl_quick_registration']), $GLOBALS['external_propertys']);
}
}
else
{
?>
Вам необходимо подтвердить регистрацию!
<?php
}
?>
Заменить на этот. В переменную $system_of_pay_id подставить свой номер платежной системы. В моем варианте 1 (по умолчанию это наличными)
/* Ввод адреса доставки */
if (isset($_POST['step_1']))
{
/* Если отключен модуль пользователей сайта, то вызывается этот подэтап */
if (isset($_POST['step_1_1a']))
{
/* Сохраняем данные о пользователе в сессию */
/*$_SESSION['country'] ='Россия';
$_SESSION['location'] ='Москва и Московская обл.';
$_SESSION['city'] ='Москва';*/
// Сбрасываем информацию о последнем заказе
$_SESSION['last_order_id'] = 0;
$_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['full_address'] = to_str($_POST['site_users_address']);
$_SESSION['site_users_company'] = to_str($_POST['site_users_company']);
$_SESSION['description'] = to_str($_POST['description']);
}
/* Запоминаем купон */
$_SESSION['shop_coupon_text'] = to_str($_POST['shop_coupon_text']);
/* Отображаем форму ввода адреса */
//$shop->ShowAddress(to_str($GLOBALS['LA']['xsl_delivery_address']), $shop_id);
$system_of_pay_id = 1;
if (to_int($system_of_pay_id) != 0)
{
if (!$shop->ExecSystemsOfPayHandler(to_int($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 || !empty($error))
{
/* Выводим корзину */
$external_propertys = array();
if (!empty($error))
{
$external_propertys['message'] = $error;
}
$external_propertys['site_users_name'] = to_str($_POST['site_users_name']);
$external_propertys['site_users_surname'] = to_str($_POST['site_users_surname']);
$external_propertys['site_users_patronymic'] = to_str($_POST['site_users_patronymic']);
$external_propertys['site_users_email'] = to_str($_POST['site_users_email']);
$external_propertys['site_users_phone'] = to_str($_POST['site_users_phone']);
$external_propertys['site_users_fax'] = to_str($_POST['site_users_fax']);
$external_propertys['site_users_address'] = to_str($_POST['site_users_address']);
$external_propertys['site_users_company'] = to_str($_POST['site_users_company']);
$shop->ShowCart($shop_id, $site_users_id, to_str($GLOBALS['LA']['xsl_cart']), array('shop_coupon_text' => to_str($_REQUEST['shop_coupon_text'])), $external_propertys);
if (class_exists("SiteUsers"))
{
/* Выводим форму быстрой регистрации (регистрация для пользователей) */
$GLOBALS['external_propertys']['ПоказатьАвторизацию'] = 'true';
$SiteUsers->ShowSiteUserRegistartion($site_users_id,
to_str($GLOBALS['LA']['xsl_quick_registration']), $GLOBALS['external_propertys']);
}
}
else
{
?>
Вам необходимо подтвердить регистрацию!
<?php
}
?>
После этого в НАСТРОЙКАХ типовой страницы заменить этот код:
/* Необходимо перенести товары из кукисов в сессию и очистить кукисы */
if ((isset($_POST['step_4']) || isset($_POST['step_1_1a'])) && !class_exists("SiteUsers"))
{
/* Читаем массив из кукисов */
if (!empty($_COOKIE['CART']))
{
$session_cart = array();
$postpone_items = array();
$cart_from_cookies = $shop->GetCookieCart();
$items = to_array($cart_from_cookies[$shop_id]);
foreach ($items as $key => $value)
{
if ($value['shop_cart_flag_postpone'])
{
/* Оставляем товар в корзине кукисов */
$postpone_items[$key] = $value;
}
else
{
/* Добавляем в корзину сессии */
$session_cart[$key] = $value;
}
}
/* Добавляем данные в сессию */
$_SESSION['CART'][$shop_id] = $session_cart;
/* Если массив с отложенными товарами не пуст - сохраняем его в кукисы */
if (count($postpone_items) > 0 && isset($_POST['step_4']))
{
$cart_from_cookies[$shop_id] = $postpone_items;
}
elseif(isset($_POST['step_4']))
{
/* Удалям целиком кукисы карзины для данного магазина */
unset($cart_from_cookies[$shop_id]);
}
/* Сохраняем данные */
$shop->SetCookieCart($cart_from_cookies, time() + 31536000, '/');
}
}
На этот:
/* Необходимо перенести товары из кукисов в сессию и очистить кукисы */
if ((isset($_POST['step_4']) || isset($_POST['step_1_1a'])) && !class_exists("SiteUsers"))
{
/* Читаем массив из кукисов */
if (!empty($_COOKIE['CART']))
{
$session_cart = array();
$postpone_items = array();
$cart_from_cookies = $shop->GetCookieCart();
$items = to_array($cart_from_cookies[$shop_id]);
foreach ($items as $key => $value)
{
if ($value['shop_cart_flag_postpone'])
{
/* Оставляем товар в корзине кукисов */
$postpone_items[$key] = $value;
}
else
{
/* Добавляем в корзину сессии */
$session_cart[$key] = $value;
}
}
/* Добавляем данные в сессию */
$_SESSION['CART'][$shop_id] = $session_cart;
/* Если массив с отложенными товарами не пуст - сохраняем его в кукисы */
if (count($postpone_items) > 0 && isset($_POST['step_1_1a']))
/*if (count($postpone_items) > 0 && isset($_POST['step_4']))*/
{
$cart_from_cookies[$shop_id] = $postpone_items;
}
elseif(isset($_POST['step_1_1a']))
/*elseif(isset($_POST['step_4']))*/
{
/* Удалям целиком кукисы карзины для данного магазина */
unset($cart_from_cookies[$shop_id]);
}
/* Сохраняем данные */
$shop->SetCookieCart($cart_from_cookies, time() + 31536000, '/');
}
}
а также блок:
на этот:
Все должно работать! Большое спасибо за оказанную помощь Ведущему специалисту службы поддержки Наталье Борщевой
/* Ввод адреса доставки */
if (isset($_POST['step_1']))
{
$external_propertys = array ();
/* Если отключен модуль пользователей сайта, то вызывается этот подэтап */
if (isset($_POST['step_1_1a']))
{
/* Сохраняем данные о пользователе в сессию */
$external_propertys['site_users_name'] = $_SESSION['site_users_name'] = to_str($_POST['site_users_name']);
$external_propertys['site_users_surname'] = $_SESSION['site_users_surname'] = to_str($_POST['site_users_surname']);
$external_propertys['site_users_patronymic'] = $_SESSION['site_users_patronymic'] = to_str($_POST['site_users_patronymic']);
$external_propertys['site_users_email'] = $_SESSION['site_users_email'] = to_str($_POST['site_users_email']);
$external_propertys['site_users_phone'] = $_SESSION['site_users_phone'] = to_str($_POST['site_users_phone']);
$external_propertys['site_users_fax'] = $_SESSION['site_users_fax'] = to_str($_POST['site_users_fax']);
$external_propertys['site_users_address'] = $_SESSION['site_users_address'] = to_str($_POST['site_users_address']);
$external_propertys['site_users_company'] = $_SESSION['site_users_company'] = to_str($_POST['site_users_company']);
}
else
{
$aInfoSiteUser = $SiteUsers->GetSiteUser($site_users_id);
$external_propertys['site_users_name'] = $_SESSION['site_users_name'] = to_str($aInfoSiteUser['site_users_name']);
$external_propertys['site_users_surname'] = $_SESSION['site_users_surname'] = to_str($aInfoSiteUser['site_users_surname']);
$external_propertys['site_users_patronymic'] = $_SESSION['site_users_patronymic'] = to_str($aInfoSiteUser['site_users_patronymic']);
$external_propertys['site_users_email'] = $_SESSION['site_users_email'] = to_str($aInfoSiteUser['site_users_email']);
$external_propertys['site_users_phone'] = $_SESSION['site_users_phone'] = to_str($aInfoSiteUser['site_users_phone']);
$external_propertys['site_users_fax'] = $_SESSION['site_users_fax'] = to_str($aInfoSiteUser['site_users_fax']);
$external_propertys['site_users_address'] = $_SESSION['site_users_address'] = to_str($aInfoSiteUser['site_users_address']);
$external_propertys['site_users_company'] = $_SESSION['site_users_company'] = to_str($aInfoSiteUser['site_users_company']);
$external_propertys['site_users_postcode'] = $_SESSION['index'] = to_str($aInfoSiteUser['site_users_postcode']);
}
/* Запоминаем купон */
$_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['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_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['index'] = to_str($_POST['index']);
$external_propertys['full_address'] = to_str($_POST['full_address']);
/* Получаем количество элементов, их общую цену, вес, валюту для заданного пользователя */
$a_param = $shop->SelectAllItemsFromCartForUser($shop_id, $site_users_id);
/* Выбираем все доступные типы доставки (с группировкой по типу доставки) */
$param = array();
$param['shop_coupon_text'] = to_str($_SESSION['shop_coupon_text']);
// Передаем количество товара
$param['count'] = $a_param['quantity'];
$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 || !empty($message))
{
/* Выводим корзину */
$external_propertys = array();
if (!empty($message))
{
$external_propertys['message'] = $message;
}
$external_propertys['site_users_name'] = to_str($_POST['site_users_name']);
$external_propertys['site_users_surname'] = to_str($_POST['site_users_surname']);
$external_propertys['site_users_patronymic'] = to_str($_POST['site_users_patronymic']);
$external_propertys['site_users_email'] = to_str($_POST['site_users_email']);
$external_propertys['site_users_phone'] = to_str($_POST['site_users_phone']);
$external_propertys['site_users_fax'] = to_str($_POST['site_users_fax']);
$external_propertys['site_users_address'] = to_str($_POST['site_users_address']);
$external_propertys['site_users_company'] = to_str($_POST['site_users_company']);
$shop->ShowCart($shop_id, $site_users_id, to_str($GLOBALS['LA']['xsl_cart']), array('shop_coupon_text' => to_str($_REQUEST['shop_coupon_text'])), $external_propertys);
if (class_exists("SiteUsers"))
{
/* Выводим форму быстрой регистрации (регистрация для пользователей) */
$GLOBALS['external_propertys']['ПоказатьАвторизацию'] = 'true';
$SiteUsers->ShowSiteUserRegistartion($site_users_id,
to_str($GLOBALS['LA']['xsl_quick_registration']), $GLOBALS['external_propertys']);
}
}
else
{
?>
Вам необходимо подтвердить регистрацию!
<?php
}
?>
Заменить на этот. В переменную $system_of_pay_id подставить свой номер платежной системы. В моем варианте 1 (по умолчанию это наличными)
/* Ввод адреса доставки */
if (isset($_POST['step_1']))
{
/* Если отключен модуль пользователей сайта, то вызывается этот подэтап */
if (isset($_POST['step_1_1a']))
{
/* Сохраняем данные о пользователе в сессию */
/*$_SESSION['country'] ='Россия';
$_SESSION['location'] ='Москва и Московская обл.';
$_SESSION['city'] ='Москва';*/
// Сбрасываем информацию о последнем заказе
$_SESSION['last_order_id'] = 0;
$_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['full_address'] = to_str($_POST['site_users_address']);
$_SESSION['site_users_company'] = to_str($_POST['site_users_company']);
$_SESSION['description'] = to_str($_POST['description']);
}
/* Запоминаем купон */
$_SESSION['shop_coupon_text'] = to_str($_POST['shop_coupon_text']);
/* Отображаем форму ввода адреса */
//$shop->ShowAddress(to_str($GLOBALS['LA']['xsl_delivery_address']), $shop_id);
$system_of_pay_id = 1;
if (to_int($system_of_pay_id) != 0)
{
if (!$shop->ExecSystemsOfPayHandler(to_int($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 || !empty($error))
{
/* Выводим корзину */
$external_propertys = array();
if (!empty($error))
{
$external_propertys['message'] = $error;
}
$external_propertys['site_users_name'] = to_str($_POST['site_users_name']);
$external_propertys['site_users_surname'] = to_str($_POST['site_users_surname']);
$external_propertys['site_users_patronymic'] = to_str($_POST['site_users_patronymic']);
$external_propertys['site_users_email'] = to_str($_POST['site_users_email']);
$external_propertys['site_users_phone'] = to_str($_POST['site_users_phone']);
$external_propertys['site_users_fax'] = to_str($_POST['site_users_fax']);
$external_propertys['site_users_address'] = to_str($_POST['site_users_address']);
$external_propertys['site_users_company'] = to_str($_POST['site_users_company']);
$shop->ShowCart($shop_id, $site_users_id, to_str($GLOBALS['LA']['xsl_cart']), array('shop_coupon_text' => to_str($_REQUEST['shop_coupon_text'])), $external_propertys);
if (class_exists("SiteUsers"))
{
/* Выводим форму быстрой регистрации (регистрация для пользователей) */
$GLOBALS['external_propertys']['ПоказатьАвторизацию'] = 'true';
$SiteUsers->ShowSiteUserRegistartion($site_users_id,
to_str($GLOBALS['LA']['xsl_quick_registration']), $GLOBALS['external_propertys']);
}
}
else
{
?>
Вам необходимо подтвердить регистрацию!
<?php
}
?>
После этого в НАСТРОЙКАХ типовой страницы заменить этот код:
/* Необходимо перенести товары из кукисов в сессию и очистить кукисы */
if ((isset($_POST['step_4']) || isset($_POST['step_1_1a'])) && !class_exists("SiteUsers"))
{
/* Читаем массив из кукисов */
if (!empty($_COOKIE['CART']))
{
$session_cart = array();
$postpone_items = array();
$cart_from_cookies = $shop->GetCookieCart();
$items = to_array($cart_from_cookies[$shop_id]);
foreach ($items as $key => $value)
{
if ($value['shop_cart_flag_postpone'])
{
/* Оставляем товар в корзине кукисов */
$postpone_items[$key] = $value;
}
else
{
/* Добавляем в корзину сессии */
$session_cart[$key] = $value;
}
}
/* Добавляем данные в сессию */
$_SESSION['CART'][$shop_id] = $session_cart;
/* Если массив с отложенными товарами не пуст - сохраняем его в кукисы */
if (count($postpone_items) > 0 && isset($_POST['step_4']))
{
$cart_from_cookies[$shop_id] = $postpone_items;
}
elseif(isset($_POST['step_4']))
{
/* Удалям целиком кукисы карзины для данного магазина */
unset($cart_from_cookies[$shop_id]);
}
/* Сохраняем данные */
$shop->SetCookieCart($cart_from_cookies, time() + 31536000, '/');
}
}
На этот:
/* Необходимо перенести товары из кукисов в сессию и очистить кукисы */
if ((isset($_POST['step_4']) || isset($_POST['step_1_1a'])) && !class_exists("SiteUsers"))
{
/* Читаем массив из кукисов */
if (!empty($_COOKIE['CART']))
{
$session_cart = array();
$postpone_items = array();
$cart_from_cookies = $shop->GetCookieCart();
$items = to_array($cart_from_cookies[$shop_id]);
foreach ($items as $key => $value)
{
if ($value['shop_cart_flag_postpone'])
{
/* Оставляем товар в корзине кукисов */
$postpone_items[$key] = $value;
}
else
{
/* Добавляем в корзину сессии */
$session_cart[$key] = $value;
}
}
/* Добавляем данные в сессию */
$_SESSION['CART'][$shop_id] = $session_cart;
/* Если массив с отложенными товарами не пуст - сохраняем его в кукисы */
if (count($postpone_items) > 0 && isset($_POST['step_1_1a']))
/*if (count($postpone_items) > 0 && isset($_POST['step_4']))*/
{
$cart_from_cookies[$shop_id] = $postpone_items;
}
elseif(isset($_POST['step_1_1a']))
/*elseif(isset($_POST['step_4']))*/
{
/* Удалям целиком кукисы карзины для данного магазина */
unset($cart_from_cookies[$shop_id]);
}
/* Сохраняем данные */
$shop->SetCookieCart($cart_from_cookies, time() + 31536000, '/');
}
}
а также блок:
/* Пересчет товара в корзине */
if (isset($_POST['recount'])
// Пересчет при выборе первого шага
|| isset($_POST['step_1']))
{
if (isset($_POST['recount'])
// Пересчет при выборе первого шага
|| isset($_POST['step_1']))
{
на этот:
/* Пересчет товара в корзине */
if (isset($_POST['recount']))
// Пересчет при выборе первого шага
//|| isset($_POST['step_1']))
{
if (isset($_POST['recount']))
// Пересчет при выборе первого шага
//|| isset($_POST['step_1']))
{
Все должно работать! Большое спасибо за оказанную помощь Ведущему специалисту службы поддержки Наталье Борщевой
wanderersc
4 февраля 2010 г.
Да. Код работает.
А как в нём задействовать проверку правильности ввода, что-б не оформлял заказ с пустыми полями?
А как в нём задействовать проверку правильности ввода, что-б не оформлял заказ с пустыми полями?
hostcms
Модератор
4 февраля 2010 г.
Самое простое - добавить проверки на JavaScript в клиентском разделе.
wanderersc
4 февраля 2010 г.
Не пойму где именно.
И можно хоть какой-то пример кода.
И можно хоть какой-то пример кода.
Авторизация