web-dev-qa-db-fra.com

comment désactiver la confirmation de l'utilisateur auprès de l'administration?

J'ai un réseau multi-site, sur l'un des sites, l'accès est limité aux utilisateurs enregistrés et seul un administrateur peut créer des utilisateurs.

On m'a demandé de supprimer l'email de confirmation envoyé aux nouveaux utilisateurs et je sais que vous pouvez sélectionner une option pour ajouter l'utilisateur sans envoyer l'email.

Le problème est que cette option est uniquement disponible pour les super administrateurs (moi) et non pour les administrateurs ordinaires.

Est-il possible d'ajouter les nouveaux utilisateurs sans envoyer de courrier électronique de confirmation? Je peux me débarrasser de l'email, mais je dois aussi supprimer le lien d'activation, il faut que les utilisateurs soient automatiquement ajoutés.

J'ai cherché des hameçons mais je n'ai rien trouvé d'utile, pas d'idées ?.

P.S. Chaque utilisateur est ajouté à partir du menu Ajouter un nouvel utilisateur dans le backend.

5
Mario

Je n'ai pas vraiment testé cela, mais WP utilise ce filtre si vous cochez la case "noconfirmation", sauf qu'il ne le fait que pour les super_admins, comme vous l'avez dit:

add_filter( 'wpmu_signup_user_notification', '__return_false' );
2
Tomas Buteler

Je pense avoir compris comment faire cela sans modifier aucun fichier de base. J'ai fait fonctionner les choses (avec un minimum de tests) en utilisant les éléments suivants:

add_filter('wpmu_signup_user_notification', 'auto_activate_users', 10, 4);
function auto_activate_users($user, $user_email, $key, $meta){
  wpmu_activate_signup($key);
  return false;
}

La case à cocher est toujours présente sur la page, mais elle n’a aucun effet.

En passant, j'ai complètement désactivé les emails pour mon installation wordpress en écrasant la fonction wp_mail:

function wp_mail($to, $subject, $message, $headers = '', $attachments = array() ){
  return true;
}

Cela a donc pu, d'une certaine manière, permettre à mon auto_activate de fonctionner sans envoyer de courrier électronique.

1
William