Pawan Kumawat

Customize Woocommerce Settings Tab

WooCommerce is the more powerful e-commerce plugin for WordPress.And what i love with WooCommerce is that there’s an API for nearly everything.There are almost Hooks and filters For Every Customization work.

Let’s talk about customizing Woocommerce Admin setting Tabs.To hide a specific Woocommerce setting tab or want to customize the Woocommerce setting tabs, not the entire sub-menu, but just a tab.For just Removing tabs we can use 'woocommerce_settings_tabs_array' Woocommerce Filter.

If you want to remove tabs instead of hiding them using CSS, then you can add the following to yours theme’s functions.php.

 

function RemoveWoocommerceSettingTabs( $value) {
    // the tabs we want to hide
    $tabToHide = array(
        'tax' => 'Tax',
        'checkout' => 'Checkout',
        'products' => 'products',
        'shipping' => 'Shipping',
        'integration' => 'Integration',
        'advanced' => 'Advanced',
        'email' => 'Emails',
        'api' => 'API',
        'account' => 'Accounts',
    );
    // Tabs We want to hide
    $value= array_diff_key($value, $tabToHide);
    return $value;
}
add_filter('woocommerce_settings_tabs_array','RemoveWoocommerceSettingTabs');

 

In this code $value passed in Function is empty variable,because all WooCommerce tabs has priority equal to 20.

so we have to add higher priority than 20, so now filter is.

 

add_filter('woocommerce_settings_tabs_array','RemoveWoocommerceSettingTabs', 200, 1);

 

But WE can still access the URLs of tabs .So This is just a way of removing the tabs Form html instead of hiding them. Means this filter just added benefit that tabs is not in HTML, so if we look at the source code, we would not find the elements.
So we have to modify the hook more.

 

function RemoveWoocommerceSettingTabs( $value) {
    // the tabs we want to hide
    $tabToHide= array(
        'tax' => 'Tax',
        'checkout' => 'Checkout',
        'products' => 'products',
        'shipping' => 'Shipping',
        'integration' => 'Integration',
        'advanced' => 'Advanced',
        'email' => 'Emails',
        'api' => 'API',
        'account' => 'Accounts',
    );
    // Tabs We want to hide
    $value= array_diff_key($value, $tabToHide);
    foreach($tabToHide as $tabs => $title) {
        add_action( 'woocommerce_settings_' . $array, 'RedirectFromTabPage');
    }
    return $value;
}
add_filter('woocommerce_settings_tabs_array','RemoveWoocommerceSettingTabs', 200, 1);

function RedirectFromTabPage() {
    wp_redirect(get_admin_url().’/admin.php?page=wc-settings’);
    exit;
}

 

I have added a foreach loop that goes through list of tabs we want to block and hooks it into the ‘woocommerce_settings_{$tab}’ action which is used to show settings pages of WooCommerce. Function 'RedirectFromTabPagefunction' is used for redirecting to custom URL.

Enjoy.

Categories

Related Blogs

Add Custom Price on Bulk Purchase in Woocommerce Using ACF

To achieve this functionality, you’ll need to create a custom ACF repeater field for quantity and price in the product admin panel and then display all the prices on the product single page. Additionally, you’ll have to calculate the price according to the selected quantity when a product is added to the cart using WordPress hooks.

WordPress Ajax login

To implement Ajax login in WordPress, you can follow these steps: 1. Open the theme’s functions.php file in your WordPress

Programmatically Remove Product From Cart Using Product Id

Want to remove specific WooCommerce product from a cart?
WooCommerce provide ‘WC()->cart->remove_cart_item(string $cart_item_key)’ function to remove a product from cart. if we go through WooCommerce Documentation , wewill find that it accepts cart_item_key as parameter.