#wordpress
#wordpress
Вопрос:
Пожалуйста, подскажите, как решить проблему. Сайт находится на WordPress, на странице есть несколько модалов с формами. Все они работают хорошо. Мне нужно настроить добавление электронной почты в адресную книгу Sendpulse, которую пользователь вводит в поле. Установил пакет sendpulse через composer: https://github.com/sendpulse/sendpulse-rest-api-php Ситуация такова: в каталоге с темой есть functions.php файл, в котором есть обработчик форм, в котором можно настроить отправку писем с запросами из форм. В этот файл я добавил, согласно инструкциям с github sendpulse, код для отправки электронного письма в адресную книгу:
require '../private/vendor/autoload.php';
use SendpulseRestApiApiClient;
use SendpulseRestApiStorageFileStorage;
define('API_USER_ID', 'b7****************************************');
define('API_SECRET', 'e1*************************************');
$SPApiClient = new ApiClient(API_USER_ID, API_SECRET, new FileStorage());
$bookID = '15********';
$emailForSP = ['test6@test.ru'];
$SPApiClient->addEmails($bookID, $emailForSP);
Если просто добавить этот фрагмент в начало файла, то все получится и адрес добавляется в книгу. Но отправка писем на почту не работает, выдается ошибка: https://hsto.org/webt/v8/qn/le/v8qnled6ibyy-ltp9afwyrjv-2q.jpeg
В файле error_log строка: https://hsto.org/webt/mk/vo/g0/mkvog03mb7olfji0qrjcsyxktf0.jpeg
Текст ошибки из main.js файл: https://hsto.org/webt/cd/-n/ry/cd-nryfx06_mvgtglu-t9msp8ga.jpeg
То есть этот фрагмент кода каким-то образом влияет на обработку функции обработчика формы. В общем, мне нужно инициировать отправку электронного письма в книгу после отправки письма на почту, но в этом случае вообще ничего не работает.
Ответ №1:
Я долго не искал причину конфликта. Выделил отправку электронной почты в sendpulse в отдельный файл и добавил запрос post ajax в этот файл. Я не знаю, почему я не подумал об этом раньше.
let emailForSendPulse = $form.find('[name="email"]').val();
$.post('/wp-admin/smth.php', {email: emailForSendPulse}, function(data){
console.log('Form sended');
});