Всем привет! подскажите пожалуйста по форме обратной связи:
init.php
<?
use Bitrix\Main\EventManager;
use Bitrix\Main\Mail\Event;
use Bitrix\Main\Entity;
use \Bitrix\Main\Data\Cache;
const STATIC_PATH = '/local/static/';
$a = \Bitrix\Main\Page\Asset::getInstance();
if (php_sapi_name() != 'cli' && !defined('ADMIN_SECTION')) {
EventManager::getInstance()->addEventHandler(
'iblock',
'OnAfterIBlockElementAdd',
['SiteEvents', 'iblockElementCommon']
);
EventManager::getInstance()->addEventHandler(
'main',
'OnProlog',
['SiteEvents', 'sendMessage']
);
}
class SiteEvents {
function iblockElementAdd($arFields) {
if ($arFields['ID'] > 0 && $arFields['IBLOCK_ID'] == 1) {
CIBlockElement::Update($arFields['ID'], ['NAME' => 'Заявка '.$arFields['ID']]); die();
}
}
function sendMessage() {
if ($_SERVER['REQUEST_METHOD'] == 'POST' && $_POST['action'] == 'send') {
$name = filter_var($_POST['name'], FILTER_SANITIZE_STRING);
$theme = filter_var($_POST['theme'], FILTER_SANITIZE_STRING);
$phone = filter_var($_POST['phone'], FILTER_SANITIZE_STRING);
if ($name) {
\Bitrix\Main\Loader::includeModule('iblock');
$el = new CIBlockElement();
$newId = $el->Add([
'ACTIVE' => 'Y',
'IBLOCK_ID' => 1,
'NAME' => 'Заявка',
'DETAIL_TEXT' => filter_var($_POST['text'], FILTER_SANITIZE_STRING),
'PROPERTY_VALUES' => [
'NAME' => $name,
'PHONE' => $phone,
'MESSAGE' => substr(filter_var($_POST['text'], FILTER_SANITIZE_EMAIL), 0, 1000),
]
]);
if ($newId > 0) {
$text = "Имя: ".$name."\n";
$text .= "Телефон: ".$phone."\n";
if ($theme)
$text .= "E-mail: ".$theme."\n";
if ($theme)
$text .= "Сообщение: ".substr(filter_var($_POST['text'], FILTER_SANITIZE_EMAIL), 0, 1000)."\n";
\Bitrix\Main\Mail\Event::sendImmediate([
'EVENT' => 'SITE_NEW_ORDER',
'LID' => 's1',
'FIELDS' => ['TEXT' => $text],
'DUPLICATE' => 'N',
'MESSAGE_ID' => 8
]);
$GLOBALS['SEND_MESSAGE'] = 'Y';
} else {
$GLOBALS['SEND_MESSAGE'] = 'N';
}
}
}
}
}
form.php
<? if (!defined('B_PROLOG_INCLUDED') || B_PROLOG_INCLUDED !== true) die();?><form class="message" method="post" id="form">
<p>
<b>Закажите консультацию по препарату «Фортуна»</b><br>
Заполните форму, и наш специалист свяжется с Вами.
</p>
<?if (isset($GLOBALS['SEND_MESSAGE'])) {?>
<p class="s"><font color="#003399">Ваш запрос отправлен! <br> Наш специалист свяжется с Вами в ближайшее время.</font></p>
<script>window.location.hash = 'form';</script>
<?} else {?>
<input type="hidden" name="action" value="send">
<div class="form-group">
<label>ФИО<b>*</b>:</label>
<input type="text" name="name" class="form-control" required="">
</div>
<div class="form-group">
<label>Ваш номер телефона<b>*</b>:</label>
<input type="text" name="phone" class="form-control" required="">
</div>
<div class="form-group">
<label>Ваш e-mail:</label>
<input type="text" name="theme" class="form-control">
</div>
<div class="form-group">
<label>Сообщение:</label>
<textarea name="text" class="form-control"></textarea>
</div>
<div class="form-group">
<input required type="checkbox"> <small><font color="#003399"></font>Я даю согласие на обработку своих персональных данных в соответствии с
<a href="/politika-konfiditsialnosti/" target="_blank">«Политикой конфиденциальности»</a></font></small>
</div>
<button type="submit" class="btn btn-primary">Отправить</button>
<?}?>
</form>
Сообщение, которое пишет пользователь в форме обратной связи не приходит на почту, точнее есть только заголовок "Сообщение" а самого текста нет, что не хватает, чтобы вывести сообщение в письме ?
Текст письма:
Имя: Имя
Телефон: 89260000000
E-mail: почта пользователя
Сообщение: тут пусто, хотя текст заполняется
init.php
<?
use Bitrix\Main\EventManager;
use Bitrix\Main\Mail\Event;
use Bitrix\Main\Entity;
use \Bitrix\Main\Data\Cache;
const STATIC_PATH = '/local/static/';
$a = \Bitrix\Main\Page\Asset::getInstance();
if (php_sapi_name() != 'cli' && !defined('ADMIN_SECTION')) {
EventManager::getInstance()->addEventHandler(
'iblock',
'OnAfterIBlockElementAdd',
['SiteEvents', 'iblockElementCommon']
);
EventManager::getInstance()->addEventHandler(
'main',
'OnProlog',
['SiteEvents', 'sendMessage']
);
}
class SiteEvents {
function iblockElementAdd($arFields) {
if ($arFields['ID'] > 0 && $arFields['IBLOCK_ID'] == 1) {
CIBlockElement::Update($arFields['ID'], ['NAME' => 'Заявка '.$arFields['ID']]); die();
}
}
function sendMessage() {
if ($_SERVER['REQUEST_METHOD'] == 'POST' && $_POST['action'] == 'send') {
$name = filter_var($_POST['name'], FILTER_SANITIZE_STRING);
$theme = filter_var($_POST['theme'], FILTER_SANITIZE_STRING);
$phone = filter_var($_POST['phone'], FILTER_SANITIZE_STRING);
if ($name) {
\Bitrix\Main\Loader::includeModule('iblock');
$el = new CIBlockElement();
$newId = $el->Add([
'ACTIVE' => 'Y',
'IBLOCK_ID' => 1,
'NAME' => 'Заявка',
'DETAIL_TEXT' => filter_var($_POST['text'], FILTER_SANITIZE_STRING),
'PROPERTY_VALUES' => [
'NAME' => $name,
'PHONE' => $phone,
'MESSAGE' => substr(filter_var($_POST['text'], FILTER_SANITIZE_EMAIL), 0, 1000),
]
]);
if ($newId > 0) {
$text = "Имя: ".$name."\n";
$text .= "Телефон: ".$phone."\n";
if ($theme)
$text .= "E-mail: ".$theme."\n";
if ($theme)
$text .= "Сообщение: ".substr(filter_var($_POST['text'], FILTER_SANITIZE_EMAIL), 0, 1000)."\n";
\Bitrix\Main\Mail\Event::sendImmediate([
'EVENT' => 'SITE_NEW_ORDER',
'LID' => 's1',
'FIELDS' => ['TEXT' => $text],
'DUPLICATE' => 'N',
'MESSAGE_ID' => 8
]);
$GLOBALS['SEND_MESSAGE'] = 'Y';
} else {
$GLOBALS['SEND_MESSAGE'] = 'N';
}
}
}
}
}
form.php
<? if (!defined('B_PROLOG_INCLUDED') || B_PROLOG_INCLUDED !== true) die();?><form class="message" method="post" id="form">
<p>
<b>Закажите консультацию по препарату «Фортуна»</b><br>
Заполните форму, и наш специалист свяжется с Вами.
</p>
<?if (isset($GLOBALS['SEND_MESSAGE'])) {?>
<p class="s"><font color="#003399">Ваш запрос отправлен! <br> Наш специалист свяжется с Вами в ближайшее время.</font></p>
<script>window.location.hash = 'form';</script>
<?} else {?>
<input type="hidden" name="action" value="send">
<div class="form-group">
<label>ФИО<b>*</b>:</label>
<input type="text" name="name" class="form-control" required="">
</div>
<div class="form-group">
<label>Ваш номер телефона<b>*</b>:</label>
<input type="text" name="phone" class="form-control" required="">
</div>
<div class="form-group">
<label>Ваш e-mail:</label>
<input type="text" name="theme" class="form-control">
</div>
<div class="form-group">
<label>Сообщение:</label>
<textarea name="text" class="form-control"></textarea>
</div>
<div class="form-group">
<input required type="checkbox"> <small><font color="#003399"></font>Я даю согласие на обработку своих персональных данных в соответствии с
<a href="/politika-konfiditsialnosti/" target="_blank">«Политикой конфиденциальности»</a></font></small>
</div>
<button type="submit" class="btn btn-primary">Отправить</button>
<?}?>
</form>
Сообщение, которое пишет пользователь в форме обратной связи не приходит на почту, точнее есть только заголовок "Сообщение" а самого текста нет, что не хватает, чтобы вывести сообщение в письме ?
Текст письма:
Имя: Имя
Телефон: 89260000000
E-mail: почта пользователя
Сообщение: тут пусто, хотя текст заполняется