Как вставить wp_error внизу формы?

Чтобы вставить wp_error внизу формы в WordPress, вам необходимо выполнить несколько шагов. Возьмем за пример форму регистрации пользователя.

1. Создайте функцию обработки формы
Первым шагом является создание функции, которая будет обрабатывать данные формы и проверять ошибки. Например:

function process_registration_form() {
    $errors = new WP_Error();

    // Проверка полей формы
    if (empty($_POST['username'])) {
        $errors->add('username_error', 'Please enter a username.');
    }

    if (empty($_POST['password'])) {
        $errors->add('password_error', 'Please enter a password.');
    }

    // Другие проверки полей формы

    // Если ошибки есть, выводим их
    if ($errors->get_error_code()) {
        // Выводим ошибки с помощью функции wp_nonce_error()
        wp_nonce_error('registration_error', 'registration_nonce');
    } else {
        // Если ошибок нет, продолжаем обработку формы
        // Код для сохранения пользователя, отправки электронной почты и т. д.
    }
}

2. Вставьте форму
Вставьте форму регистрации в нужное место на странице, например, используя шорткод или вызывая функцию в шаблоне WordPress.

function registration_form_shortcode() {
    ob_start();

    // Выводите форму регистрации здесь
    ?>

	<form method="post" action="">
        <!-- Поля формы -->
		<input type="text" name="username" />
		<input type="password" name="password" />

		<!-- Кнопка отправки формы -->
		<input type="submit" value="Register" />
	</form>

    <?php

    return ob_get_clean();
}
add_shortcode('registration_form', 'registration_form_shortcode');

3. Обработка формы
Добавьте обработчик формы к хуку загрузки страницы или другому подходящему хуку в WordPress.

function process_registration_form_on_load() {
    if (isset($_POST['registration_nonce']) && wp_verify_nonce($_POST['registration_nonce'], 'registration_error')) {
        process_registration_form();
    }
}
add_action('template_redirect', 'process_registration_form_on_load');

4. Вывод ошибок
Для вывода ошибок на форме по мере их возникновения вам пере нужно изменить функцию, выводящую форму:

function registration_form_shortcode() {
    ob_start();

    // Вывод ошибок
    echo wp_kses_post( wp_nonce_field( 'registration_error', 'registration_nonce', false, false ) );
    echo wp_kses_post( $errors->get_error_message('username_error') );
    echo wp_kses_post( $errors->get_error_message('password_error') );

    // Вывод формы регистрации
    ?>
	<form method="post" action="">
        <!-- Поля формы -->
		<input type="text" name="username" />
		<input type="password" name="password" />

		<!-- Кнопка отправки формы -->
		<input type="submit" value="Register" />
	</form>

    <?php

    return ob_get_clean();
}
add_shortcode('registration_form', 'registration_form_shortcode');

Теперь, когда пользователь отправляет форму с неправильно заполненными полями, ошибки будут отображаться ниже формы регистрации. Если ошибок нет, код для сохранения пользователя и отправки электронной почты или другие действия могут быть добавлены перед возвратом функции ob_get_clean().