web-dev-qa-db-ja.com

デフォルトのサブスクライバユーザロールのユーザ登録を無効にする方法

私は自分のサイトで偽のユーザー登録を扱っています。私はWooCommerceを使っているので、ユーザーロールとして "customer"を持つユーザーを生成するカスタムサインアップページがあります。しかし、偽のユーザーは全員、 "subscriber"ロールを持つユーザーを生成するwp-login.phpを通じて登録しています。

ロールをサブスクライバーに設定してユーザーをサインアップしようとした場合、ユーザー生成プロセス(おそらくwp_insert_user()内)を無効にすることは可能ですか?私が見つけることができる最も近いアクションはuser_registerです。これはユーザーが作成された直後にトリガーされるので、ロールが加入者の場合はユーザーを削除することができますが、ユーザーが作成される前にこれをしたいです。

また、ほとんどのユーザーデータはフィルタ処理されますが、ユーザーロール:(は除外されません)

2
passatgt

もっと洗練された方法があるかもしれませんが、コードをちょっと見てみると、ログインページの関連するオプションを単に上書きすることは非常に簡単なようです:

add_action( 'login_init', function () {
    add_action( 'pre_option_users_can_register', '__return_null' );
} );
1
Rarst