admin-menus
1 week ago
currencies
1 week ago
template-classes
1 week ago
translation-editor
1 week ago
class-wcml-ajax-setup.php
1 week ago
class-wcml-attributes.php
1 week ago
class-wcml-capabilities.php
1 week ago
class-wcml-cart-removed-items-widget.php
1 year ago
class-wcml-cart-switch-lang-functions.php
1 week ago
class-wcml-cart-sync-warnings.php
1 week ago
class-wcml-cart.php
1 week ago
class-wcml-comments.php
1 week ago
class-wcml-compatibility.php
1 week ago
class-wcml-coupons.php
1 week ago
class-wcml-dependencies.php
1 week ago
class-wcml-emails.php
1 week ago
class-wcml-endpoints.php
1 week ago
class-wcml-install.php
1 week ago
class-wcml-languages-upgrader.php
1 week ago
class-wcml-locale.php
1 week ago
class-wcml-orders.php
1 week ago
class-wcml-products-screen-options.php
1 week ago
class-wcml-products.php
1 week ago
class-wcml-reports.php
1 week ago
class-wcml-requests.php
1 week ago
class-wcml-resources.php
1 week ago
class-wcml-store-pages.php
1 week ago
class-wcml-terms.php
1 week ago
class-wcml-tp-support.php
1 week ago
class-wcml-troubleshooting.php
1 week ago
class-wcml-upgrade.php
1 week ago
class-wcml-url-translation.php
1 week ago
class-wcml-wc-gateways.php
1 week ago
class-wcml-wc-shipping.php
1 week ago
class-wcml-wc-strings.php
1 week ago
class-wcml-widgets.php
1 week ago
constants.php
1 week ago
functions-pure.php
1 week ago
functions.php
1 week ago
installer-loader.php
1 week ago
missing-php-functions.php
1 week ago
wcml-core-functions.php
1 week ago
wcml-switch-lang-request.php
1 week ago
class-wcml-capabilities.php
53 lines
| 1 | <?php |
| 2 | |
| 3 | class WCML_Capabilities { |
| 4 | |
| 5 | public static function set_up_capabilities() { |
| 6 | |
| 7 | $role = get_role( 'administrator' ); |
| 8 | if ( $role ) { |
| 9 | $role->add_cap( 'wpml_manage_woocommerce_multilingual' ); |
| 10 | $role->add_cap( 'wpml_operate_woocommerce_multilingual' ); |
| 11 | } |
| 12 | |
| 13 | $role = get_role( 'super_admin' ); |
| 14 | if ( $role ) { |
| 15 | $role->add_cap( 'wpml_manage_woocommerce_multilingual' ); |
| 16 | $role->add_cap( 'wpml_operate_woocommerce_multilingual' ); |
| 17 | } |
| 18 | |
| 19 | if ( is_multisite() ) { |
| 20 | $super_admins = get_super_admins(); |
| 21 | foreach ( $super_admins as $admin ) { |
| 22 | $user = new WP_User( $admin ); |
| 23 | $user->add_cap( 'wpml_manage_woocommerce_multilingual' ); |
| 24 | $user->add_cap( 'wpml_operate_woocommerce_multilingual' ); |
| 25 | } |
| 26 | } |
| 27 | |
| 28 | $role = get_role( 'shop_manager' ); |
| 29 | if ( $role ) { |
| 30 | $role->add_cap( 'wpml_operate_woocommerce_multilingual' ); |
| 31 | $role->add_cap( 'wpml_manage_taxonomy_translation' ); |
| 32 | } |
| 33 | |
| 34 | self::reload_capabilities(); |
| 35 | } |
| 36 | |
| 37 | public static function reload_capabilities() { |
| 38 | $user = wp_get_current_user(); |
| 39 | $user->get_role_caps(); |
| 40 | } |
| 41 | |
| 42 | public static function canManageWcml() { |
| 43 | $allowedRoles = [ 'shop_manager', 'administrator', 'super_admin' ]; |
| 44 | |
| 45 | return (bool) array_intersect( $allowedRoles, wp_get_current_user()->roles ); |
| 46 | } |
| 47 | |
| 48 | public static function canAccessAllWcmlTabs() { |
| 49 | return current_user_can( 'wpml_manage_woocommerce_multilingual' ) |
| 50 | || current_user_can( 'wpml_operate_woocommerce_multilingual' ); |
| 51 | } |
| 52 | } |
| 53 |