How7oHow7o
  • Home
  • Tools
    • All Tools
    • Image Tools
    • Text & String Tools
    • Video Tools
    • Developer Tools
    • PDF Tools
    • Calculators & More
  • Prank Screens
  • Learn
  • Blog
  • Contact
Reading: How to Rename Menu Items on the WooCommerce My Account Page
Share
Notification Show More
Font ResizerAa
How7oHow7o
Font ResizerAa
  • Tools
  • Prank Screens
  • Learn
  • Blog
Search
  • Home
  • Tools
    • All Tools
    • Image Tools
    • Text & String Tools
    • Video Tools
    • Developer Tools
    • PDF Tools
    • Calculators & More
  • Prank Screens
  • Learn
  • Blog
  • Contact
Follow US
© 2024–2026 How7o. All rights reserved.
How7o > Free Laravel, PHP, WordPress & Server Tutorials > Web Development > How to Rename Menu Items on the WooCommerce My Account Page
Web Development

How to Rename Menu Items on the WooCommerce My Account Page

how7o
By how7o
Last updated: May 22, 2026
4 Min Read
Rename menu items on the WooCommerce My Account page
SHARE

To rename a menu item on the WooCommerce “My Account” page, hook the woocommerce_account_menu_items filter and replace the label by its key. The example below renames the “Coupons” item (used by WooCommerce Smart Coupons) to “Gift Cards” — the same pattern works for any menu item by changing the key.

Contents
  • The filter
  • The built-in menu item keys
  • Rename multiple items at once
  • Reorder or remove items
  • Frequently asked questions
  • Related guides
  • References

Last verified: 2026-05-17 on WooCommerce 9.0 + WordPress 6.5. Originally published 2024-03-23, rewritten and updated 2026-05-17.

The filter

add_filter( 'woocommerce_account_menu_items', function ( $items ) {
    if ( isset( $items['wc-smart-coupons'] ) ) {
        $items['wc-smart-coupons'] = __( 'Gift Cards', 'your-textdomain' );
    }
    return $items;
}, 99 );

Put this in your child theme’s functions.php or in a small site-specific plugin. The filter runs every time WooCommerce builds the account-menu sidebar.

WooCommerce My Account menu — rename via filter, default keys, reorder, remove

The built-in menu item keys

  • 'dashboard' → “Dashboard”
  • 'orders' → “Orders”
  • 'downloads' → “Downloads”
  • 'edit-address' → “Addresses”
  • 'payment-methods' → “Payment methods”
  • 'edit-account' → “Account details”
  • 'customer-logout' → “Log out”

Third-party plugins add their own keys — Smart Coupons uses 'wc-smart-coupons', Subscriptions adds 'subscriptions', etc. Dump the array once to see what’s available on your site:

add_filter( 'woocommerce_account_menu_items', function ( $items ) {
    error_log( print_r( $items, true ) );
    return $items;
}, 1 );

Rename multiple items at once

add_filter( 'woocommerce_account_menu_items', function ( $items ) {
    $rename = [
        'orders'          => __( 'My Orders',    'your-textdomain' ),
        'edit-account'    => __( 'Profile',      'your-textdomain' ),
        'customer-logout' => __( 'Sign Out',     'your-textdomain' ),
    ];

    foreach ( $rename as $key => $label ) {
        if ( isset( $items[ $key ] ) ) {
            $items[ $key ] = $label;
        }
    }
    return $items;
}, 99 );

Reorder or remove items

// Reorder
add_filter( 'woocommerce_account_menu_items', function ( $items ) {
    return [
        'orders'          => $items['orders'],
        'downloads'       => $items['downloads'],
        'edit-account'    => $items['edit-account'],
        'edit-address'    => $items['edit-address'],
        'customer-logout' => $items['customer-logout'],
    ];
}, 99 );

// Remove
add_filter( 'woocommerce_account_menu_items', function ( $items ) {
    unset( $items['downloads'] );
    return $items;
}, 99 );

