Отправить письмо в WordPress - PullRequest
0 голосов
/ 17 июня 2010

Я пытаюсь отправить письмо с помощью PHP mail () на WordPress сайте.Я создал пустую страницу http://www.exam -vision.com / request-flip-up-инструкции , в шаблон которой входит код php, показанный нижеКогда я публикую данные, isset ($ _ REQUEST ['email']) имеет значение false, а я могу в firebug, что данные были опубликованы правильно.Что может быть не так?

спасибо

<?php

if (isset($_REQUEST['email']))
//if "email" is filled out, send email
{
    //send email

    $email = $_REQUEST['email'] ;
    $subject = $_REQUEST['subject'] ;
    $message = $_REQUEST['message'] ;
    mail( "<someemail>", "Subject: $subject",
    $message, "From: $email" );
    echo "Thank you for using our mail form";
}
else
//if "email" is not filled out, display the form
{
   echo "<form method='post' action='http://www.exam-vision.com/request-flip-up-instructions'>
   Email: <input name='email' type='text' /><br />
   Subject: <input name='subject' type='text' /><br />
   Message:<br />
  <textarea name='message' rows='15' cols='40'>
  </textarea><br />
  <input type='submit' />
</form>";
}
?>

Ответы [ 3 ]

2 голосов
/ 17 июня 2010

Вместо использования $ REQUEST, просто используйте $ _POST, так как страница публикует информацию на себя и обязательно проверьте, установлено ли или пусто И вместо использования функции PHP mail () используйте функцию WordPress ' wp_mail .

В качестве альтернативы вы также можете использовать плагины для достижения этой цели. CformsII и Gravity Forms (премиум-плагин) - это всего лишь пара примеров. Я использовал CformsII, и он довольно обширный и многофункциональный для бесплатного плагина.

0 голосов
/ 29 ноября 2016

Попробуйте изменить

<input type="email" name="email" /> 

что-то вроде

<input type="email" name="my_theme_email" />

Сделайте то же самое со всеми вашими полями, похоже, что некоторые имена зарезервированы в WordPress при отправке данных формы. У меня та же проблема, и я исправил ее вот так. После этого используйте метод POST и, возможно, создайте do_action () для добавления проверки поля. и используйте wp_mail для отправки электронного письма, также $_POST['']

0 голосов
/ 17 июня 2010

Две вещи: чтобы использовать вашу текущую форму, вам следует: 1) проверить у своего хоста, чтобы узнать, нужно ли использовать smtp и аутентификацию вместо использования php mail, и 2) очистить введенные данные: PHP Secure E-mail.

Если вы хотите вместо этого использовать плагин WP - который имеет много преимуществ по сравнению с созданием собственной формы - вам также может понадобиться использовать WP Mail SMTP «Плагины WordPress *»1006 * использовать smtp вместо php mail, поскольку ваш хост, вероятно, ограничивает использование php mail.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...