Woocommerce 自定义角色重定向到商店登陆页面
Woocommerce Custom Role Redirects to Shop Landing Page
大家好,我创建了一个非常简单的 'order_manager' 角色,应该只能查看和编辑订单。代码如下:
// Add a custom Order Manager
add_role(
'order_manager',
__( 'Order Manager' ),
array(
'read_shop_order' => true,
'edit_shop_order' => true,
)
);
我可以在管理面板中分配这个角色并且这个人接受了邀请,但是当他们去登录时,它会将他们重定向到站点的登录页面('/' 路由)!我从 https://www.role-editor.com/woocommerce-view-edit-orders/ 中获取 $capabilities 并避免使用任何插件 :) 我将 link 中的图片放大为 "Orders",他们列出了所有订单类型,并进行了自定义用户直接从那里。我还在隐身模式下完成了此操作,删除了用户并重新添加了他们,并通过管理面板将用户从任何现有会话中注销。
EDIT 我已经在两个电子邮件地址中确认了这种行为。新用户和当前用户的角色变化。我还在角色中添加了 'read' => 'true' 。仍然将 302 转到商店的主页(不是管理面板)
编辑 2 看起来这些是错误的 $capabilities,让他们可以访问管理面板中的订单。我只是让他们能够查看自己的未结订单……任何人都知道让他们在管理仪表板中查看订单的正确功能吗? :)
编辑 3 我 运行 将以下内容通过管道传递给管理员屏幕
$data = get_userdata( get_current_user_id() );
if ( is_object( $data) ) {
$current_user_caps = $data->allcaps;
// print it to the screen
echo '<pre>' . print_r( $current_user_caps, true ) . '</pre>';
}
所以这吐出了 woocommerce 的所有管理员角色。我现在的问题是如何更轻松地获取这些数据?是否有像 place WP 这样的终端可以回显响应?这太丑了,在我的管理页面(然后更新 functions.php)又消失了。你怎样才能最大限度地减少那里的周期?
将来,woocommerce 中的所有管理员权限都是:
Array
(
[switch_themes] =>; 1
[edit_themes] =>; 1
[activate_plugins] =>; 1
[edit_plugins] =>; 1
[edit_users] =>; 1
[edit_files] =>; 1
[manage_options] =>; 1
[moderate_comments] =>; 1
[manage_categories] =>; 1
[manage_links] =>; 1
[upload_files] =>; 1
[import] =>; 1
[unfiltered_html] =>; 1
[edit_posts] =>; 1
[edit_others_posts] =>; 1
[edit_published_posts] =>; 1
[publish_posts] =>; 1
[edit_pages] =>; 1
[read] =>; 1
[level_10] =>; 1
[level_9] =>; 1
[level_8] =>; 1
[level_7] =>; 1
[level_6] =>; 1
[level_5] =>; 1
[level_4] =>; 1
[level_3] =>; 1
[level_2] =>; 1
[level_1] =>; 1
[level_0] =>; 1
[edit_others_pages] =>; 1
[edit_published_pages] =>; 1
[publish_pages] =>; 1
[delete_pages] =>; 1
[delete_others_pages] =>; 1
[delete_published_pages] =>; 1
[delete_posts] =>; 1
[delete_others_posts] =>; 1
[delete_published_posts] =>; 1
[delete_private_posts] =>; 1
[edit_private_posts] =>; 1
[read_private_posts] =>; 1
[delete_private_pages] =>; 1
[edit_private_pages] =>; 1
[read_private_pages] =>; 1
[delete_users] =>; 1
[create_users] =>; 1
[unfiltered_upload] =>; 1
[edit_dashboard] =>; 1
[update_plugins] =>; 1
[delete_plugins] =>; 1
[install_plugins] =>; 1
[update_themes] =>; 1
[install_themes] =>; 1
[update_core] =>; 1
[list_users] =>; 1
[remove_users] =>; 1
[promote_users] =>; 1
[edit_theme_options] =>; 1
[delete_themes] =>; 1
[export] =>; 1
[manage_woocommerce] =>; 1
[view_woocommerce_reports] =>; 1
[edit_product] =>; 1
[read_product] =>; 1
[delete_product] =>; 1
[edit_products] =>; 1
[edit_others_products] =>; 1
[publish_products] =>; 1
[read_private_products] =>; 1
[delete_products] =>; 1
[delete_private_products] =>; 1
[delete_published_products] =>; 1
[delete_others_products] =>; 1
[edit_private_products] =>; 1
[edit_published_products] =>; 1
[manage_product_terms] =>; 1
[edit_product_terms] =>; 1
[delete_product_terms] =>; 1
[assign_product_terms] =>; 1
[edit_shop_order] =>; 1
[read_shop_order] =>; 1
[delete_shop_order] =>; 1
[edit_shop_orders] =>; 1
[edit_others_shop_orders] =>; 1
[publish_shop_orders] =>; 1
[read_private_shop_orders] =>; 1
[delete_shop_orders] =>; 1
[delete_private_shop_orders] =>; 1
[delete_published_shop_orders] =>; 1
[delete_others_shop_orders] =>; 1
[edit_private_shop_orders] =>; 1
[edit_published_shop_orders] =>; 1
[manage_shop_order_terms] =>; 1
[edit_shop_order_terms] =>; 1
[delete_shop_order_terms] =>; 1
[assign_shop_order_terms] =>; 1
[edit_shop_coupon] =>; 1
[read_shop_coupon] =>; 1
[delete_shop_coupon] =>; 1
[edit_shop_coupons] =>; 1
[edit_others_shop_coupons] =>; 1
[publish_shop_coupons] =>; 1
[read_private_shop_coupons] =>; 1
[delete_shop_coupons] =>; 1
[delete_private_shop_coupons] =>; 1
[delete_published_shop_coupons] =>; 1
[delete_others_shop_coupons] =>; 1
[edit_private_shop_coupons] =>; 1
[edit_published_shop_coupons] =>; 1
[manage_shop_coupon_terms] =>; 1
[edit_shop_coupon_terms] =>; 1
[delete_shop_coupon_terms] =>; 1
[assign_shop_coupon_terms] =>; 1
[administrator] =>; 1
)
如上所示,问题显然是我不了解角色的权限。我已将它们张贴在上面,希望它能帮助下一个偶然发现此问题的人!
大家好,我创建了一个非常简单的 'order_manager' 角色,应该只能查看和编辑订单。代码如下:
// Add a custom Order Manager
add_role(
'order_manager',
__( 'Order Manager' ),
array(
'read_shop_order' => true,
'edit_shop_order' => true,
)
);
我可以在管理面板中分配这个角色并且这个人接受了邀请,但是当他们去登录时,它会将他们重定向到站点的登录页面('/' 路由)!我从 https://www.role-editor.com/woocommerce-view-edit-orders/ 中获取 $capabilities 并避免使用任何插件 :) 我将 link 中的图片放大为 "Orders",他们列出了所有订单类型,并进行了自定义用户直接从那里。我还在隐身模式下完成了此操作,删除了用户并重新添加了他们,并通过管理面板将用户从任何现有会话中注销。
EDIT 我已经在两个电子邮件地址中确认了这种行为。新用户和当前用户的角色变化。我还在角色中添加了 'read' => 'true' 。仍然将 302 转到商店的主页(不是管理面板)
编辑 2 看起来这些是错误的 $capabilities,让他们可以访问管理面板中的订单。我只是让他们能够查看自己的未结订单……任何人都知道让他们在管理仪表板中查看订单的正确功能吗? :)
编辑 3 我 运行 将以下内容通过管道传递给管理员屏幕
$data = get_userdata( get_current_user_id() );
if ( is_object( $data) ) {
$current_user_caps = $data->allcaps;
// print it to the screen
echo '<pre>' . print_r( $current_user_caps, true ) . '</pre>';
}
所以这吐出了 woocommerce 的所有管理员角色。我现在的问题是如何更轻松地获取这些数据?是否有像 place WP 这样的终端可以回显响应?这太丑了,在我的管理页面(然后更新 functions.php)又消失了。你怎样才能最大限度地减少那里的周期?
将来,woocommerce 中的所有管理员权限都是:
Array
(
[switch_themes] =>; 1
[edit_themes] =>; 1
[activate_plugins] =>; 1
[edit_plugins] =>; 1
[edit_users] =>; 1
[edit_files] =>; 1
[manage_options] =>; 1
[moderate_comments] =>; 1
[manage_categories] =>; 1
[manage_links] =>; 1
[upload_files] =>; 1
[import] =>; 1
[unfiltered_html] =>; 1
[edit_posts] =>; 1
[edit_others_posts] =>; 1
[edit_published_posts] =>; 1
[publish_posts] =>; 1
[edit_pages] =>; 1
[read] =>; 1
[level_10] =>; 1
[level_9] =>; 1
[level_8] =>; 1
[level_7] =>; 1
[level_6] =>; 1
[level_5] =>; 1
[level_4] =>; 1
[level_3] =>; 1
[level_2] =>; 1
[level_1] =>; 1
[level_0] =>; 1
[edit_others_pages] =>; 1
[edit_published_pages] =>; 1
[publish_pages] =>; 1
[delete_pages] =>; 1
[delete_others_pages] =>; 1
[delete_published_pages] =>; 1
[delete_posts] =>; 1
[delete_others_posts] =>; 1
[delete_published_posts] =>; 1
[delete_private_posts] =>; 1
[edit_private_posts] =>; 1
[read_private_posts] =>; 1
[delete_private_pages] =>; 1
[edit_private_pages] =>; 1
[read_private_pages] =>; 1
[delete_users] =>; 1
[create_users] =>; 1
[unfiltered_upload] =>; 1
[edit_dashboard] =>; 1
[update_plugins] =>; 1
[delete_plugins] =>; 1
[install_plugins] =>; 1
[update_themes] =>; 1
[install_themes] =>; 1
[update_core] =>; 1
[list_users] =>; 1
[remove_users] =>; 1
[promote_users] =>; 1
[edit_theme_options] =>; 1
[delete_themes] =>; 1
[export] =>; 1
[manage_woocommerce] =>; 1
[view_woocommerce_reports] =>; 1
[edit_product] =>; 1
[read_product] =>; 1
[delete_product] =>; 1
[edit_products] =>; 1
[edit_others_products] =>; 1
[publish_products] =>; 1
[read_private_products] =>; 1
[delete_products] =>; 1
[delete_private_products] =>; 1
[delete_published_products] =>; 1
[delete_others_products] =>; 1
[edit_private_products] =>; 1
[edit_published_products] =>; 1
[manage_product_terms] =>; 1
[edit_product_terms] =>; 1
[delete_product_terms] =>; 1
[assign_product_terms] =>; 1
[edit_shop_order] =>; 1
[read_shop_order] =>; 1
[delete_shop_order] =>; 1
[edit_shop_orders] =>; 1
[edit_others_shop_orders] =>; 1
[publish_shop_orders] =>; 1
[read_private_shop_orders] =>; 1
[delete_shop_orders] =>; 1
[delete_private_shop_orders] =>; 1
[delete_published_shop_orders] =>; 1
[delete_others_shop_orders] =>; 1
[edit_private_shop_orders] =>; 1
[edit_published_shop_orders] =>; 1
[manage_shop_order_terms] =>; 1
[edit_shop_order_terms] =>; 1
[delete_shop_order_terms] =>; 1
[assign_shop_order_terms] =>; 1
[edit_shop_coupon] =>; 1
[read_shop_coupon] =>; 1
[delete_shop_coupon] =>; 1
[edit_shop_coupons] =>; 1
[edit_others_shop_coupons] =>; 1
[publish_shop_coupons] =>; 1
[read_private_shop_coupons] =>; 1
[delete_shop_coupons] =>; 1
[delete_private_shop_coupons] =>; 1
[delete_published_shop_coupons] =>; 1
[delete_others_shop_coupons] =>; 1
[edit_private_shop_coupons] =>; 1
[edit_published_shop_coupons] =>; 1
[manage_shop_coupon_terms] =>; 1
[edit_shop_coupon_terms] =>; 1
[delete_shop_coupon_terms] =>; 1
[assign_shop_coupon_terms] =>; 1
[administrator] =>; 1
)
如上所示,问题显然是我不了解角色的权限。我已将它们张贴在上面,希望它能帮助下一个偶然发现此问题的人!