Résumé IA
Aperçu
Souhaitez-vous renvoyer automatiquement les e-mails d’activation des utilisateurs s’ils n’ont pas encore activé leur compte ? Nous vous montrerons comment faire cela avec PHP. Avec le module complémentaire d’inscription d’utilisateurs WPForms, vous pouvez activer l’envoi d’e-mails d’activation des utilisateurs à partir du formulaire d’inscription. En utilisant un petit extrait de code, vous pouvez facilement configurer une fonction qui renvoie les liens d’activation à ces utilisateurs ; il suffit de configurer la fonction et c’est tout ce que vous avez à faire.
Configuration
Tout d’abord, vous devrez configurer votre formulaire et activer l’activation des utilisateurs dans l’onglet Inscription des utilisateurs. Si vous avez besoin d’aide pour configurer cela, veuillez consulter cette documentation.
Une fois que vous avez configuré votre formulaire et ajouté vos champs, cliquez sur l’onglet Inscription des utilisateurs sous les Paramètres du formulaire. Cliquez ensuite sur l’option Activer l’activation des utilisateurs.
Ensuite, ajoutez cet extrait de code à votre site. Si vous avez besoin d’aide pour ajouter des extraits de code à votre site, veuillez consulter 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 via votre formulaire mais n’ont pas encore activé leur compte reçoivent un statut de wpforms-pending. La première fonction recherchera donc ce statut pour récupérer ces comptes d’utilisateurs, et la seconde fonction renverra automatiquement les e-mails en utilisant WEEK_IN_SECONDS comme heure planifiée.
WEEK_IN_SECONDS est une constante WordPress que vous pouvez utiliser pour vérifier cette tâche chaque semaine. Si vous souhaitez changer cela pour que ce soit bientôt (ou même plus tard), vous pourriez changer cette partie de la fonction pour l’une des suivantes.
- MINUTE_IN_SECONDS
- HOUR_IN_SECONDS
- DAY_IN_SECONDS
- MONTH_IN_SECONDS
- YEAR_IN_SECONDS
Pour plus d’informations sur les constantes que WordPress fournit pour les périodes, veuillez consulter leur propre documentation.
Et c’est tout ce dont vous avez besoin ! Souhaitez-vous créer des balises intelligentes d’utilisateur à utiliser dans d’autres formulaires ? Consultez notre tutoriel sur Comment créer plus de balises intelligentes d’utilisateur.