Как отправить почту с данными пользовательской формы в WordPress

25 окт. 2017 г., 20:15:30
Просмотры: 28.8K
Голосов: 4

У меня есть пользовательская HTML форма с полями ввода и чекбоксами. При отправке этой формы я хочу отправить письмо со всеми данными формы из того же PHP файла. Как мне отправить email из WordPress? Я новичок и буду благодарен за вашу помощь.

0
Все ответы на вопрос 3
4

wp_mail — это функция, которую вы ищете.

Вы можете взять данные из отправленной формы (например, $_POST['email']) и использовать их для формирования и выполнения функции wp_mail. Пример ниже взят из https://developer.wordpress.org/reference/functions/wp_mail/#user-contributed-notes:

$to = $_POST['email']; //sendto@example.com
$subject = 'Тема письма';
$body = 'Содержимое письма';
$headers = array('Content-Type: text/html; charset=UTF-8');

wp_mail( $to, $subject, $body, $headers );

Также в приведённом скрипте следует проверять данные на вредоносные атаки или некорректный ввод пользователя, но функция wp_mail позволит вам отправлять электронные письма.

Источник: https://developer.wordpress.org/reference/functions/wp_mail/

25 окт. 2017 г. 20:24:28
Комментарии

добавлять ли это в тот же php-файл, что и мою форму?

Sourav Sourav
25 окт. 2017 г. 20:33:55

Это зависит от того, как вы обрабатываете формы. Если у вас тот же PHP выполняется на странице шаблона, что и ваша форма, то можно (хотя я бы не рекомендовал). Я бы посоветовал ознакомиться с этими двумя ссылками, чтобы понять, как работать с формами в PHP (https://www.w3schools.com/php/php_forms.asp и https://www.w3schools.com/php/php_form_complete.asp). Вы также можете использовать плагин, например Contact Form 7 (https://wordpress.org/plugins/contact-form-7/), если не хотите писать PHP и работать прямо в WP-Admin.

Tom Tom
25 окт. 2017 г. 20:36:58

Спасибо, могу ли я написать тело письма в виде пользовательского HTML, чтобы мое письмо выглядело уникально?

Sourav Sourav
25 окт. 2017 г. 21:52:58

@Sourav Да, вам нужно вставить это в $body.

Tom Tom
25 окт. 2017 г. 22:48:44
2

Если вы не хотите писать собственный код (и форму отправки писем), рассмотрите плагин 'контактной формы'. Я использую (и рекомендую) плагин Contact Form 7. Он позволяет создавать любые формы, настраивать их внешний вид/оформление/поля, а также письма, которые отправляются. Очень мощный и популярный плагин. Доступно множество других плагинов для добавления дополнительных полей.

Единственная небольшая проблема - это скудная и иногда труднодоступная (а иногда устаревшая) техническая документация (например, о доступных фильтрах). Но я нашел способы обойти это.

26 окт. 2017 г. 05:05:53
Комментарии

У меня есть пользовательская форма, могу ли я использовать плагин контактных форм для отправки писем?

Sourav Sourav
26 окт. 2017 г. 09:29:35

Вам нужно будет "построить" форму через интерфейс плагина. Хотя технически возможно использовать процесс "отправки" из CF7, вам придется задать множество переменных CF7 для корректной работы, а эти переменные плохо документированы; вам пришлось бы разбираться в их коде. Проще всего использовать конструктор форм CF7, я думаю.

Rick Hellewell Rick Hellewell
26 окт. 2017 г. 20:55:36
0

Один из простых способов отправки формы — использование сервиса для обработки форм, такого как https://www.formkeep.com.

Все, что вам нужно сделать, это изменить атрибут `action` в вашей форме, и сервис будет сохранять данные, а также предоставит возможности для интеграции с другими системами.

Вот пример того, как изменить HTML-код формы. Вам просто нужно заменить "example token" на ключ, предоставленный сервисом FormKeep.

<form accept-charset="UTF-8" action="https://formkeep.com/f/exampletoken" method="POST">
24 окт. 2018 г. 21:27:44