web-dev-qa-db-ja.com

メールなしのユーザー?

Wordpressでユーザーを作成するとき、そのユーザーにはEメールアドレスが必要です。私が取り組んでいるWebサイトでは、ユーザーは匿名のままでいる必要があり(これは調査研究の一部です)、電子メールは識別用のデータであると考えています。ユーザーは手動で追加されるため、電子メールでアカウントを確認したり、スパムサインアップを防止したりする必要はありません。

アカウントごとに偽のメールアドレスを入力する必要がありますか。それとも、このフィールドを空白のままにすることができますか。

5
Mike Wheaton

それは可能です、ハッカーなしでUsersページからそう簡単にはできません。

WordPress APIを使用すると、電子メールアドレスのないユーザーを挿入できます。そのため、ログイン名とパスワード、およびwp_insert_userまたはwp_update_userの呼び出しを受け付ける小さなカスタムプラグインを使用すると便利です。残念ながら、私はあなたのためにそれをコーディングする時間がありませんが、おそらくこれはあなたに方向性を示すでしょう。

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

これはかなり古い質問ですが、それでも関連性があります。

とにかく、@ Miloは間違いなく正しい考えを持っていました。

これが私が使っているもので、とてもうまくいきます。これはあなたがユーザを作成したいが、あなたのワードプレスバックエンドをロックダウンしたままにしたいときに非常に便利です。たとえば、ブログを持っていて、コンテンツ作成者が自分の作品を自分に提出することを好む場合は、実際にアクセスを許可しないでそれらのユーザーを作成できます。または、あなたが別名でブログを書くことを好む場合。あるいはそれはテスト目的のためにさえ有用であるか、または私は彼らのサイトのためにたくさんの偽のユーザーを作りたいそれらの「大ざっぱな」人々を推測する(あなたはあなたが誰であるか知っている)。

これを一時的にfunctions.phpに追加するか、またはコードスニペットのような便利なプラグインと共に使用してください。

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

あなたがそれらを作成した後にバックエンドからユーザを更新しようとしているならば、これを加えてください、そしてあなたはエラー/警告通知を得ることを避けるでしょう。

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

あなたがプラグインを使用したいのであれば、これが最も可能性の高い仕事をするでしょう:

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

4
Bryan Willis

WordPressのドキュメントによると、 wp_create_user はオプションのパラメータなので、電子メールなしでユーザを挿入しましょう。あなたがする必要があるのはユニークなユーザー名とパスワードを提供することだけです。

3
Tomas Buteler

Wordpress 4.7.2を使って、私はこれを次のフックで解決しました:

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

「CSVからユーザーをインポート」プラグインを使用すると、電子メールアドレスを持たないユーザーを作成できます。私はそれらを追加しました...

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

私たちのクラブはWordpressのwp_usersデータベースを利用していますが、私たちはEメールを持っていないメンバーでさえもファイルに登録する必要があります。

0
Trevor