web-dev-qa-db-fra.com

Comment désactiver l'enregistrement d'utilisateur pour le rôle d'utilisateur d'abonné par défaut?

J'ai affaire à de fausses inscriptions d'utilisateurs sur mon site. Depuis que j'utilise WooCommerce, j'ai une page d'inscription personnalisée qui générera des utilisateurs avec "client" en tant que rôle d'utilisateur. Cependant, tous les faux utilisateurs s'enregistrent via wp-login.php, ce qui générera un utilisateur avec le rôle "abonné" .

Est-il possible de désactiver en quelque sorte le processus de génération d'utilisateurs (probablement à l'intérieur de wp_insert_user()) s'il tente d'inscrire un utilisateur avec le rôle défini sur abonné? L'action la plus proche que j'ai pu trouver est user_register, qui se déclenche immédiatement après la création de l'utilisateur. Je peux donc supprimer l'utilisateur si le rôle est abonné, mais j'aimerais le faire avant même que l'utilisateur ne soit créé.

De plus, la plupart des données utilisateur sont filtrées, mais pas le rôle de l'utilisateur :(

2
passatgt

Il existe peut-être un moyen plus élégant de le faire, mais il suffit de jeter un coup d’œil rapide sur le code pour remplacer l’option pertinente sur la page de connexion:

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