Как создать контактную форму в WordPress. Эпизод 1

Практически у каждого сайта в мире есть одна схожесть — наличие страницы контактов и контактной формы на ней. Она может использоваться для сбора отзывов, жалоб или полезной информации на сайте от клиентов и пользователей.

Типичная форма контактов содержит следующие поля: имя отправителя, email адрес отправителя, тему письма и сообщение.

contact-form-wordpress[1]

В этой статье мы расскажем вам, как создать простую форму контактов в виде плагина для 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

VN:F [1.9.22_1171]
Rating: 0.0/5 (0 votes cast)

Об авторе ADv

Занимаюсь разработкой сайтов и магазинов на WordPress. Оказываю платные помощь и консультации. Skype: advokat_b
Scroll To Top