Customizing the My Account Page in WooCommerce: Removing Menu Items with Code

WooCommerce offers a versatile platform for managing your online store, and one of its key features is the My Account page. This page provides customers with access to various account-related functions. However, there are times when you may want to streamline this page by removing specific menu items. In this article, we’ll guide you through the process of customizing the My Account page in WooCommerce using the add_filter function.

Removing Menu Items from My Account Page

To achieve this customization, you’ll need to add a snippet of code to your website’s functions.php file. The approach would be:

  1. Create a Child Theme (Optional but Recommended): If you haven’t already, it’s a good practice to create a child theme. This ensures that your changes won’t be overwritten when your main theme is updated. You can find tutorials on how to create a child theme specific to your theme.
  2. Edit Your Theme’s Functions.php: In your child theme (or directly in the main theme if you’re not using a child theme), you’ll want to add some custom code.

This code utilizes the add_filter function to target the woocommerce_account_menu_items hook, allowing you to modify the menu items displayed on the My Account page.

Here’s the code snippet you can use:

add_filter( 'woocommerce_account_menu_items', 'amt_remove_my_account_links' );

function amt_remove_my_account_links( $menu_links ){
    unset( $menu_links[ 'edit-address' ] ); // Addresses
    unset( $menu_links[ 'dashboard' ] ); // Remove Dashboard
    unset( $menu_links[ 'payment-methods' ] ); // Remove Payment Methods
    unset( $menu_links[ 'orders' ] ); // Remove Orders
    unset( $menu_links[ 'downloads' ] ); // Disable Downloads
    unset( $menu_links[ 'edit-account' ] ); // Remove Account details tab
    unset( $menu_links[ 'customer-logout' ] ); // Remove Logout link

    return $menu_links;

Understanding the Code

  1. add_filter(‘woocommerce_account_menu_items’, ‘amt_remove_my_account_links’): This line of code adds a filter to the ‘woocommerce_account_menu_items’ hook, which allows us to modify the menu items on the My Account page.
  2. amt_remove_my_account_links($menu_links): This function is called when the filter is applied. It receives an array of menu items as a parameter, which we’ll then modify.
  3. unset($menu_links[‘item-slug’]): The unset function is used to remove specific items from the menu. Replace 'item-slug' with the slug of the menu item you want to remove. For example, 'edit-address' targets the Addresses menu item.

Customizing Your My Account Page

Using this code, you can selectively remove various menu items from the My Account page to create a tailored experience for your customers. Whether you want to streamline the interface or restrict access to certain features, this customization offers flexibility to meet your specific needs.


Customizing the My Account page in WooCommerce allows you to create a more user-friendly and focused experience for your customers. By utilizing the add_filter function and the provided code snippet, you can effortlessly remove specific menu items and tailor the page to match your store’s unique requirements.

Remember to always make a backup of your website before making any code changes. If you encounter any issues or require further assistance, consider consulting a web developer with experience in WooCommerce customization.






Leave a Reply

Your email address will not be published. Required fields are marked *