Vue d'ensemble
Souhaitez-vous renvoyer automatiquement les e-mails d'activation des utilisateurs si ceux-ci n'ont pas encore activé leur compte ? Nous allons vous montrer comment le faire avec PHP. Avec l'addon WPForms User Registration, vous pouvez activer le formulaire d'enregistrement pour que des emails d'activation soient envoyés aux utilisateurs. En utilisant un petit snippet, vous pouvez facilement mettre en place une fonction qui renvoie les liens d'activation à ces utilisateurs, il suffit de mettre en place la fonction et c'est tout ce que vous avez à faire.
Mise en place
Tout d'abord, vous devez configurer votre formulaire et activer l'activation de l'utilisateur dans l'onglet Enregistrement de l'utilisateur. Si vous avez besoin d'aide, consultez cette documentation.
Une fois que vous avez configuré votre formulaire et ajouté vos champs, cliquez sur l'onglet Enregistrement de l'utilisateur dans les paramètres du formulaire. Cliquez ensuite sur l'option Activer l'activation de l'utilisateur.
Ensuite, ajoutez cet extrait à votre site. Si vous avez besoin d'aide pour ajouter des snippets à votre site, consultez ce tutoriel.
/** * Grab the users who have registered but not activated their account * * @link https://wpforms.com/developers/how-to-automatically-resend-user-activation-link-emails/ */ function user_registration_resend_activation() { $unapproved_users = get_users( [ 'meta_key' => 'wpforms-pending', 'meta_value' => true, ] ); foreach ( $unapproved_users as $user ) { \WPFormsUserRegistration\SmartTags\Helpers\Helper::set_user( $user ); wpforms_user_registration()->get( 'email_notifications' )->resend_activation( $user->ID ); } } add_action( 'user_registration_resend_activation_action', 'user_registration_resend_activation', 10 ); /** * Automatically resend any emails to users who haven't activated their account * * @link https://wpforms.com/developers/how-to-automatically-resend-user-activation-link-emails/ */ function user_registration_resend_activation_as_task() { if ( ! function_exists( 'as_schedule_recurring_action' ) ) { return null; } if ( as_next_scheduled_action( 'user_registration_resend_activation_action' ) ) { return null; } as_schedule_recurring_action( strtotime( 'midnight tonight' ), WEEK_IN_SECONDS, 'user_registration_resend_activation_action' ); } add_action( 'admin_init', 'user_registration_resend_activation_as_task', 10 );
Tous les utilisateurs qui se sont inscrits par le biais de votre formulaire mais qui n'ont pas encore activé leur compte se voient attribuer le statut wpforms-pending. La première fonction recherchera donc ce statut pour récupérer les comptes de ces utilisateurs et la seconde fonction renverra automatiquement les courriels en utilisant le WEEK_IN_SECONDS comme heure programmée.
WEEK_IN_SECONDS est une constante WordPress que vous pouvez utiliser pour vérifier cette tâche chaque semaine. Si vous souhaitez que ce soit bientôt (ou même plus tard), vous pouvez remplacer cette partie de la fonction par l'une des suivantes.
- MINUTE_EN_SECONDES
- HEURE_EN_SECONDES
- JOUR_EN_SECONDES
- MOIS_EN_SECONDES
- ANNÉE_EN_SECONDES
Pour plus d'informations sur les constantes que WordPress fournit pour les périodes de temps, veuillez consulter leur propre documentation.
Et c'est tout ce dont vous avez besoin ! Vous souhaitez créer des étiquettes intelligentes pour les utilisateurs et les utiliser dans d'autres formulaires ? Consultez notre tutoriel sur la création de Smart Tags pour les utilisateurs.