Je suis en train de configurer un réseau multisite Wordpress, dans lequel les utilisateurs peuvent s'abonner à un ou plusieurs services du site principal et avoir accès au contenu de leur sous-site. L'accès sur le sous-site dépendra du service auquel ils sont abonnés sur le site principal.
Ce que je veux faire en utilisant du code, c’est quand un utilisateur s’inscrit sur le site principal, je peux ajouter cet utilisateur au sous-site et ajouter un attribut/métadonnées pour définir l’accès de l’utilisateur sur le sous-site (peut-être que je vais utiliser memberpress gérer l'accès)
Ma question principale est de savoir quel code peut être utilisé pour ajouter un utilisateur à un sous-site lorsqu’il se connecte au site principal.
Exécutez add_user_to_blog()
après la création de l'utilisateur.
Vous pouvez vous connecter à user_register()
pour obtenir l'ID utilisateur nouvellement créé et le transmettre, ainsi que toute affectation conditionnelle à votre rappel qui exécute add_user_to_blog()
.
Je complète la réponse de @hwl :
La plupart du temps, dans une instance multisite de WordPress, l'enregistrement de l'utilisateur comprend une étape d'activation.
Dans ce cas, il est nécessaire d’attacher des actions sur wpmu_activate_user
; les actions accrochées à user_register
seront ignorées. Par exemple:
my_function($user_id) {
// to add a user to main site (id=1) as a subscriber add_user_to_blog can be used
// more info: https://codex.wordpress.org/Function_Reference/add_user_to_blog
add_user_to_blog( '1', $user_id, 'subscriber' );
}
add_action('wpmu_activate_user','my_function',10,1);