Come reinviare automaticamente le e-mail con i link di attivazione degli utenti

Panoramica

Volete reinviare automaticamente le e-mail di attivazione degli utenti se questi non hanno ancora attivato i loro account? Vi mostriamo come farlo con PHP. Con l'addon WPForms User Registration, potete abilitare il modulo di registrazione all'invio di e-mail di attivazione degli utenti. Utilizzando un piccolo snippet, è possibile impostare facilmente una funzione che invia nuovamente i link di attivazione a questi utenti.

Impostazione

Per prima cosa, è necessario impostare il modulo e abilitare l'attivazione dell'utente nella scheda Registrazione utente. Se avete bisogno di aiuto per configurarlo, consultate questa documentazione.

attivare l'impostazione di attivazione dell'utente dalla scheda Registrazione utente delle impostazioni del modulo.

Una volta impostato il modulo e aggiunti i campi, fare clic sulla scheda Registrazione utente nelle Impostazioni del modulo. Fare quindi clic sull'opzione Abilita attivazione utente.

Quindi, aggiungete questo snippet al vostro sito. Se avete bisogno di assistenza per aggiungere gli snippet al vostro sito, consultate 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 );

Agli utenti che si sono registrati tramite il modulo ma non hanno ancora attivato il loro account viene assegnato lo stato wpforms-pending, quindi la prima funzione cercherà questo stato per recuperare gli account degli utenti e la seconda funzione reinvierà automaticamente le e-mail utilizzando WEEK_IN_SECONDS come orario previsto.

WEEK_IN_SECONDS è una costante di WordPress che si può usare per controllare settimanalmente questo compito. Se si desidera cambiare questo valore in "presto" (o anche "più tardi"), si può cambiare questa parte della funzione con una delle seguenti.

  • MINUTO_IN_SECONDO
  • ORA_IN_SECONDI
  • GIORNO_IN_SECONDI
  • MESE_IN_SECONDI
  • ANNO_IN_SECONDI

Per ulteriori informazioni sulle costanti fornite da WordPress per i periodi di tempo, consultare la documentazione.

E questo è tutto ciò che vi serve! Volete creare degli Smart Tag utente da utilizzare in altri moduli? Consultate il nostro tutorial su Come creare altri Smart Tag utente.