Практически у каждого сайта в мире есть одна схожесть — наличие страницы контактов и контактной формы на ней. Она может использоваться для сбора отзывов, жалоб или полезной информации на сайте от клиентов и пользователей.
Типичная форма контактов содержит следующие поля: имя отправителя, email адрес отправителя, тему письма и сообщение.
![contact-form-wordpress[1]](https://wpincode.com/wp-content/uploads/2014/07/contact-form-wordpress1.jpg)
В этой статье мы расскажем вам, как создать простую форму контактов в виде плагина для 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
