/ / Wie kann man nur Wocommerce-Bestellungen anzeigen, indem man alle Menüs in WordPress für eine benutzerdefinierte Benutzerrolle ausblendet? - PHP, WordPress, Woocommerce, Menü, Bestellungen

Wie werden nur Wocommerce-Aufträge angezeigt, indem alle Menüs in WordPress für die benutzerdefinierte Benutzerrolle ausgeblendet werden? - PHP, WordPress, Woocommerce, Menü, Bestellungen

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 № 1

Sie 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;
}