it-swarm.com.de

Benutzer ohne E-Mail?

Beim Erstellen eines Benutzers in Wordpress ist eine E-Mail-Adresse für diesen Benutzer erforderlich. Die Website, an der ich arbeite, setzt voraus, dass Benutzer anonym bleiben (dies ist Teil einer Forschungsstudie), und ich würde E-Mails als identifizierende Daten betrachten. Benutzer werden manuell hinzugefügt, sodass keine E-Mails erforderlich sind, um Konten zu bestätigen oder Spam-Anmeldungen zu verhindern.

Muss ich für jedes Konto eine falsche E-Mail-Adresse angeben oder kann ich dieses Feld leer lassen?

5
Mike Wheaton

Es ist möglich, nur nicht so einfach über die Users-Seite, ohne etwas Hackery.

Mit der WordPress-API können Sie Benutzer ohne E-Mail-Adressen einfügen. Ein kleines benutzerdefiniertes Plug-in zum Akzeptieren eines Anmeldenamens und eines Kennworts sowie ein Aufruf von wp_insert_user oder wp_update_user sollten für Sie funktionieren. Leider habe ich keine Zeit, es für Sie zu programmieren, aber vielleicht weist dies Sie in eine Richtung.

$userdata = array ('user_login' => 'someuser', 'user_pass' => 'swordfish');
$new_user_id = wp_update_user( $userdata );
4
Milo

Dies ist eine ziemlich alte Frage, die aber immer noch aktuell ist.

Wie auch immer, @Milo hatte definitiv die richtige Idee.

Hier ist was ich benutze und es funktioniert super. Dies ist sehr praktisch, wenn Sie Benutzer erstellen möchten, Ihr WordPress-Backend jedoch weiterhin sperren möchten. Wenn Sie beispielsweise ein Blog haben und es vorziehen, dass die Autoren Ihrer Inhalte Ihnen ihre Arbeit übermitteln, können Sie einen Benutzer für sie erstellen, ohne ihnen tatsächlich Zugriff zu gewähren. Oder wenn Sie es vorziehen, unter einem Pseudonym zu bloggen. Oder es ist sogar zu Testzwecken nützlich, oder ich schätze, diese "skizzenhaften" Leute, die ein paar falsche Benutzer für ihre Site finden wollen (Sie wissen, wer Sie sind).

Fügen Sie dies vorübergehend zu functions.php hinzu oder verwenden Sie es mit einem nützlichen Plugin wie Code-Snippets.

function wpse_22754_insert_new_user() {

    $user_data = array(
    'ID' => '', // automatically created
    'user_pass' => 'swordfish',
    'user_login' => 'someuser',
    'user_nicename' => 'Some User',
    'user_email' => '',
    'display_name' => 'John',
    'nickname' => 'jsmith',
    'first_name' => 'John',
    'last_name' => 'John',
    'user_url' => '',
    'user_registered' => '2015-06-26 10:55:55', // leave empty for auto
    'role' => get_option('default_role') // administrator, editor, subscriber, author, etc
    );

    $user_id = wp_insert_user( $user_data );

    }
add_action( 'admin_init', 'wpse_22754_insert_new_user' );

Wenn Sie Benutzer aus dem Backend aktualisieren möchten, nachdem Sie sie erstellt haben, fügen Sie dies hinzu, und Sie erhalten keine Fehler-/Warnmeldung.

function wpse_22754_empty_email_error( $arg ) {
    if ( !empty( $arg->errors['empty_email'] ) ) unset( $arg->errors['empty_email'] );
}
add_action( 'user_profile_update_errors', 'wpse_22754_empty_email_error' );

Wenn Sie lieber ein Plugin verwenden möchten, erledigt dieses mit größter Wahrscheinlichkeit die Aufgabe:

https://wordpress.org/plugins/allow-multiple-accounts/

4
Bryan Willis

Laut der Dokumentation von WordPress können Sie mit wp_create_user auch Benutzer ohne E-Mail einfügen, da dies ein optionaler Parameter ist. Sie müssen lediglich einen eindeutigen Benutzernamen und ein Passwort eingeben.

3
Tomas Buteler

Mit Wordpress 4.7.2 habe ich das mit folgenden Hooks gelöst:

// This will suppress empty email errors when submitting the user form
add_action('user_profile_update_errors', 'my_user_profile_update_errors', 10, 3 );
function my_user_profile_update_errors($errors, $update, $user) {
    $errors->remove('empty_email');
}

// This will remove javascript required validation for email input
// It will also remove the '(required)' text in the label
// Works for new user, user profile and edit user forms
add_action('user_new_form', 'my_user_new_form', 10, 1);
add_action('show_user_profile', 'my_user_new_form', 10, 1);
add_action('edit_user_profile', 'my_user_new_form', 10, 1);
function my_user_new_form($form_type) {
    ?>
    <script type="text/javascript">
        jQuery('#email').closest('tr').removeClass('form-required').find('.description').remove();
        // Uncheck send new user email option by default
        <?php if (isset($form_type) && $form_type === 'add-new-user') : ?>
            jQuery('#send_user_notification').removeAttr('checked');
        <?php endif; ?>
    </script>
    <?php
}
3
CGodo

Mit dem Plugin "Benutzer aus CSV importieren" können Sie Benutzer ohne E-Mail-Adresse erstellen. Ich habe sie hinzugefügt mit ...

last_name,first_name,display_name,user_login
Gamble,Bill,Bill Gamble,BillGamble

Unser Club nutzt die Wordpress-Datenbank wp_users, aber wir müssen auch die Mitglieder in den Akten haben, die keine E-Mail haben

0
Trevor