Achtung!

Dieser Artikel enthält PHP-Code und richtet sich an Entwickler. Wir stellen diesen Code als Service zur Verfügung, bieten jedoch keine Unterstützung für Codeanpassungen oder die Entwicklung durch Dritte.

Für zusätzliche Hilfe siehe das Tutorial von WPBeginner zum Hinzufügen von benutzerdefiniertem Code.

Schließen

So ändern Sie Validierungsnachrichten für das Benutzerregistrierungs-Addon

Möchten Sie die Fehlermeldungen anpassen, die während der Benutzerregistrierung angezeigt werden? WPForms ermöglicht es Ihnen, hilfreichere Meldungen wie „Benutzername existiert bereits“ oder „E-Mail existiert bereits“ zu erstellen, um Ihre Besucher durch den Registrierungsprozess zu führen.

Diese Anleitung zeigt Ihnen, wie Sie diese Validierungsnachrichten mit PHP anpassen.

Einrichtung Ihres Registrierungsformulars

Stellen Sie zunächst sicher, dass Sie das Benutzerregistrierungs-Addon für WPForms installiert haben. Dieses Addon bietet zwei vorgefertigte Vorlagen: Benutzeranmeldeformular und Benutzerregistrierungsformular. Da wir uns auf Registrierungsnachrichten konzentrieren, erstellen Sie ein neues Formular mit der Vorlage Benutzerregistrierung.

Wenn Sie Hilfe beim Erstellen Ihres Registrierungsformulars benötigen, lesen Sie unsere Anleitung zum Erstellen von Benutzerregistrierungsformularen.

Diese Formulare können verschiedene Arten von Validierungsnachrichten anzeigen, um Ihre Benutzer zu unterstützen. Passen wir jede Art von Nachricht an.

Ändern der Validierungsnachrichten

Um die Validierungsnachrichten zu ändern, müssen Sie einen der folgenden Code-Snippets zu Ihrer Website hinzufügen.

Wenn Sie nicht sicher sind, wie Sie benutzerdefinierten Code hinzufügen, lesen Sie bitte unsere Anleitung zum Hinzufügen von Code-Snippets zu Ihrer Website.

Benutzername existiert bereits Nachricht

Die Standardnachricht lautet Ein Benutzer mit diesem Benutzernamen existiert bereits. Hier erfahren Sie, wie Sie sie anpassen und einen Anmelde-Link hinzufügen:

/**
 * Change the User Registration Form error message for the already existing username
 *
 * @link https://wpforms.com/developers/change-validation-messages-for-user-registration-addon/
 */
function wpf_dev_user_registration_username_exists( $msg ) {
    // This is the message that would appear
    $msg = __( 'A user with that username already exists. Please <a href="http://yourdomain/wp-admin/">log in here</a> to your account.', 'text-domain' );
    return $msg;
}
add_filter( 'wpforms_user_registration_process_registration_process_username_exists_error_message', 'wpf_dev_user_registration_username_exists', 10, 1 );

E-Mail existiert bereits Nachricht

Die Standardnachricht lautet Ein Benutzer mit dieser E-Mail-Adresse existiert bereits. Hier erfahren Sie, wie Sie sie mit einem Anmelde-Link anpassen:

/**
 * Change the User Registration Form error message for already existing email address
 *
 * @link https://wpforms.com/developers/change-validation-messages-for-user-registration-addon/
 */
function wpf_dev_user_registration_email_exists( $msg ) {
    // This is the message that would appear
    $msg = __( 'A user with that username already exists. Please <a href="http://yourdomain/wp-admin/">log in here</a> to your account.', 'text-domain' );
    return $msg;
}
add_filter( 'wpforms_user_registration_process_registration_process_user_email_exists_error_message', 'wpf_dev_user_registration_email_exists', 10, 1 );

Falsches Passwort Nachricht

Die Standardnachricht lautet Fehler: Das von Ihnen eingegebene Passwort für den Benutzernamen ist falsch. Passwort vergessen? Hier erfahren Sie, wie Sie es mit einem Link zum Zurücksetzen des Passworts anpassen:

/**
 * Password is incorrect
 *
 * @link https://wpforms.com/developers/change-validation-messages-for-user-registration-addon/
 */
function wpf_dev_user_registration_login_error( $msg ) {
    // This is the message that would appear in the email
    $msg = __('Sorry something went wrong! ', 'text-domain');
    $msg .= '<a href=\\"http://www.website.com\\">';
    $msg .= __('Would you like to reset your password?', 'text-domain');
    $msg .= '</a>';
    return $msg;
}
add_filter( 'wpforms_user_registration_process_login_process_wp_error_message', 'wpf_dev_user_registration_login_error', 10, 1 );

Beim Hinzufügen von URLs in PHP müssen Sie diese mit doppelten Schrägstrichen maskieren. Wenn Sie die URL zum Zurücksetzen des Passworts ändern, können Benutzer die integrierte Passwort-Zurücksetzungsfunktion von WordPress nicht mehr verwenden.

Benutzerdefinierte Nachrichten für Anmeldeformulare

Sie können auch Nachrichten für das Benutzeranmeldeformular anpassen. Hier erfahren Sie, wie Sie eine generische Nachricht für alle Formulare erstellen:

