Après de nombreuses recherches sur le net, je n'ai pas trouvé de solution qui fonctionne.
Savez-vous comment puis-je faire cela sur woocommerce:
J'essaye ça pour le moment:
function cm_redirect_users_by_role() {
$current_user = wp_get_current_user();
$role_name = $current_user->roles[0];
if ( is_products_page() && is_single() ){
if ( $role_name === 'customer' ) {
wp_redirect( 'https://www.mysite.fr/shop/' );
} // if
else {
wp_redirect( 'https://www.mysite.fr/' );
} //
}
} // cm_redirect_users_by_role
add_action( 'admin_init', 'cm_redirect_users_by_role' );
Mais cela ne fonctionne pas:/lorsque je suis sur une seule page de produit, je ne suis pas redirigé.
Voici le résultat qui fonctionne, je mets dans la condition: is_product()
pour vérifier si est une seule page de produit. Et j'ai changé dans la add_action()
: admin_init by wp
function cm_redirect_users_by_role() {
$current_user = wp_get_current_user();
$role_name = $current_user->roles[0];
if ( is_product() ){
if ( $role_name !== 'customer' && $role_name !== 'shop_manager' && $role_name !== 'dc_vendor') {
wp_redirect( 'https://www.mysite.fr/' );
} // if
}
} // cm_redirect_users_by_role
add_action( 'wp', 'cm_redirect_users_by_role' );