代码中有错误
首先,您正在使用current_user_can()
以错误的方式运行。它有两个参数-$capability
和$object_id
. 您不需要后者,因此,在您的情况下:
current_user_can(\'subscriber\')
在我看来,最好使用
capability
而不是
user role
在此函数中。例如,订阅者不能编辑帖子,这与其他用户角色不同,因此我要更改
\'subscriber\'
到
\'edit_posts\'
:
其次if
条件您的代码表示用户必须登录或其角色must not be
订阅者。听起来应该像用户必须登录并且must be not a
订阅者。
add_filter( \'wpmenucart_menu_item_wrapper\', \'wpmenucart_hide_for_visitors\', 10, 1 );
function wpmenucart_hide_for_visitors( $menu_item_li )
{
// user is logged in AND his role is higher than a subscriber
if ( is_user_logged_in() && current_user_can(\'edit_posts\') ) {
return $menu_item_li;
} else {
return;
}
}
请参见
current_user_can 在法典中。