Nach vielen Recherchen im Internet habe ich keine Lösung gefunden, die funktioniert.
Wissen Sie, wie ich das im Woocommerce machen kann:
Ich versuche das im 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' );
Aber das geht nicht:/Wenn ich auf einer einzelnen Produktseite bin, werde ich nicht weitergeleitet.
Hier ist das Ergebnis, das funktioniert. Ich setze die Bedingung ein: is_product()
, um zu überprüfen, ob es sich um eine einzelne Produktseite handelt. Und ich habe in der add_action()
geändert: admin_init von 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' );