Практически у каждого сайта в мире есть одна схожесть — наличие страницы контактов и контактной формы на ней. Она может использоваться для сбора отзывов, жалоб или полезной информации на сайте от клиентов и пользователей.
Типичная форма контактов содержит следующие поля: имя отправителя, email адрес отправителя, тему письма и сообщение.
В этой статье мы расскажем вам, как создать простую форму контактов в виде плагина для WordPress.
Краткий обзор PHP класса контактной формы
PHP класс контактной формы содержит свойство и шесть методов (известных также как «функции» в процедурном программировании).
<?php class Designmodo_contact_form { private $form_errors = array(); function __construct() { // ... } static public function form() { // ... } public function validate_form() { // ... } public function send_email() { // ... } public function process_functions() { // ... } public function shortcode() { // ... } }
Свойство $form_errors — это массив, который сохраняет все ошибки, которые будут сгенерированы контактной формой. Мы поясним, что делает каждый метод класса, а также пройдемся по коду плагина контактной формы.
Пишем плагин контактной формы
Как и у других плагинов WordPress, заголовок — это первое, что нужно указать в файле плагина. Ниже наш хидер контактной формы с декларирующим классом и свойством.
<?php /* Plugin Name: Designmodo Contact Form Plugin URI: http://designmodo.com Description: Простая работающая контактная форма Version: 1.0 Author: Agbonghama Collins Author URI: http://tech4sky.com */ class Designmodo_contact_form { private $form_errors = array();
Контактная форма будет вставляться в WordPress с помощью шорткода [contact_form_dm].
Волшебный метод __construct() обрабатывает регистрацию шорткода, поэтому WordPress его распознает.
function __construct() { // Регистрируем новый шорткод add_shortcode('contact_form_dm', array($this, 'shortcode')); }
HTML код контактной формы будет в статичном методе form().
static public function form() { echo '<form action="' . $_SERVER['REQUEST_URI'] . '" method="post">'; echo '<p>'; echo 'Ваше имя (обязательно) <br/>'; echo '<input type="text" name="your-name" value="' . $_POST["your-name"] . '" size="40" />'; echo '</p>'; echo '<p>'; echo 'Ваш Email (обязательно) <br/>'; echo '<input type="text" name="your-email" value="' . $_POST["your-email"] . '" size="40" />'; echo '</p>'; echo '<p>'; echo 'Тема (обязательно) <br/>'; echo '<input type="text" name="your-subject" value="' . $_POST["your-subject"] . '" size="40" />'; echo '</p>'; echo '<p>'; echo 'Ваше сообщение (обязательно) <br/>'; echo '<textarea rows="10" cols="35" name="your-message">' . $_POST["your-message"] . '</textarea>'; echo '</p>'; echo '<p><input type="submit" name="form-submitted" value="Отправить"></p>'; echo '</form>'; }
Метод validate_form принимает в качестве параметров значения из формы и проверит, что:
- Все поля заполнены и не пусты.
- Имя отправителя содержит не менее четырех символов.
- email отправителя является корректным
Для простоты и лаконичности мы будем придерживаться правил проверки выше. Ниже код для метода validate_form.
public function validate_form( $name, $email, $subject, $message ) { // Если какое-либо поле пусто, выводим ошибку в массив ошибок if ( empty($name) || empty($email) || empty($subject) || empty($message) ) { array_push( $this->form_errors, 'Все поля должны быть заполнены' ); } // Если имя содержит что-либо кроме букв, выводим сообщение об ошибке if ( strlen($name) < 4 ) { array_push( $this->form_errors, 'Имя должно быть не менее 4 символов' ); } // Проверяем поле email на корректность if ( !is_email($email) ) { array_push( $this->form_errors, 'Email некорректен' ); } }
Продолжение статьи смотрите по ссылке Как создать контактную форму в WordPress. Эпизод 2