You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
54 lines
1.4 KiB
54 lines
1.4 KiB
<?php
|
|
|
|
class WCML_Capabilities {
|
|
|
|
public static function set_up_capabilities() {
|
|
|
|
$role = get_role( 'administrator' );
|
|
if ( $role ) {
|
|
$role->add_cap( 'wpml_manage_woocommerce_multilingual' );
|
|
$role->add_cap( 'wpml_operate_woocommerce_multilingual' );
|
|
}
|
|
|
|
$role = get_role( 'super_admin' );
|
|
if ( $role ) {
|
|
$role->add_cap( 'wpml_manage_woocommerce_multilingual' );
|
|
$role->add_cap( 'wpml_operate_woocommerce_multilingual' );
|
|
}
|
|
|
|
if ( is_multisite() ) {
|
|
$super_admins = get_super_admins();
|
|
foreach ( $super_admins as $admin ) {
|
|
$user = new WP_User( $admin );
|
|
$user->add_cap( 'wpml_manage_woocommerce_multilingual' );
|
|
$user->add_cap( 'wpml_operate_woocommerce_multilingual' );
|
|
}
|
|
}
|
|
|
|
$role = get_role( 'shop_manager' );
|
|
if ( $role ) {
|
|
$role->add_cap( 'wpml_operate_woocommerce_multilingual' );
|
|
}
|
|
|
|
self::reload_capabilities();
|
|
}
|
|
|
|
public static function reload_capabilities() {
|
|
$user = wp_get_current_user();
|
|
$user->get_role_caps();
|
|
}
|
|
|
|
public static function canManageWcml() {
|
|
$allowedRoles = [ 'shop_manager', 'administrator', 'super_admin' ];
|
|
|
|
return (bool) array_intersect( $allowedRoles, wp_get_current_user()->roles );
|
|
}
|
|
|
|
/**
|
|
* @return bool
|
|
*/
|
|
public static function canAccessAllWcmlTabs() {
|
|
return current_user_can( 'wpml_manage_woocommerce_multilingual' )
|
|
|| current_user_can( 'wpml_operate_woocommerce_multilingual' );
|
|
}
|
|
}
|
|
|