• Hola, actualmente he logrado que un menú sea variable entre usuarios con sesión iniciada y los que son visitantes; pero requiero que cuando un rol en especifico entre, se le muestre otro menú diferente al de usuarios conectados. El código que he utilizado es el siguiente:

    //Esta función cambia el titulo del menú según el nickname de usuario
    add_filter( 'wp_nav_menu_objects', 'my_dynamic_menu_items' );
    
    function my_dynamic_menu_items( $menu_items ) {
    	$final_menu = [];
        foreach ( $menu_items as $menu_item ) {
            if ( '#profile_name#' == $menu_item->title ) {
            	 $user=wp_get_current_user();
            	if ( $user->ID ){
            		 $menu_item->title = $user->nickname;
            		 $final_menu[] = $menu_item;
                }
            } else {
            	$final_menu[] = $menu_item;
            }
            
            
        }
        return $final_menu;
    }
    
    /Esta función itera entre 2 menús
    function dcms_menu_dinamico( $args ) {
    
    	if ( $args['menu_id'] == 'menu-1-c9f1ea4'){
    
    		if ( is_user_logged_in() ) {
    			$args['menu'] = 'Usuario';
    		} else {
    			$args['menu'] = 'Visitante';
    		}
    
    	}
    
    	return $args;
    }
    
    add_filter( 'wp_nav_menu_args', 'dcms_menu_dinamico' );

    Entonces según yo se puede añadir otro ciclo if para iterar entre 3 menús, pero el 3er menú lo quiero mostrar a un rol en especifico llamado «UsuarioPro», pero no lo consigo. ¿Alguna idea?, saludos!

    • Este debate fue modificado hace 4 años, 1 mes por VORAg.
  • El debate ‘Diferentes Menus por usuario y rol’ está cerrado a nuevas respuestas.