Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_before.php");
- if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED !== true) die();
- global $contactId;
- global $USER;
- $result = [];
- function error($msg) {
- $result['isError'] = true;
- $result['msg'] = $msg;
- }
- $isIncludeModules = \Bitrix\Main\Loader::includeModule('sender') &&
- \Bitrix\Main\Loader::includeModule('subscribe');
- if (!$isIncludeModules) {
- error('Не установлены неопходимые модули');
- return;
- }
- $email = $USER->GetEmail();
- $idUser = $USER->GetID();
- // Получение email и пользователя если email указан в запросе
- if (!is_null($_REQUEST["email_subs"])) {
- $email = $_REQUEST["email_subs"];
- $filter = ["=EMAIL" => $email];
- $res = CUser::GetList(($by = "id"), ($order = "desc"), $filter);
- if ($res->NavNext(true, "f_")) {
- $idUser = $f_ID;
- }
- }
- $subscription = CSubscription::GetUserSubscription();
- $subscriptionDb = new CSubscription;
- $contactId = $subscription["ID"];
- if ($subscription["ID"] == 0 || $subscription["CONFIRMED"] == 'N') {
- $contactId = null;
- }
- // Подписка
- if ($_REQUEST["SUBSCRIBE"] == "Y") {
- $arFilter = [
- "ACTIVE" => "Y",
- "LID" => "s1",
- "VISIBLE" => "Y",
- ];
- $rsRubrics = CRubric::GetList([], $arFilter);
- $arRubrics = [];
- while ($arRubric = $rsRubrics->GetNext()) {
- $arRubrics[] = $arRubric["ID"];
- }
- $subscribeFields = [
- "AJAX_MODE" => "Y",
- "USER_ID" => $idUser,
- "FORMAT" => "html",
- "EMAIL" => $email,
- "ACTIVE" => "Y",
- "SEND_CONFIRM" => "",
- "RUB_ID" => $arRubrics,
- "CONFIRMED" => "N"
- ];
- $ID = $subscriptionDb->Add($subscribeFields);
- if ($ID > 0) {
- CSubscription::Authorize($ID);
- $result['isSuccess'] = true;
- $result['id'] = $ID;
- $contactId = $ID;
- }
- }
- // Подтверждение подписки
- if ($_REQUEST["ID"] > 0 && !is_null($_REQUEST["CONFIRM_CODE"])) {
- if ($subscriptionDb->Update($_REQUEST["ID"], ["CONFIRM_CODE" => $_REQUEST["CONFIRM_CODE"]])) {
- $contactId = $_REQUEST["ID"];
- $result['isSuccess'] = true;
- }
- }
- // Отписка
- if ($_REQUEST['UNSUBSCRIBE'] == 'Y') {
- $user = CSubscription::GetByEmail($USER->GetEmail());
- $user = $user->Fetch();
- CSubscription::Delete($user["ID"]);
- $contactId = null;
- $result['isSuccess'] = true;
- }
- return;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement