Comprobar si es una "página de producto individual" y verificar el "rol" para una redirección

13 jun 2017, 14:17:06
Vistas: 113K
Votos: 10

Después de mucha investigación en la red, no he encontrado una solución que funcione.

¿Sabes cómo puedo hacer esto en WooCommerce?

Por el momento estoy intentando esto:

function cm_redirect_users_by_role() {

    $current_user   = wp_get_current_user();
    $role_name      = $current_user->roles[0];

    // Si es una página de productos y es un producto individual
    if ( is_products_page() && is_single() ){
        if ( $role_name === 'customer' ) {
            wp_redirect( 'https://www.mysite.fr/shop/' );
        } // si es cliente
        else {
            wp_redirect( 'https://www.mysite.fr/' );
        } // si no es cliente
    }
} // cm_redirect_users_by_role
add_action( 'admin_init', 'cm_redirect_users_by_role' );

Pero no funciona :/ cuando estoy en una página de producto individual, no me redirecciona.

0
Todas las respuestas a la pregunta 1
1
16

Aquí está el resultado que funciona, agregué la condición: is_product() para verificar si es una página de producto individual. Y cambié en el add_action() : admin_init por 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' );
13 jun 2017 16:56:16
Comentarios

Hola, por favor considera usar la misma cuenta para publicar, comentar, responder, etc.

Johansson Johansson
14 jun 2017 02:54:01