Riassunto AI
Panoramica
Vuoi inviare nuovamente le email di attivazione utente automaticamente se gli utenti non hanno ancora attivato i propri account? Ti mostreremo come farlo con PHP. Con il componente aggiuntivo WPForms User Registration, puoi abilitare il modulo di registrazione per inviare email di attivazione utente. Utilizzando un piccolo snippet, puoi facilmente impostare una funzione che reinvia i link di attivazione a questi utenti, basta impostare la funzione e questo è tutto ciò che devi fare.
Configurazione
Innanzitutto, dovrai configurare il tuo modulo e abilitare l'attivazione utente nella scheda Registrazione utente. Se hai bisogno di aiuto per configurarlo, dai un'occhiata a questa documentazione.
Una volta configurato il tuo modulo e aggiunti i campi, fai clic sulla scheda Registrazione utente nelle Impostazioni del modulo. Quindi fai clic sull'opzione per Abilita attivazione utente.
Successivamente, aggiungi questo snippet al tuo sito. Se hai bisogno di assistenza su come aggiungere snippet al tuo sito, dai un'occhiata a questo tutorial.
/**
* 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 );
A tutti gli utenti che si sono registrati tramite il tuo modulo ma non hanno ancora attivato il proprio account viene assegnato uno stato di wpforms-pending, quindi la prima funzione cercherà quello stato per recuperare quegli account utente e la seconda funzione invierà nuovamente automaticamente le email utilizzando WEEK_IN_SECONDS come tempo pianificato.
WEEK_IN_SECONDS è una costante di WordPress che puoi utilizzare per verificare settimanalmente questo compito. Se desideri cambiarlo per renderlo più breve (o anche più lungo), potresti cambiare questa parte della funzione con una delle seguenti.
- MINUTI_IN_SECONDI
- ORE_IN_SECONDI
- GIORNI_IN_SECONDI
- MESI_IN_SECONDI
- ANNI_IN_SECONDI
Per ulteriori informazioni sulle costanti che WordPress fornisce per i periodi di tempo, dai un'occhiata alla loro documentazione.
E questo è tutto ciò che ti serve! Vuoi creare alcuni Smart Tag utente da utilizzare in altri moduli? Dai un'occhiata al nostro tutorial su Come creare altri Smart Tag utente.