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
?
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>
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.