| |
| <?php
|
|
|
| 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_action('admin_menu', function () {
|
| $user = wp_get_current_user();
|
| if (!in_array('shop_manager_-_reseller_admin', (array) $user->roles)) return;
|
|
|
| add_submenu_page(
|
| 'edit.php?post_type=product',
|
| 'Categories',
|
| 'Categories',
|
| 'manage_product_terms',
|
| 'edit-tags.php?taxonomy=product_cat&post_type=product'
|
| );
|
| }, 20);
|
|
|
|
|
| add_action('admin_menu', function () {
|
| $user = wp_get_current_user();
|
| if (!in_array('shop_manager_-_reseller_admin', (array) $user->roles)) return;
|
|
|
| global $menu, $submenu;
|
|
|
| $allowed_top = [
|
| 'index.php',
|
| 'woocommerce',
|
| 'edit.php?post_type=product',
|
| 'users.php',
|
| 'woocommerce-marketing',
|
| 'create-customer-role',
|
| ];
|
|
|
| foreach ($menu as $key => $item) {
|
| if ($item[2] === 'members') {
|
| remove_menu_page('members');
|
| continue;
|
| }
|
|
|
| if (!in_array($item[2], $allowed_top)) {
|
| remove_menu_page($item[2]);
|
| }
|
| }
|
|
|
| if (isset($submenu['woocommerce'])) {
|
| foreach ($submenu['woocommerce'] as $key => $item) {
|
| if ($item[2] !== 'edit.php?post_type=shop_order') {
|
| unset($submenu['woocommerce'][$key]);
|
| }
|
| }
|
| }
|
|
|
| if (isset($submenu['edit.php?post_type=product'])) {
|
| foreach ($submenu['edit.php?post_type=product'] as $key => $item) {
|
| $allowed_products = [
|
| 'edit.php?post_type=product',
|
| 'post-new.php?post_type=product',
|
| 'edit-tags.php?taxonomy=product_cat&post_type=product'
|
| ];
|
| if (!in_array($item[2], $allowed_products)) {
|
| unset($submenu['edit.php?post_type=product'][$key]);
|
| }
|
| }
|
| }
|
|
|
| if (isset($submenu['woocommerce-marketing'])) {
|
| foreach ($submenu['woocommerce-marketing'] as $key => $item) {
|
| if ($item[2] !== 'edit.php?post_type=shop_coupon') {
|
| unset($submenu['woocommerce-marketing'][$key]);
|
| }
|
| }
|
| }
|
| }, 999);
|
|
|
|
|
| add_action('admin_head', function () {
|
| $user = wp_get_current_user();
|
| if (!in_array('shop_manager_-_reseller_admin', (array) $user->roles)) return;
|
|
|
| echo '<style>
|
| /* WooCommerce customizations */
|
| body.post-type-shop_coupon .smart-coupon-settings-button,
|
| body.post-type-shop_coupon span.duplicate {
|
| display: none !important;
|
| }
|
|
|
| body.post-type-shop_order a.page-title-action,
|
| body.post-type-shop_order div#postcustom,
|
| body.post-type-shop_order div#wooccm-order-files,
|
| body.post-type-shop_order div#woocommerce-order-downloads {
|
| display: none !important;
|
| }
|
|
|
| /* Stack Cache purge */
|
| li#wp-admin-bar-stack-cache-purge-cache {
|
| display: none !important;
|
| }
|
|
|
| /* Hide "Add Existing User" on user-new.php */
|
| body.user-new-php h1#add-new-user,
|
| body.user-new-php h2#add-existing-user,
|
| body.user-new-php form#adduser,
|
| body.user-new-php h2#add-existing-user + p {
|
| display: none !important;
|
| }
|
|
|
| /* Hide banners */
|
| div#wt-iew-cta-banner {
|
| display: none !important;
|
| }
|
|
|
| /* Hide "Administrator" from user filter on All Users */
|
| body.users-php li.administrator {
|
| display: none !important;
|
| }
|
|
|
| /* ✅ Hide "Add New Role" button on Members > Roles page (if accessed directly) */
|
| body.members_page_members-roles a.page-title-action[href*="members-role-new"] {
|
| display: none !important;
|
| }
|
|
|
| /* ✅ Hide elements from Product Editor */
|
| body.post-type-product div#et_settings_meta_box,
|
| body.post-type-product div#woocommerce-product-images,
|
| body.post-type-product div#product_branddiv,
|
| body.post-type-product div#wds-wds-meta-box {
|
| display: none !important;
|
| }
|
| </style>';
|
|
|
| echo '<script>
|
| document.addEventListener("DOMContentLoaded", function () {
|
| // ✅ Disable order status changes to unpaid statuses
|
| const select = document.querySelector("p.form-field.wc-order-status select");
|
| if (select) {
|
| const disable = ["wc-pending", "wc-failed"];
|
| const current = select.value;
|
|
|
| select.querySelectorAll("option").forEach(opt => {
|
| if (disable.includes(opt.value) && opt.value !== current) {
|
| opt.disabled = true;
|
| opt.style.color = "#ccc";
|
| }
|
| });
|
| }
|
|
|
| // ✅ Hide specific roles from Members content permissions on product editor
|
| const hiddenRoles = ["administrator", "shop_manager", "shop_manager_-_reseller_admin", "shop_manager_-_view_only"];
|
| hiddenRoles.forEach(role => {
|
| document.querySelectorAll(`input[name="members_access_role[]"][value="${role}"]`).forEach(input => {
|
| const wrapper = input.closest("label") || input.parentElement;
|
| if (wrapper) wrapper.style.display = "none";
|
| });
|
| });
|
| });
|
| </script>';
|
| });
|
|
|
|
|
| add_action('admin_bar_menu', function ($wp_admin_bar) {
|
| $user = wp_get_current_user();
|
| if (!in_array('shop_manager_-_reseller_admin', (array) $user->roles)) return;
|
|
|
| $wp_admin_bar->remove_node('comments');
|
| $wp_admin_bar->remove_node('new-content');
|
| }, 999);
|
| |
| |
Comments