Roles.php

// ✅ Add “Roles” menu for shop_manager_-_reseller_admin add_action(‘admin_menu’, function () { $user = wp_get_current_user(); if (!in_array(‘shop_manager_-_reseller_admin’, (array) $user->roles)) return; add_menu_page( ‘Create Customer Role’, ‘Roles’, ‘manage_product_terms’, ‘create-customer-role’, ‘render_custom_role_form’, ‘dashicons-groups’, 56 ); }); // ✅ Render form and role list function render_custom_role_form()…Continue reading

Shop Manager – Reseller Admin.js

// ✅ Add required capabilities to shop_manager_-_reseller_admin add_action(‘init’, function () { $role = get_role(‘shop_manager_-_reseller_admin’); if ($role) { $caps = [ ‘manage_product_terms’, ‘edit_roles’, ]; foreach ($caps as $cap) { if (!$role->has_cap($cap)) { $role->add_cap($cap); } } } }); // ✅ Add Categories…Continue reading

Shop Manager – View Only.js

add_action(‘admin_menu’, function () { $user = wp_get_current_user(); if (!in_array(‘shop_manager_-_view_only’, (array) $user->roles)) { return; } global $menu, $submenu; // Top-level menu whitelist $allowed_top = [ ‘index.php’, // Dashboard ‘woocommerce’, // WooCommerce ‘users.php’, // Users ‘woocommerce-marketing’, // Marketing ]; foreach ($menu as…Continue reading

Allow Contributors to Upload Images

add_filter( ‘user_has_cap’, function ( $allcaps, $caps, $args, $user ) { if ( in_array( ‘contributor’, $user->roles ) && empty( $caps[‘upload_files’] ) ) { $allcaps[‘upload_files’] = true; } return $allcaps; }, 10, 4 );Continue reading