Для організації розсилки в системі Бітрікс є спеціальний модуль «Розсилки». За допомогою модуля зручно збирати базу передплатників, а так само проводити розсилку. Більш докладно про роботу модуля можна почитати в офіційній документації. Як відомо модуль вміє розділяти розсилку так само за рубриками. Буває, що потрібно зробити просту форму підписки, при тому, що кілька рубрик, підписати «одним махом» на всі рубрики на сайті. Спробуємо зробити просту форму підписки. Хочу звернути увагу на те, відсилання e-mail ла передплатника буде через Ajax, це відоме зручність, яке обумовлюється відсутністю перезавантаження сторінки.

Насамперед слід підключити бібліотеку JQuery:

А взагалі, краще завантажити бібліотеку на свій сервер, і підключати до нього, т. к. доводилося стикатися з тим, що сторінки довго «висять», тому що бібліотека з якихось причин іноді передається з гальмами зі стороннього ресурсу.

Форма проста, оформлення залишається за вами:

Введіть вашу email адресу:

З формою так само працюємо по-простому:

$(document).ready(function(){
$(‘input[name=”send”]’).click(function(){
$.getJSON(‘ajax.php’, {
email:$(‘input[name=”email”]’).val()
}, function(data){
if (data.status==’ok’){
alert(‘На вашу поштову адресу відправлено листа з підтвердженням підписки.’);
} else {
alert(data.msg);
}
});
});
});

Отже, у нас є форма, є код javascript, який і буде здійснювати відправлення e-mail на сервер, і приймати відповідь від сервера. Тепер подивимося, що у нас буде на стороні сервера, скрипт який ми назвемо ajax.php власне і обробляти запити, форми, і віддавати відповідь у форматі Json.

“ASC”,”SORT”=>”ASC”,”NAME”=>”ASC”),
array(“ACTIVE”=>”Y”, “LID”=>LANG)
);
$arRubIDS = array();
while ($arRub = $rub->Fetch()){
$arRubIDS[] = $arRub[‘ID’];
}
// формуємо масив з полями для створення підписки
$arFields = Array(
“USER_ID” => ($USER->IsAuthorized() ? $USER->GetID() : false),
“FORMAT” => “html”,
“EMAIL” => $_REQUEST[’email’],
“ACTIVE” => “N”,
“RUB_ID” => $arRubIDS,
“SEND_CONFIRM” => ‘Y’
);
$subscr = new CSubscription;
// створюємо підписку
$ID = $subscr->Add($arFields);
if ($ID > 0){
$arResult[‘status’] = ‘ok’;
} else {
$arResult[‘status’] = ‘error’;
$arResult[‘msg’] = str_replace(“
“,””,$subscr->LAST_ERROR);
}
} else $arResult[‘status’] = ‘error’;
echo json_encode($arResult);
?>

Зверніть увагу, параметр “SEND_CONFIRM” => ‘Y’ при додаванні підписки означає, що підписка повинна бути підтверджена по Email. Якщо в цьому немає необхідності досить змінити значення параметра на «N».

Додав: htmaker, 07.05.2015 р.
(5 голосів, середній: 4,80 з 5)

Завантаження…

Діліться з друзями:

См. також:


Налаштування часу у VMBitrix
Рубрика: Bitrix, Linux

Видалення «кинутих» кошиків в системі Бітрікс
Рубрика: Bitrix

Використання highload-блоків в Bitrix
Рубрика: Bitrix

Як виконати SQL запит в Bitrix
Рубрика: Bitrix

Як підрахувати кількість елементів в Bitrix?
Рубрика: Bitrix

Динамічне масштабування зображень в Bitrix
Рубрика: Bitrix

Виключаємо користувача з ID=1 групи адміністраторів в Bitrix
Рубрика: Bitrix

Як скинути пароль адміністратора у Bitrix?
Рубрика: Bitrix

SQL-запити в бітрікс
Рубрика: Bitrix

Коментарі

  • Autochapa пише:
    01.12.2015 в 09:21

    А взагалі, краще завантажити бібліотеку на свій сервер, і підключати до нього…

    зате якщо користувач вже завантажував на іншому сайті дану бибилиотеку, що скоріше всього, т. к. для цього все і вказують джерелом google, то бибилиотека викликається з пам’яті ще швидше

    Відповісти

  • прапор Серйозний пише:
    29.06.2016 в 19:26

    а куди файл ajax.php класти?

    Відповісти

  • htmaker пише:
    30.06.2016 в 10:03

    У прикладі він розміщується в корені, шлях до файлу-скрипту змінюється в рядку: $.getJSON(‘ajax.php’

    Відповісти