Ajout de compte pour tous les sites, possible? (Créer un compte)

  • WordPress :6.2
  • Statut : non résolu
6 sujets de 1 à 6 (sur un total de 6)
  • Auteur
    Messages
  • #2460031
    test3@vitamine-c.ch
    Participant
    Initié WordPress
    19 contributions

    Bonjour,

    Ma configuration WP actuelle

    • Version de PHP/MySQL : PHP 8.1
    • Thème utilisé : Twenty Twenty-Three
    • Extensions en place : aucun
    • Nom de l’hébergeur :
    • Adresse du site :

    Problème(s) rencontré(s) :

    Bonjour,

    Je souhaite partager une réflexion concernant WordPress Multisite. Lorsqu’une installation Multisite est créée, il est important de noter qu’elle partage une base de données unique. Mon objectif est d’assurer que lorsqu’un utilisateur s’inscrit sur l’un de mes sites, ce compte puisse être utilisé sur l’ensemble des sites de l’installation.

    Le problème auquel je fais face est que par défaut, chaque site créé gère ses propres utilisateurs, ce qui complique la gestion unifiée des comptes.

    Je sollicite donc des suggestions ou du code, le cas échéant, qui me permettraient de résoudre cette problématique et de permettre aux utilisateurs de bénéficier d’un accès partagé à l’ensemble des sites de mon réseau WordPress Multisite.

    Je vous remercie à l’avance pour votre aide.

    Bonne journée.
    DDX

    #2460059
    momofr@free.fr
    Modérateur
    Maître WordPress
    6895 contributions

    Salut, je vois cette vidéo qui parle de la gestion des comptes utilisateurs en multisites, peut être des pistes à explorer…

    #2461144
    Creation Site Internet
    Participant
    Padawan WordPress
    71 contributions

    Bonjour,

    Le problème que vous rencontrez est commun dans les installations WordPress Multisite. Par défaut, chaque site subsite gère effectivement ses propres utilisateurs. Cependant, tous les utilisateurs sont en réalité stockés dans la même base de données, dans la table wp_users. Les capacités et rôles des utilisateurs pour chaque subsite sont gérés dans la table wp_usermeta.

    Pour que chaque utilisateur puisse accéder à tous les subsites sans avoir à s’inscrire à nouveau, vous pouvez suivre ces étapes :

    1. Plugin User Role Editor :
      • Installez et activez le plugin User Role Editor.
      • Avec ce plugin, vous pouvez attribuer des rôles aux utilisateurs pour plusieurs sites en une seule fois.
    2. Synchroniser les utilisateurs manuellement : Si vous ne souhaitez pas utiliser de plugin, vous pouvez synchroniser les utilisateurs en ajoutant un peu de code. Vous pouvez l’ajouter dans le fichier functions.php de votre thème ou mieux, dans un plugin personnalisé.
    function ajouter_utilisateur_a_tous_les_sites( $user_id ) {
    $current_user = get_userdata( $user_id );
    $user_role = reset( $current_user->roles );

    $blogs = get_sites();
    foreach ( $blogs as $blog ) {
    switch_to_blog( $blog->blog_id );
    $current_roles = get_user_meta( $user_id, 'wp_' . $blog->blog_id . '_capabilities', true );

    if ( empty( $current_roles ) ) {
    // Ajoute l'utilisateur au site s'il n'en fait pas déjà partie
    add_user_to_blog( $blog->blog_id, $user_id, $user_role );
    }

    restore_current_blog();
    }
    }
    add_action( 'user_register', 'ajouter_utilisateur_a_tous_les_sites' );

    Ce code utilise l’action user_register, qui est déclenchée chaque fois qu’un nouvel utilisateur s’inscrit. Il ajoute ensuite cet utilisateur à tous les subsites avec son rôle d’origine.

    1. Plugins dédiés : Il existe aussi des plugins dédiés qui peuvent aider à synchroniser les utilisateurs à travers les subsites, comme Multisite User Sync. Il se charge de synchroniser les utilisateurs, leurs rôles, et leurs métadonnées à travers tous les sites d’une installation Multisite.

    J’espère que cela vous aidera à mettre en place une gestion unifiée des utilisateurs sur votre installation WordPress Multisite.

    Bonne continuation !

    #2461150
    test3@vitamine-c.ch
    Participant
    Initié WordPress
    19 contributions

    Bonjour,

    Merci beaucoup pour cette brillante réponse.

    Pour l’option 02:
    « Vous pouvez l’ajouter dans le fichier functions.php de votre thème ou mieux, dans un plugin personnalisé. »

    Je dois ajouter dans tous les thèmes ?
    Que veux-tu dire « dans un plugin personnalisé » ?

     

    Un grand merci et une belle soirée.
    DDX

     

    #2461153
    Creation Site Internet
    Participant
    Padawan WordPress
    71 contributions

    reBonjour,

    Pour répondre à vos questions :

    1. Fichier functions.php : Si vous ajoutez le code au fichier functions.php de votre thème, il est conseillé de l’ajouter uniquement dans le thème principal (ou parent) de votre installation Multisite. Si chaque subsite utilise un thème différent, alors oui, il faudrait ajouter ce code à chaque thème. Cependant, cette méthode présente des inconvénients, notamment le fait que si vous mettez à jour ou changez le thème, vous risquez de perdre les modifications.
    2. Plugin personnalisé : Lorsque je parle d’un « plugin personnalisé », je fais référence à la création d’un petit plugin spécifique pour votre site, dont le seul objectif serait d’ajouter cette fonctionnalité de synchronisation des utilisateurs. L’avantage de cette méthode est qu’elle est indépendante du thème que vous utilisez. Ainsi, même si vous changez de thème ou le mettez à jour, la fonctionnalité restera active.

      Pour créer un plugin personnalisé :

      a. Créez un nouveau dossier dans wp-content/plugins/, par exemple synchronisation-utilisateurs.

      b. À l’intérieur de ce dossier, créez un fichier, par exemple synchronisation-utilisateurs.php.

      c. Ouvrez ce fichier avec un éditeur de texte et ajoutez-y un en-tête de plugin basique :

      <?php
      /*
      Plugin Name: Synchronisation des Utilisateurs Multisite
      Description: Synchronise automatiquement les utilisateurs à travers tous les subsites.
      Version: 1.0
      Author: DDX
      */

      d. Sous cet en-tête, ajoutez le code que je vous ai fourni précédemment.

      e. Enregistrez le fichier, puis rendez-vous dans le tableau de bord WordPress, section « Extensions », et activez votre nouveau plugin.

    Cette seconde option est généralement préférée par les développeurs et administrateurs car elle garantit que la fonctionnalité ne sera pas perdue en cas de changement ou de mise à jour du thème.

    Bonne continuation et n’hésitez pas si vous avez d’autres questions !

    #2461280
    test3@vitamine-c.ch
    Participant
    Initié WordPress
    19 contributions

    Un grand MERCI

    En créant ce plugin, est-ce que je dois du coup l’activer sur tous mes sites (pour rappel, WP multisite)

    De plus, si par la suite j’ajoute le plugin Plugin User Role Editor  pensez-vous qu’il y aura un problème de compatibilité? La version basique ne supporte pas les sites Multisites.

    Merci pour tes brillantes réponses

    DDX

6 sujets de 1 à 6 (sur un total de 6)
  • Vous devez être connecté pour répondre à ce sujet.