Путь к файлу формы обратной связи

Вопрос или проблема

У меня есть форма обратной связи на PHP, которую я использую на всех сайтах, поэтому в идеале я хочу избежать использования плагина. Используемые файлы включают:

• contact.php – Файл с написанным на PHP/HTML кодом, который отображает поля формы.

• contact-form.php – Файл, к которому подключается contact.php для отправки информации.

Я создал эквивалент contact.php в виде статической страницы в WordPress.

Код в contact.php, который подключается к contact-form.php, выглядит следующим образом:

<form method="post" action="/contact-form.php">

Что я хотел бы узнать, так это как мне подключиться к этому файлу в WordPress – нахождение файлов в WordPress всегда сбивало меня с толку…

Спасибо

Вы можете поместить как форму, так и логику обработки в один файл и отправить форму на ту же страницу, опустив атрибут action. Проверьте переменные $_POST, чтобы узнать, была ли отправлена форма, и выполните обработку, иначе отобразите форму.

if( isset( $_POST['somevar'] ) ) :
    // обработка отправки
else :
    // показать форму
endif;

Ответ или решение

Чтобы правильно интегрировать вашу контактную форму в WordPress, вы можете воспользоваться следующими шагами. Это позволит вам использовать свой код без необходимости установки плагинов, сохранив при этом функциональность формы.

Шаг 1: Создание страницы для формы

Создайте новую страницу в админке WordPress, где вы хотите разместить вашу контактную форму. Для этого перейдите в «Страницы» → «Добавить новую». Дайте странице название, например, «Контакт».

Шаг 2: Вставка кода формы

Используйте PHP-код для вставки формы на страницу. Вы можете сделать это двумя способами: создавая шаблон страницы или используя функцию add_shortcode() в файле вашей темы.

Вариант 1: Создание шаблона страницы

  1. В папке вашей темы создайте файл, например, page-contact.php.

  2. Начните с добавления заголовка шаблона в верхнюю часть этого файла:

    <?php
    /* Template Name: Contact Template */
    get_header();
    ?>
    <div class="contact-form">
  3. Вставьте HTML-код вашей формы:

    <form method="post" action="">
        <input type="text" name="name" required placeholder="Ваше имя">
        <input type="email" name="email" required placeholder="Ваш email">
        <textarea name="message" required placeholder="Ваше сообщение"></textarea>
        <button type="submit">Отправить</button>
    </form>
  4. Добавьте обработку формы под формой:

    <?php
    if (isset($_POST['name'])) {
        $name = sanitize_text_field($_POST['name']);
        $email = sanitize_email($_POST['email']);
        $message = sanitize_textarea_field($_POST['message']);
    
        // Здесь вы можете добавить код для отправки email, например:
        wp_mail('youremail@example.com', 'Новое сообщение от ' . $name, $message, 'From: ' . $email);
        echo '<p>Спасибо за ваше сообщение!</p>';
    }
    ?>
    </div>
    <?php get_footer(); ?>
  5. Сохраните файл.

Вариант 2: Использование шорткодов

Если вы не хотите создавать отдельный файл шаблона, вы можете использовать шорткоды:

  1. В файле functions.php вашей темы добавьте следующее:

    function custom_contact_form() {
        ob_start(); ?>
        <form method="post" action="">
            <input type="text" name="name" required placeholder="Ваше имя">
            <input type="email" name="email" required placeholder="Ваш email">
            <textarea name="message" required placeholder="Ваше сообщение"></textarea>
            <button type="submit">Отправить</button>
        </form>
        <?php
        if (isset($_POST['name'])) {
            $name = sanitize_text_field($_POST['name']);
            $email = sanitize_email($_POST['email']);
            $message = sanitize_textarea_field($_POST['message']);
    
            // Код для отправки email.
            wp_mail('youremail@example.com', 'Новое сообщение от ' . $name, $message, 'From: ' . $email);
            echo '<p>Спасибо за ваше сообщение!</p>';
        }
        return ob_get_clean();
    }
    add_shortcode('contact_form', 'custom_contact_form');
  2. Теперь, когда вы создаете или редактируете страницу, просто вставьте [contact_form] в текстовый редактор, и форма будет отображаться на странице.

Заключение

Воспользовавшись одним из этих подходов, вы сможете интегрировать свою контактную форму в WordPress без использования плагинов. Убедитесь, что все пользовательские данные правильно очищаются и обрабатываются для повышения безопасности. Если у вас есть дополнительные вопросы, пожалуйста, не стесняйтесь задавать их.

Оцените материал
Добавить комментарий

Капча загружается...