/**
 * Change the User Login Form error message
 *
 * @link https://wpforms.com/developers/change-validation-messages-for-user-registration-addon/
 */
function wpf_dev_user_registration_login_error($msg) {
    // This is the message that would appear in the email
    $msg = __( 'Sorry something went wrong! ', 'text-domain' );
    $msg .= '<a href="'.esc_url( wp_lostpassword_url() ).'">';
    $msg .= __( 'Would you like to reset your password?', 'text-domain' );
    $msg .= '</a>';
    return $msg;
}
add_filter( 'wpforms_user_registration_process_login_process_wp_error_message', 'wpf_dev_user_registration_login_error', 10, 2 );

Wenn Sie die Vorlage Passwort zurücksetzen verwenden und die Fehlermeldung ändern möchten, die angezeigt wird, wenn ein Benutzer auf einen ungültigen oder abgelaufenen Link zum Zurücksetzen klickt, können Sie den folgenden Code-Snippet verwenden.

/**
 * Customize the error message shown on the WPForms Password Reset form
 * when the reset link is invalid or expired.
 *
 * @link https://wpforms.com/developers/change-validation-messages-for-user-registration-addon/
 *
 * @param string $message The default error message.
 * @return string
 */
function wpf_custom_password_reset_invalid_link_message( $message ) {
    return wp_kses(
        __( '<strong>Error:</strong> Your password reset link is invalid or has expired. Please request a new link below.', 'text-domain' ),
        [ 'strong' => [] ]
    );
}
add_filter( 'wpforms_user_registration_frontend_reset_invalid_link_message', 'wpf_custom_password_reset_invalid_link_message', 10, 1 );

Formularspezifische Fehlermeldungen

Sie können unterschiedliche Fehlermeldungen für verschiedene Formulare festlegen. Hier erfahren Sie, wie Sie Nachrichten basierend auf der Formular-ID anpassen. Wenn Sie Hilfe beim Auffinden Ihrer Formular-IDs benötigen, lesen Sie unsere Anleitung zum Auffinden von Formular- und Feld-IDs.

/**
 * Change the User Login Form error message specific per form
 *
 * @link https://wpforms.com/developers/change-validation-messages-for-user-registration-addon/
 */
function wpf_dev_form_login_errors( $fields, $entry, $form_data ) {
    $form_id = (int) $form_data[ 'id' ];
    
    add_filter(
        'wpforms_user_registration_login_error',
        function ( $message, $code ) use ( $form_id ) {
            // This if for form ID 525
            if ( $form_id === 525) {
                // This is the specific message for form ID 525
                return __( 'The error message here for form #525', 'text-domain' );
            }
            // This is for form ID 526
            if ( $form_id === 526) {
                // This is the specific message for form ID 526
                return __( 'The error message here for form #526', 'text-domain' );
            }
            return $message;
        },
        10,
        2
    );
}
add_action( 'wpforms_process', 'wpf_dev_form_login_errors', 9, 3 );

Häufig gestellte Fragen

F: Kann ich alle Fehlermeldungen gleichzeitig anzeigen?

A: Nein, PHP wird in der Reihenfolge ausgeführt, in der die Snippets hinzugefügt werden, oder nach der für die Funktion festgelegten Priorität. Wenn Sie das Snippet wpforms_user_registration_username_exists zuerst auf Ihrer Website hinzugefügt haben, wird es nach dem Absenden des Formulars Ihre Snippets in der Reihenfolge ausführen, in der sie hinzugefügt wurden, und die Meldung für das erste fehlgeschlagene Snippet anzeigen.

Und das ist alles, was Sie hinzufügen müssen, um zusätzliche Validierungsnachrichten für das User Registration Addon hinzuzufügen. Möchten Sie Ihre Benutzer automatisch einloggen, sobald sie die Registrierung abgeschlossen haben? Schauen Sie sich unseren Leitfaden an, wie Sie Benutzer nach der Registrierung automatisch einloggen, oder erfahren Sie, wie Sie benutzerdefinierte Benutzer-Metafelder zu Registrierungsformularen hinzufügen.

F: Kann ich die Bestätigungsnachricht ändern, die nach dem Zurücksetzen des Passworts durch einen Benutzer angezeigt wird?

Ja. Wenn Sie die Vorlage Passwort zurücksetzen verwenden und die Bestätigungsnachricht anpassen möchten, die nach erfolgreichem Zurücksetzen des Passworts durch einen Benutzer angezeigt wird, können Sie den folgenden Ausschnitt verwenden.

function wpf_custom_reset_confirmation_message( $message, $form_data ) {
    // Modify the confirmation message based on the presence of a specific field type for grabbing the username or email.
    if ( true === wpforms_has_field_type( 'text', $form_data ) ) {
        $message = esc_html__( 'Please check your email to reset your password.', 'wpforms' );
    } else {
        $message = esc_html__( 'Your new password has been set successfully!', 'wpforms' );
    }
    return $message;
}
add_filter( 'wpforms_frontend_confirmation_message', 'wpf_custom_reset_confirmation_message', 10, 2 );

Referenzfilter