Записки WEB Мастера

О создании сайтов, блогов. WordPress, WEB Дизайн

Заметки

Отправка E-mail с сайта на WordPres

Достаточно простая форма обратной связи для сайта, причем любого. То есть, используя ниже приведённый пример, отправка почты с сайта будет возможна не только на WordPress но и  на любом другом. Так как, я не стал использовать функцию WordPress «wp_ mail()» а решил использовать «mail()» что и даёт возможность использовать код хоть где.

Отправка почты с сайта на WordPress

И все же в этом случаи форма обратной связи будет использоваться именно на wordpress и по этому, для начала нужно создать отдельную страницу, где будет размещена сама форма.

В любой (ну или почти) теме есть файл отдельной страницы «page.php» нужно сделать его копию и переименовать, ну например в «mail.php».Теперь в самый вверх файла вставляем.

<?php /* Template Name: MAIL */ ?>

А теперь в админке блога создаём новую страницу и в разделе «Свойства страницы» выбираем шаблон с именем «MAIL» ok, готово!

Теперь в угодное для Вас место вставляем форму. Я думаю идеальное место для формы сразу после «the_content();» что бы форма была ниже текста…

<form action="" method="post" name="massform" id="massform">
  <input type="text" name="theme" id="theme" value="" size="25" />
     <small> Тема</small>
  <input type="text" name="author" id="author" value="" size="25" />
     <small> Имя</small>
  <input type="text" name="email" id="email" value="" size="25" />
     <small> Mail</small>
  <textarea name="mass" id="mass" cols="48" rows="8"> </textarea>
<input name="submit" type="submit" id="submit" value="Отправить" />
</form>

Теперь дело за PHP! Ниже приведённый пример отправки почты с сайта, скажем так «базовый» нет ни проверки, ни капчи там какой-нибудь. Просто отправляет почту и все.

<?php 
    $admin_email    = get_option('admin_email');
    $info           = $_POST;
            
    if (isset($info['submit'])) {
            
    $author     = ($info['author']);
    $email      = ($info['email']);
    $text       = ($info['mass']);
    $theme      = ($info['theme']);
 
    $to      = $admin_email; 
    $subject = $theme;
            
        $message = 
        'Отправитель:   <b>' . $author . '</b>
        E-Mail:         <b>' . $email . '</b>
 
   <b>Текст сообщения:</b>
   ' . $text; 
        $headers  = "Content-type: text/html; charset=utf-8 \r\n"; 
        $headers .= 'From: MyName@example.com';
 
    mail($to, $subject, $message, $headers);
    echo 'Спасибо! Ваше письмо отправлено.';
  
    }
?>

Почтой получателя является E-Mail адрес администратора WordPress сайта. Мы его получаем при помощи функции «get_option()» далее просто проверяем, если посетитель нажал кнопку отправить, то собираем всю информацию из полей ввода самой формы, и отправляем все это дела на почту администратора в HTML формате.

На почту будут приходить письма такого плана.

Да! Все же отсутствие проверки у полей – это плохо. Вдруг посетитель не заполнит поле «E-Mail» и кому потом отвечать? Правильно, не кому. Значит, сделаем нужные поля обязательными для заполнения. Для этого используем «Атрибут required»

<input type="text" name="email" id="email" required value="" size="25" />

Пока посетитель его не заполнит отправка почты с сайте wordpress будет не возможна. Так же можно сделать и другие поля обязательными для заполнения.

Комментариев пока нет

Оставить комментарий

Обязательно с протоколом http или https.