web-dev-qa-db-fra.com

Comment afficher les messages d'erreur à l'aide de la classe WP_Error?

J'ai le code de formulaire d'inscription dans mon fichier functions.php comme ceci

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.');

        }
}

Maintenant, quelqu'un peut-il me dire comment afficher ces messages d'erreur dans mon register page?

Mettre à jour:

Ma page d'inscription a un code comme celui-ci

<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>
2
Giri

Avec cela dans functions.php, vous devrez probablement déclarer $error comme étant global comme ceci:

if ('POST' == $_SERVER['REQUEST_METHOD'] && !empty($_POST['action']) && $_POST['action'] == 'registration') {
    global $error;
    $error = new WP_Error();
    // the rest of your code

Et ensuite, faites à nouveau global $error; sur votre page d'inscription avant d'essayer de l'utiliser.

Mais je ne comprends pas pourquoi vous avez ce code dans functions.php. Cela me semble une mauvaise conception. Vous utilisez cette if conditionnelle chaque fois qu'une page est chargée et il semble que vous n'en ayez besoin que sur votre page d'inscription, ce qui, je suppose, est quelque chose que vous avez écrit vous-même et que vous ne parlez pas de l'enregistrement intégré/page de connexion à wp-login.php. Compte tenu de cette hypothèse, déplacez simplement ce code vers la page d'enregistrement et il sera disponible sans tracas. WP_Error a des méthodes qui vous permettront d’obtenir les données.

3
s_ha_dum