连接到WooCommerce过滤器



由于WooCommerce最近更新了"shopmanager"角色的用户,因此无法再编辑"subscriber"角色。

我发现以下功能对此负责:

function wc_modify_editable_roles( $roles ) {
if ( is_multisite() && is_super_admin() ) {
return $roles;
}
if ( ! wc_current_user_has_role( 'administrator' ) ) {
unset( $roles['administrator'] );
if ( wc_current_user_has_role( 'shop_manager' ) ) {
$shop_manager_editable_roles = apply_filters( 'woocommerce_shop_manager_editable_roles', array( 'customer' ) );
return array_intersect_key( $roles, array_flip( $shop_manager_editable_roles ) );
}
}
return $roles;
}
add_filter( 'editable_roles', 'wc_modify_editable_roles' );

我需要将subscriber添加到apply_filters( 'woocommerce_shop_manager_editable_roles', array( 'customer' ) );中的数组中,但这就是我遇到的问题。

如何勾入该过滤器以添加额外的角色

这是我到目前为止得到的(根本不起作用,但这是一个开始:(

add_filter( 'woocommerce_shop_manager_editable_roles', 'addanotherrole' );
function addanotherrole() {
$shop_manager_editable_roles = array( 'customer', 'subscriber' );
}

已排序!

您需要返回新的角色数组,如下所示:

add_filter( 'woocommerce_shop_manager_editable_roles', 'addanotherrole' );
function addanotherrole($roles) {
// add the additional role to the woocommerce allowed roles (customer)
$roles[] = 'subscriber'; 
// return roles array
return $roles; 

我希望这有帮助!

相关内容

  • 没有找到相关文章

最新更新