+7 495 008 8452
  • Загрузка
Выберите ваш цвет

Как оформить заказ на «Битрикс», если у покупателя нет E-mail?

Если у вас возникли какие либо вопросы которые вы не смогли решить по нашим публикациям самостоятельно,
то ждем ваше обращение в нашей службе тех поддержки.

Обязан ли покупатель интернет-магазина указывать свою электронную почту при заказе? Оказывается, компонент 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; ?>

Готово!

-------------------------------
Спасибо за внимание!
Читайте свежий выпуск «Кладовки программиста» каждый день!

Назад в раздел

Подписаться на новые материалы раздела:
Загрузка...