Automatisches erneutes Versenden von E-Mails mit Benutzeraktivierungslinks

Übersicht

Möchten Sie automatisch E-Mails zur Benutzeraktivierung versenden, wenn die Benutzer ihre Konten noch nicht aktiviert haben? Wir zeigen Ihnen, wie Sie dies mit PHP erreichen können. Mit dem WPForms User Registration Addon können Sie das Registrierungsformular aktivieren, um E-Mails zur Benutzeraktivierung zu versenden. Mit einem kleinen Snippet können Sie ganz einfach eine Funktion einrichten, die die Aktivierungslinks an diese Benutzer sendet. Sie müssen nur die Funktion einrichten und das ist alles, was Sie tun müssen.

Einrichtung

Zunächst müssen Sie Ihr Formular einrichten und die Benutzeraktivierung auf der Registerkarte Benutzerregistrierung aktivieren. Wenn Sie Hilfe bei der Einrichtung benötigen, sehen Sie sich bitte diese Dokumentation an.

Aktivieren Sie die Einstellung für die Benutzeraktivierung auf der Registerkarte Benutzerregistrierung in den Formulareinstellungen.

Sobald Sie Ihr Formular eingerichtet und Ihre Felder hinzugefügt haben, klicken Sie auf die Registerkarte Benutzerregistrierung unter den Formulareinstellungen. Klicken Sie dann auf die Option "Benutzeraktivierung aktivieren".

Fügen Sie dann dieses Snippet zu Ihrer Website hinzu. Wenn Sie Hilfe beim Hinzufügen von Snippets zu Ihrer Website benötigen, sehen Sie sich bitte dieses Tutorial an.

/**
 * 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 );

Alle Benutzer, die sich über Ihr Formular registriert haben, aber ihr Konto noch nicht aktiviert haben, erhalten den Status wpforms-pending, so dass die erste Funktion nach diesem Status sucht, um diese Benutzerkonten abzurufen, und die zweite Funktion sendet die E-Mails automatisch erneut, wobei sie die WEEK_IN_SECONDS als geplante Zeit verwendet.

WEEK_IN_SECONDS ist eine WordPress-Konstante, die Sie zur wöchentlichen Überprüfung dieser Aufgabe verwenden können. Wenn Sie dies auf bald (oder sogar später) ändern möchten, können Sie diesen Teil der Funktion in einen der folgenden Werte ändern.

  • MINUTE_IN_SEKUNDEN
  • STUNDE_IN_SEKUNDEN
  • TAGE_IN_SEKUNDEN
  • MONAT_IN_SEKUNDEN
  • JAHR_IN_SEKUNDEN

Weitere Informationen zu den Konstanten, die WordPress für Zeiträume bereitstellt, finden Sie in der Dokumentation des Programms.

Und das ist alles, was Sie brauchen! Möchten Sie einige Benutzer-Smart-Tags erstellen, um sie in anderen Formularen zu verwenden? Sehen Sie sich unser Tutorial zum Erstellen weiterer Benutzer-Smart-Tags an.