Frequently asked questions

How do I find a menu item’s key?

Hook woocommerce_account_menu_items once and var_dump($items) to see the array. The keys are stable identifiers like 'dashboard', 'orders', 'downloads', 'edit-address', 'edit-account', 'customer-logout'. Third-party plugins add their own keys (Smart Coupons uses 'wc-smart-coupons').

How do I reorder the menu items, not just rename them?

Build a new array in your desired order: add_filter('woocommerce_account_menu_items', fn($items) => ['orders' => $items['orders'], 'downloads' => $items['downloads'], 'edit-account' => $items['edit-account'], 'customer-logout' => $items['customer-logout']]). PHP arrays preserve insertion order, so the new ordering is what WooCommerce renders.

How do I remove an item entirely?

unset($items['downloads']); inside the same filter. WooCommerce skips missing keys gracefully — the endpoint still works if someone visits the URL directly, but the link doesn’t appear in the menu.

What does the 99, 1 at the end of add_filter do?

Priority and argument count. 99 is the filter priority (higher = runs later, so this overrides earlier filters from other plugins). 1 is the number of arguments to pass to the callback. WordPress’s default is 10, 1; setting 99 is a defensive choice to win against plugins that add filters at priority 10.

Related guides

  • How to Display Orders Instead of Dashboard on the My Account Page
  • How to Add a Link After the Login Form in My Account
  • How to Remove Checkout Fields in WooCommerce

References

WooCommerce woocommerce_account_menu_items hook: woocommerce.com/document/editing-account-endpoints. WordPress add_filter(): developer.wordpress.org/reference/functions/add_filter.

TAGGED:phpWooCommercewordpress

Sign Up For Daily Newsletter

Be keep up! Get the latest breaking news delivered straight to your inbox.
[mc4wp_form]
By signing up, you agree to our Terms of Use and acknowledge the data practices in our Privacy Policy. You may unsubscribe at any time.
Share This Article
Facebook Copy Link Print
Previous Article Remove unwanted characters from a PHP string with regex How to Remove Unwanted Characters from a String in PHP
Next Article Replace strings in a MySQL database with UPDATE and REPLACE() How to Replace Strings in a MySQL Database
Leave a Comment

Leave a Reply Cancel reply

You must be logged in to post a comment.

You Might Also Like

WordPress $wpdb->insert_id — read after $wpdb->insert or $wpdb->query INSERT
Web Development

How to Retrieve the Last Inserted Row ID in WordPress

7 Min Read
Install and configure Redis on Ubuntu for Laravel and WordPress
Server Management

How to Install and Configure Redis on Ubuntu (for Laravel & WordPress)

10 Min Read
WordPress check if user is logged in with is_user_logged_in()
Web Development

How to Check If a User Is Logged In in WordPress

7 Min Read
Display PHP errors — ini_set + php.ini configuration
Web Development

How to Display PHP Errors

7 Min Read
How7oHow7o

Free browser-based tools, prank screens, and step-by-step tech tutorials. No signup, nothing uploaded.

  • Private by design — your files never leave your device
  • Instant — no signup, no install, no waiting
  • Always free — no trials, no watermarks, no paywalls

Tools

  • PDF Editor
  • Image Upscaler
  • JPEG Compressor
  • Password Generator
  • QR Code Generator
  • Video Trimmer
  • See all tools →

Pranks

  • Cracked Screen Prank
  • Fake Blue Screen (BSOD)
  • Fake Disk Format
  • Fake Low Battery
  • Fake Nintendo Switch Update Screen
  • Fake PlayStation Update Screen
  • See all prank screens →

Company

  • About Us
  • Blog
  • Contact
  • Privacy Policy
  • Terms of Service
  • Sitemap
© 2024–2026 How7o. All rights reserved.
Welcome Back!

Sign in to your account

Username or Email Address
Password

Lost your password?