web-dev-qa-db-fra.com

Comment copier tous les utilisateurs sur un site nouvellement créé sur un réseau multisite dans Wordpress?

Comme lorsque je crée un nouveau site sur un réseau wordpress multisite, seul l'utilisateur administrateur est créé. Je souhaite que tous les utilisateurs présents sur mon premier site soient également présents. J'ai essayé plusieurs plugins d'importation et d'exportation de csv, mais rien ne fonctionne bien. Y a-t-il un autre plugin?

1
giving_the_world

Je suppose que j'ai trouvé la solution parfaite pour cela. Il existe un plugin appelé Gestion des utilisateurs multisites . Il fait facilement la tâche.

Il suffit de l'activer et d'aller dans Admin Réseau -> Paramètres -> Paramètres réseau

Ensuite, il y aura une section appelée Gestion des utilisateurs multisites . Attribuez simplement le rôle (à attribuer aux utilisateurs) pour ce site particulier. Et enregistrez-le, tous les utilisateurs seront automatiquement copiés sur le nouveau site.

0
giving_the_world

Comment ajouter un utilisateur à un blog?

Vous pouvez utiliser la fonction add_user_to_blog pour le faire. Après le Codex, il:

Accorde les autorisations utilisateur spécifiées pour le rôle spécifié sur le blog spécifié.

Et vous l'utilisez comme ceci:

add_user_to_blog($blog_id, $user_id, $role);

Comment le faire automatiquement?

Vous voulez le faire automatiquement, quand un nouveau site est créé, vous devrez donc écrire du code et utiliser wpmu_new_blog hook.

Voici la liste de ses paramètres:

  • $ blog_id (int) (facultatif) ID de blog du blog créé.
  • $ user_id (int) (obligatoire) ID utilisateur de l'utilisateur créant le blog.
  • $ domain (chaîne) (facultatif) Domaine utilisé pour le nouveau blog.
  • $ chemin (chaîne) (facultatif) Chemin du nouveau blog.
  • $ site_id (int) (facultatif) ID de site. Ne concerne que les installations multi-réseaux.
  • $ meta (tableau) (facultatif) métadonnées. Utilisé pour définir les options initiales du site.

Donc, dans votre cas, vous pouvez l'utiliser comme suit:

function add_users_to_new_blog( $blog_id, $user_id, $domain, $path, $site_id, $meta ) {
    // get users you want to add to new blog
    $users_to_add = new WP_User_Query( array( 'blog_id' => 1 ) );  // <-- change that 1 to proper blog id

    foreach ( $users_to_add->get_results() as $user ) {
        add_user_to_blog( $blog_id, $user->ID, 'administrator' );  // <-- change administrator to any role you need
    }
}
add_action( 'wpmu_new_blog', 'add_users_to_new_blog', 10, 6 );
0
Krzysiek Dróżdż