【问题标题】:Page submenu is not shown for custom user role on Wordpress admin page (WooCommerce)Wordpress 管理页面 (WooCommerce) 上的自定义用户角色未显示页面子菜单
【发布时间】:2021-05-22 15:10:33
【问题描述】:

我使用以下代码重新命名了 WooCommerce 产品顶级菜单并将其移动到主 WooCommerce 选项卡下方:

 $products = recursive_array_search_php_91365( 'Products', $menu );
 unset ($menu[$products]);
 add_submenu_page('woocommerce', 'Donation Options', 'Donation Options', 'manage_options, products', '/edit.php?post_type=product');

递归数组搜索函数是从this page拉出来的。

我的自定义用户角色是通过用户角色编辑器插件创建和管理的。所需的菜单会显示给管理员,但不会显示给我的自定义用户角色。我查了一下,这个用户可以访问被回调的页面,所以我不确定为什么它没有显示在菜单中。

有什么想法吗?

【问题讨论】:

    标签: wordpress woocommerce


    【解决方案1】:

    作为add_submenu_page 函数的$capability,您将传递manage_options因此只有超级管理员或管理员才能查看。请参阅here 了解更多信息。

    所以要让它也显示给具有自定义角色的用户你需要替换 manage_options 你的自定义用户角色的能力

    这是一个完整的列表:

    能力字段有语法错误,应该是这样的:

    add_submenu_page( 'woocommerce', 'Donation Options', 'Donation Options', 'manage_options', 'products', '/edit.php?post_type=product' );
    

    您还必须将/edit.php?post_type=product 替换为回调函数的名称,否则您将收到以下警告:

    Warning: call_user_func_array() expects parameter 1 to be a valid callback, function '/edit.php?post_type=product' not found or invalid function name
    

    【讨论】:

    • 完美,谢谢。我只是复制并粘贴了 add_submenu_page 函数,不明白“manage_options”参数的作用。我将其更改为“编辑器”,现在效果很好。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-03-25
    • 1970-01-01
    • 1970-01-01
    • 2020-08-08
    • 1970-01-01
    • 2019-03-08
    • 1970-01-01
    相关资源
    最近更新 更多