Wie kann ich alle Menüs in Wordpress mit Ausnahme von Woocommerce-Bestellungen für eine bestimmte benutzerdefinierte Benutzerrolle, d. H. Agent, ausblenden? Hier ist mein Code:
$role = "agent";
$display_name = "Agent";
$capabilities = array(
"read" => true, // Allows a user to read
"create_posts" => true, // Allows user to create new posts
"edit_posts" => true, // Allows user to edit their own posts
"edit_others_posts" => true, // Allows user to edit others posts too
"publish_posts" => true, // Allows the user to publish posts
"manage_categories" => true,
);
add_role( $role, $display_name, $capabilities );
Antworten:
0 für die Antwort № 1Sie können so etwas tun. Dadurch wird der mit der Seiten-ID verknüpfte Menüpunkt ausgeblendet 7 und Menüname "Main"Wenn ein Benutzer keine Berechtigung hat Publish_posts.
add_filter( "wp_get_nav_menu_items", "hide_nav_menu_items", 10, 2 );
function hide_nav_menu_items( $menu_items, $menu ) {
$menu_name = "main";
$page_id_to_hide = 7;
if ( $menu->slug == $menu_name ) {
if( ! current_user_can("publish_posts") ) {
foreach( $menu_items as $key => $menu_item ) {
if( $menu_item->object_id == $page_id_to_hide )
unset( $menu_items[$key] );
}
}
}
return $menu_items;
}