已尝试创建只能编辑用户信息的用户角色,但我的测试帐户无法查看仪表板。我遗漏了什么?

时间:2017-05-25 作者:McOwen

我们的一个网站包括一个在线商店,与电话销售一起,这是客户购买我们产品的两种方式之一。我们所有的客户信息都存储在一个名为Orderwise的程序中,该程序为每个客户分配一个唯一的数字代码。现在,我们已经设置了向网站上的用户信息中添加Orderwise编号的功能,因此我一直在尝试设置一个角色,该角色将允许销售部门进入仪表板,但仅允许他们手动编辑用户信息和添加Orderwise编号,并查看WooCommerce信息,如订单。因此,我通过插件创建了一个具有以下功能的角色;

edit_users

list_users

read

read_private_pages

read_private_posts

read_private_products

read_private_shop_coupons

read_private_shop_orders

read_private_shop_webhooks

read_product

read_shop_coupon

read_shop_order

read_shop_webhook

view_woocommerce_reports
然后,我将此角色分配给一个虚拟测试帐户,并尝试通过wp admin登录该帐户。这允许我像客户一样以公共站点用户身份登录,但不能访问仪表板和编辑用户信息。

我的角色缺少哪些能力?这些可能相互冲突吗?

3 个回复
SO网友:McOwen

我搞定了!我继续并复制了一个现有的角色,删掉了所有我认为我的销售角色不需要的废话。最后,我以;

 assign_product_terms
 assign_shop_coupon_terms
 assign_shop_order_terms
 assign_shop_webhook_terms
 connections_view_public
 delete_others_products
 delete_others_shop_coupons
 delete_others_shop_orders
 delete_others_shop_webhooks
 delete_private_products
 delete_private_shop_coupons
 delete_private_shop_orders
 delete_private_shop_webhooks
 delete_product
 delete_product_terms
 delete_products
 delete_published_products
 delete_published_shop_coupons
 delete_published_shop_orders
 delete_published_shop_webhooks
 delete_shop_coupon
 delete_shop_coupon_terms
 delete_shop_coupons
 delete_shop_order
 delete_shop_order_terms
 delete_shop_orders
 delete_shop_webhook
 delete_shop_webhook_terms
 delete_shop_webhooks
 edit_others_products
 edit_others_shop_coupons
 edit_others_shop_orders
 edit_others_shop_webhooks
 edit_private_products
 edit_private_shop_coupons
 edit_private_shop_orders
 edit_private_shop_webhooks
 edit_product
 edit_product_terms
 edit_products
 edit_published_products
 edit_published_shop_coupons
 edit_published_shop_orders
 edit_published_shop_webhooks
 edit_shop_coupon
 edit_shop_coupon_terms
 edit_shop_coupons
 edit_shop_order
 edit_shop_order_terms
 edit_shop_orders
 edit_shop_webhook
 edit_shop_webhook_terms
 edit_shop_webhooks
 edit_users
 list_users
 manage_links
 manage_product_terms
 manage_shop_coupon_terms
 manage_shop_order_terms
 manage_shop_webhook_terms
 manage_woocommerce
 publish_products
 publish_shop_coupons
 publish_shop_orders
 publish_shop_webhooks
 read
 read_private_pages
 read_private_posts
 read_private_products
 read_private_shop_coupons
 read_private_shop_orders
 read_private_shop_webhooks
 read_product
 read_shop_coupon
 read_shop_order
 read_shop_webhook
 unfiltered_html
 view_woocommerce_reports
而且,就像魔术一样,这个新版本的销售角色现在可以访问仪表板,只能访问WooCommerce、Products和Users窗格。

如果有人感兴趣,我一直在使用User Role Editor 用于创建和编辑用户角色的插件。

SO网友:Carly

您的销售人员可能不需要unfiltered_html 能力。

https://codex.wordpress.org/Roles_and_Capabilities#unfiltered_html,

允许用户在页面、帖子、注释和小部件中发布HTML标记甚至JavaScript代码。

注意:为不受信任的用户启用此选项可能会导致他们发布恶意或格式错误的代码。

SO网友:Rahmat Baghdadi

您无需提供对WooCommerce的访问权限即可授予仪表板访问权限。这正是WooCoommerce喜欢的。您可以使用以下函数覆盖:

function _wc_disable_admin_bar($prevent_admin_access) {
    if (!current_user_can(\'customer\') and !current_user_can(\'shop_manager\')) {
        return $prevent_admin_access;
    }
    return false;
};
add_filter(\'woocommerce_disable_admin_bar\', \'_wc_disable_admin_bar\', 10, 1);
function _wc_prevent_admin_access($prevent_admin_access) {
    if (!current_user_can(\'customer\') and !current_user_can(\'shop_manager\')) {
        return $prevent_admin_access;
    }
    return false;
};
add_filter(\'woocommerce_prevent_admin_access\', \'_wc_prevent_admin_access\', 10, 1);

结束

相关推荐