Если у вас возникли какие либо вопросы которые вы не смогли решить по нашим публикациям самостоятельно,
то ждем ваше обращение в нашей службе тех поддержки.
то ждем ваше обращение в нашей службе тех поддержки.
Обязан ли покупатель интернет-магазина указывать свою электронную почту при заказе? Оказывается, компонент sale.order.ajax считает, что обязан. Не помогает даже отмена настройки Главного модуля «"E-mail является обязательным полем». Как же нам облегчить жизнь нашим покупателям? Решение есть:
1. Редактируем файл init.php
// ORDER_PROP_2 - свойство заказа "телефон"
// ORDER_PROP_3 - свойство заказа "email"
global $APPLICATION;
if ('/personal/order/make/' == $APPLICATION->GetCurDir()) // урл страницы оформления заказа
{
$sOrderPropPhone = '';
if (isset($_POST['ORDER_PROP_2'])) // эту секцию if можно вообще удалить, если у вас телефон не обязательное поле
{
$sOrderPropPhone = filter_var($_POST['ORDER_PROP_2'], FILTER_SANITIZE_NUMBER_INT); // аналог preg_replace("/[^0-9,+,-]/","",$string);
}
// если и телефон не заполнен, тогда вместо него в мыле будет значение unix времени
// это нужно только для того чтобы не выводить ошибку "имейл не заполнен", т.к. телефон у нас все-равно обязательное поле
if (0 == strlen($sOrderPropPhone))
{
$sOrderPropPhone = time();
}
if ((!isset($_POST['ORDER_PROP_3']) || empty($_POST['ORDER_PROP_3'])))
{
$_POST['ORDER_PROP_3'] = $sOrderPropPhone."@mysite.ru";
}
}
2. Редактируем файл props.php
Находим в шаблоне компонента sale.order.ajax файл props.php и добавляем код:
elseif($arProperties["TYPE"] == "TEXT")
{
if ("Y" == $arProperties["IS_EMAIL"] && strpos($arProperties["VALUE"], "@mysite.ru"))
{
$arProperties['VALUE'] = '';
}
?>
<input class="large" type="text" maxlength="250" size="<?=$arProperties["SIZE1"]?>" value="<?=$arProperties["VALUE"]?>" name="<?=$arProperties["FIELD_NAME"]?>" id="<?=$arProperties["FIELD_NAME"]?>">
<?
}
3. Добавляем вывод label для input
<?php if($arProperties["REQUIED_FORMATED"]=="Y" && 'Y' != $arProperties['IS_EMAIL']):?>
<em>*</em>
<?php endif; ?>
Готово!
-------------------------------
Спасибо за внимание!
Читайте свежий выпуск «Кладовки программиста» каждый день!
Назад в раздел
1. Редактируем файл init.php
// ORDER_PROP_2 - свойство заказа "телефон"
// ORDER_PROP_3 - свойство заказа "email"
global $APPLICATION;
if ('/personal/order/make/' == $APPLICATION->GetCurDir()) // урл страницы оформления заказа
{
$sOrderPropPhone = '';
if (isset($_POST['ORDER_PROP_2'])) // эту секцию if можно вообще удалить, если у вас телефон не обязательное поле
{
$sOrderPropPhone = filter_var($_POST['ORDER_PROP_2'], FILTER_SANITIZE_NUMBER_INT); // аналог preg_replace("/[^0-9,+,-]/","",$string);
}
// если и телефон не заполнен, тогда вместо него в мыле будет значение unix времени
// это нужно только для того чтобы не выводить ошибку "имейл не заполнен", т.к. телефон у нас все-равно обязательное поле
if (0 == strlen($sOrderPropPhone))
{
$sOrderPropPhone = time();
}
if ((!isset($_POST['ORDER_PROP_3']) || empty($_POST['ORDER_PROP_3'])))
{
$_POST['ORDER_PROP_3'] = $sOrderPropPhone."@mysite.ru";
}
}
2. Редактируем файл props.php
Находим в шаблоне компонента sale.order.ajax файл props.php и добавляем код:
elseif($arProperties["TYPE"] == "TEXT")
{
if ("Y" == $arProperties["IS_EMAIL"] && strpos($arProperties["VALUE"], "@mysite.ru"))
{
$arProperties['VALUE'] = '';
}
?>
<input class="large" type="text" maxlength="250" size="<?=$arProperties["SIZE1"]?>" value="<?=$arProperties["VALUE"]?>" name="<?=$arProperties["FIELD_NAME"]?>" id="<?=$arProperties["FIELD_NAME"]?>">
<?
}
3. Добавляем вывод label для input
<?php if($arProperties["REQUIED_FORMATED"]=="Y" && 'Y' != $arProperties['IS_EMAIL']):?>
<em>*</em>
<?php endif; ?>
Готово!
-------------------------------
Спасибо за внимание!
Читайте свежий выпуск «Кладовки программиста» каждый день!
Назад в раздел
Подписаться на новые материалы раздела: