Comment mettre à jour le rôle d'utilisateur sans se déconnecter
Je travaille sur un projet wordpress avec les plugins suivants:
- Woocommerce
- Les fournisseurs de produits Woocommerce
- Gestionnaire de travaux WP
- Wp Job Manager produits
J'essaie de mettre à niveau le rôle d'utilisateur après l'ajout d'un travail, afin que l'utilisateur puisse accéder à wp-admin et modifier son propre produit.
L'utilisateur peut maintenant être mis à niveau vers son tableau de bord fournisseur mais le problème est qu'il doit se connecter/se déconnecter pour la première fois afin de mettre à jour ses rôles et pouvoir accéder au tableau de bord.
Voici ce que j'ai essayé:
$current_user = wp_get_current_user();
//Code 1 :
$user_id = wp_update_user( array( 'ID' => $current_user->ID, 'role' => 'wc_product_vendors_manager_vendor' ) );
//Code 2 :
$user = new WP_User( $current_user->ID );
$user->remove_role( 'customer' );
$user->set_role( 'wc_product_vendors_manager_vendor' );
//Code 3 : ( this will make the user with 2 roles )
$current_user->add_role( 'wc_product_vendors_manager_vendor' );
Est-il possible d'y parvenir en supprimant le wp_cache_delete ... quelqu'un connaît-il une bonne solution pour mettre à niveau les rôles d'utilisateur sans se connecter/se déconnecter?
Merci pour votre aide!
Je pense que vous êtes sur la bonne voie, wp_cache_delete
est ce qui m’a finalement aidé à obtenir une connexion automatique avec le plug-in de connexion automatique qui fonctionne ... j’ai ceci à partir de là:
wp_cache_delete($current_user->ID, 'users');
wp_cache_delete($current_user->user_login, 'userlogins');
Ensuite, voyez quels rôles vous obtenez après cela avec:
$current_user = wp_get_current_user();
Avez-vous essayé de vous connecter après les modifications?
Tel que:
wp_set_current_user( $current_user->ID, $current_user->user_login );
wp_set_auth_cookie( $current_user->ID );
do_action( 'wp_login', $current_user->user_login );