web-dev-qa-db-fra.com

Utilisateur sans email?

Lors de la création d'un utilisateur dans Wordpress, une adresse électronique est requise pour cet utilisateur. Le site Web sur lequel je travaille exige que les utilisateurs restent anonymes (cela fait partie d'une étude de recherche) et je considérerais le courrier électronique comme un élément d'identification. Les utilisateurs seront ajoutés manuellement. Par conséquent, aucun courrier électronique n'est requis pour confirmer les comptes ou empêcher les inscriptions au spam.

Dois-je fournir une fausse adresse électronique pour chaque compte ou y a-t-il un moyen de laisser ce champ vide?

5
Mike Wheaton

C'est possible, mais pas si facilement via la page Utilisateurs sans piratage.

L'API WordPress vous permettra d'insérer des utilisateurs sans adresses e-mail. Un petit plug-in personnalisé permettant d'accepter un identifiant et un mot de passe, ainsi qu'un appel à wp_insert_user ou wp_update_user devraient fonctionner pour vous. Malheureusement, je n'ai pas le temps de le coder pour vous, mais cela vous orientera peut-être dans une direction.

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

C'est une question assez ancienne, mais qui reste pertinente.

Quoi qu'il en soit, @Milo avait définitivement la bonne idée.

Voici ce que j'utilise et ça marche très bien. Ceci est très pratique lorsque vous voulez créer des utilisateurs, mais préférez garder votre backend wordpress sur lockdown. Par exemple, si vous avez un blog et préférez que vos auteurs de contenu vous soumettent leur travail, cela vous permet de créer un utilisateur pour eux sans leur donner réellement accès. Ou si vous préférez bloguer sous un alias. Ou c'est même utile à des fins de test ou j'imagine ces personnes "sommaires" qui veulent créer un tas de faux utilisateurs pour leur site (vous savez qui vous êtes).

Ajoutez-le temporairement à functions.php ou utilisez-le avec un plugin utile, comme des extraits de code.

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' );

Si vous souhaitez mettre à jour les utilisateurs à partir du backend après les avoir créés, ajoutez-le et vous éviterez ainsi de recevoir la notification d'erreur/avertissement.

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' );

Si vous préférez utiliser un plugin, celui-ci fera le travail le plus probable:

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

4
Bryan Willis

Selon la documentation de WordPress, wp_create_user vous permet également d'insérer des utilisateurs sans courrier électronique, car il s'agit d'un paramètre facultatif. Il vous suffit de fournir un nom d'utilisateur et un mot de passe uniques.

3
Tomas Buteler

À l'aide de Wordpress 4.7.2, j'ai résolu ce problème avec les points suivants:

// 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

Le plug-in "Import Users from CSV" vous permettra de créer des utilisateurs sans adresse e-mail. Je les ai ajoutés avec ...

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

Notre club exploite la base de données Wordpress wp_users, mais nous devons avoir dans nos dossiers même les membres qui n'ont pas d'adresse électronique.

0
Trevor