KI-Zusammenfassung
Übersicht
Möchten Sie die Aktivierungs-E-Mails für Benutzer automatisch erneut senden, wenn die Benutzer ihre Konten noch nicht aktiviert haben? Wir zeigen Ihnen, wie Sie dies mit PHP tun können. Mit dem WPForms User Registration Addon können Sie das Registrierungsformular so einrichten, dass Aktivierungs-E-Mails für Benutzer gesendet werden. Mit einem kleinen Code-Snippet können Sie ganz einfach eine Funktion einrichten, die die Aktivierungslinks an diese Benutzer erneut sendet. Richten Sie einfach die Funktion ein und das ist alles, was Sie tun müssen.
Einrichtung
Zuerst müssen Sie Ihr Formular einrichten und die Benutzeraktivierung im Tab „Benutzerregistrierung“ aktivieren. Wenn Sie Hilfe bei der Einrichtung benötigen, lesen Sie bitte diese Dokumentation.
Sobald Sie Ihr Formular eingerichtet und Ihre Felder hinzugefügt haben, klicken Sie im Tab „Benutzerregistrierung“ unter den Formulareinstellungen auf Einstellungen. Klicken Sie dann auf die Option Benutzeraktivierung aktivieren.
Fügen Sie als Nächstes diesen Code-Snippet zu Ihrer Website hinzu. Wenn Sie Hilfe beim Hinzufügen von Code-Snippets zu Ihrer Website benötigen, lesen Sie bitte dieses 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 );
Benutzer, die sich über Ihr Formular registriert haben, aber ihr Konto noch nicht aktiviert haben, erhalten den Status wpforms-pending. Die erste Funktion sucht also nach diesem Status, um diese Benutzerkonten abzurufen, und die zweite Funktion sendet die E-Mails automatisch erneut, wobei WEEK_IN_SECONDS als geplante Zeit verwendet wird.
WEEK_IN_SECONDS ist eine WordPress-Konstante, die Sie verwenden können, um wöchentlich nach dieser Aufgabe zu suchen. Wenn Sie dies auf bald (oder sogar später) ändern möchten, könnten Sie diesen Teil der Funktion auf eine der folgenden Optionen ändern.
- SEKUNDE_IN_MINUTEN
- SEKUNDE_IN_STUNDEN
- SEKUNDE_IN_TAGEN
- SEKUNDE_IN_MONATEN
- SEKUNDE_IN_JAHREN
Weitere Informationen zu den Konstanten, die WordPress für Zeitperioden bereitstellt, finden Sie in deren eigener Dokumentation.
Und das ist alles, was Sie brauchen! Möchten Sie Benutzer-Smart-Tags erstellen, die Sie in anderen Formularen verwenden können? Sehen Sie sich unser Tutorial an So erstellen Sie weitere Benutzer-Smart-Tags.