Как отображать сообщения об ошибках с помощью класса ошибок WP?
У меня есть код регистрационной формы в моем файле functions.php
, как этот
if ('POST' == $_SERVER['REQUEST_METHOD'] && !empty($_POST['action']) && $_POST['action'] == 'registration') {
$error = new WP_Error();
if (empty(esc_attr($_POST['email'])))
{
$error->add('regerror','Email is required.');
}
if (!is_email(esc_attr($_POST['email'])))
{
$error->add('regerror','Invalid email format.');
}
if (email_exists(esc_attr($_POST['email'])))
{
$error->add('regerror','Email already in use. Did you forget your Password? If yes click here to reset.');
}
}
Теперь кто-нибудь может сказать мне, как отобразить эти сообщения об ошибках в моем register page
?
Обновление:
На моей странице регистрации есть такой код
<form method="post" action="<?php the_permalink(); ?>">
<!-- form fields goes here -->
<input name="action" type="hidden" value="registration" />
<input type="submit" id="submit" value="Register">
</form>
1 answers
С этим в functions.php
вам, вероятно, придется объявить $error
равным global
примерно так:
if ('POST' == $_SERVER['REQUEST_METHOD'] && !empty($_POST['action']) && $_POST['action'] == 'registration') {
global $error;
$error = new WP_Error();
// the rest of your code
А затем повторите global $error;
на странице регистрации, прежде чем пытаться ее использовать.
Но я не понимаю, почему у вас есть этот код в functions.php
. Мне это кажется плохим дизайном. Вы запускаете это условие if
каждый раз, когда загружается какая-либо страница, и похоже, что вам это нужно только на вашей странице регистрации, , что, как я предполагаю, вы написали сами и что вы не говоря уже о встроенной странице регистрации/входа в систему на wp-login.php
. Учитывая это предположение, просто переместите этот код на страницу регистрации, и он будет доступен без каких-либо проблем. WP_Error
есть методы, которые позволят вам получить доступ к данным.