1. Форма на коде

1.1 Как сделал. Добавил в functions.php:

				
					// Создание формы обратной связи
function custom_contact_form() {
    ob_start(); ?>

    <form id="contact-form" method="post" action="<?php the_permalink(); ?>">
        <p>
            <label for="name">Имя:</label>
            <input type="text" name="name" id="name" required>
        </p>
        <p>
            <label for="email">Почта:</label>
            <input type="email" name="email" id="email" required>
        </p>
        <p>
            <label for="phone">Телефон:</label>
            <input type="tel" name="phone" id="phone">
        </p>
        <p>
            <label for="message">Сообщение:</label>
            <textarea name="message" id="message" rows="5" required></textarea>
        </p>
        <input type="submit" name="submit" value="Отправить">
    </form>

    <?php
    return ob_get_clean();
}
add_shortcode('contact_form', 'custom_contact_form');

// Обработка отправленной формы
function handle_contact_form() {
    if (isset($_POST['submit'])) {
        $name = sanitize_text_field($_POST['name']);
        $email = sanitize_email($_POST['email']);
        $phone = sanitize_text_field($_POST['phone']);
        $message = sanitize_textarea_field($_POST['message']);

        // Сохранение данных в админке WordPress
        $contact_data = array(
            'name' => $name,
            'email' => $email,
            'phone' => $phone,
            'message' => $message
        );
        $post_id = wp_insert_post(array(
            'post_title' => 'Contact Form Submission',
            'post_type' => 'contact_form_submissions',
            'post_status' => 'publish'
        ));
        foreach ($contact_data as $key => $value) {
            update_post_meta($post_id, $key, $value);
        }

        // Дополнительные действия после сохранения данных
        // Например, отправка уведомления администратору или пользователю

        // Перенаправление пользователя после отправки формы
        wp_redirect(get_permalink()); // Можно указать другую ссылку
        exit();
    }
}
add_action('init', 'handle_contact_form');

				
			

1.2 Создал новую страницу в админке WordPress и добавил на нее shortcode.
1.3 Создание типа записи для хранения данных формы:

				
					function create_contact_form_post_type() {
    register_post_type('contact_form_submissions',
        array(
            'labels' => array(
                'name' => __('Contact Form Submissions'),
                'singular_name' => __('Contact Form Submission')
            ),
            'public' => false,
            'show_ui' => true,
            'supports' => array('title'),
            'exclude_from_search' => true,
            'publicly_queryable' => false,
            'show_in_menu' => true
        )
    );
}
add_action('init', 'create_contact_form_post_type');