Назначение ролей на WordPress Multisite (кроме клиента) в Woocommerce - PullRequest
0 голосов
/ 25 октября 2018

Я не могу назначить роли на WordPress Multisite (кроме клиента) в Woocommerce.

Путь к файлу: \ wp-content \ plugins \ woocommerce \ includes \ wc-user-functions.php
Имя функции: wc_modify_editable_roles

Код до изменений:

function wc_modify_editable_roles( $roles ) {   if ( ! current_user_can( 'administrator' ) ) {      unset( $roles['administrator'] );   }

    if ( current_user_can( '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' );

Код после изменений:

function wc_modify_editable_roles( $roles ) {
    if ( ! current_user_can( 'administrator' ) ) {
        unset( $roles['administrator'] );

        if ( current_user_can( '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' );

Также проверьте это для получения дополнительной информации - https://wordpress.org/support/topic/cant-assign-roles-on-wordpress-multisite-except-customer/

1 Ответ

0 голосов
/ 25 октября 2018

Это правильный код, который решит проблему, если вы столкнулись с этой проблемой;

function wc_modify_editable_roles( $roles ) {
if ( ! current_user_can( 'administrator' ) ) {
    unset( $roles['administrator'] );

    if ( current_user_can( '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' );
...