How to Add Custom Tabs to the WooCommerce My Account Page in Divi

by | Jul 2, 2026

Open your WooCommerce My Account page and look at the menu down the side. Dashboard. Orders. Downloads. Addresses. Account details. Log out. Same five or six links on every WooCommerce store in the world. It works, but it’s generic. You can’t easily rename those tabs, reorder them, add your own, or put anything genuinely useful inside them. And that’s a shame, because this is one of the most valuable pages on your whole site.

Why your account tabs are worth the effort

The account area isn’t a dead end. It’s where your best customers spend time… the returning buyers, the members, the people who already trust you enough to have an account. That makes those tabs prime real estate. A well-thought-out account menu can hold a getting-started guide, support and contact info, loyalty rewards, recommended products, downloads, license keys, or anything else that keeps people engaged and coming back. Left on the default, it does none of that. So customizing your tabs isn’t decoration. It’s turning a generic utility page into something that actually works for your business. Let’s look at how to do it — first with code, then the easier way.

The manual route: adding a custom tab with code

WooCommerce is built on WordPress endpoints, so you can add your own tabs with code. If you’re comfortable in functions.php (ideally a child theme) or a small custom plugin, here’s the genuine, working approach. It comes in three steps.

Step 1 — Register a new endpoint

An endpoint is what gives your tab its own URL, like /my-account/my-tab/. Register it on the init hook:
function pt_add_custom_endpoint() {
    add_rewrite_endpoint( 'my-tab', EP_ROOT | EP_PAGES );
}
add_action( 'init', 'pt_add_custom_endpoint' );
After adding this, go to Settings → Permalinks and click Save once. This flushes the rewrite rules so your new endpoint doesn’t throw a 404. (You only need to do this once, or handle it on theme/plugin activation.)

Step 2 — Add the tab to the account menu

Now add your tab into the account menu with the woocommerce_account_menu_items filter. This example drops it in just before the Log out link:
function pt_add_custom_menu_item( $items ) {
    // Remove logout so we can re-add it at the end
    $logout = $items['customer-logout'];
    unset( $items['customer-logout'] );

    // Add your custom tab
    $items['my-tab'] = __( 'My Tab', 'your-textdomain' );

    // Put logout back at the bottom
    $items['customer-logout'] = $logout;

    return $items;
}
add_filter( 'woocommerce_account_menu_items', 'pt_add_custom_menu_item' );

Step 3 — Output the tab’s content

Finally, tell WooCommerce what to show when someone clicks the tab. WooCommerce creates a dynamic hook for every endpoint in the form woocommerce_account_{endpoint}_endpoint:
function pt_custom_tab_content() {
    echo '

Welcome

'; echo '

This is my custom account tab.

'; } add_action( 'woocommerce_account_my-tab_endpoint', 'pt_custom_tab_content' );
Save, refresh your My Account page, and your new tab appears with your content inside.

Bonus: show a tab only to certain users

Because the menu is just a filtered array, you can show a tab conditionally. For example, only to administrators:
function pt_role_based_tab( $items ) {
    if ( current_user_can( 'administrator' ) ) {
        $items['admin-tools'] = __( 'Admin Tools', 'your-textdomain' );
    }
    return $items;
}
add_filter( 'woocommerce_account_menu_items', 'pt_role_based_tab' );

Where the manual route runs out of road

That’s the real, working method, and for a simple text tab it’s fine. But look at what you can’t easily do here. The content of your tab is raw PHP echo statements. Want a nicely designed layout with columns, images, buttons, and your brand styling? You’re now hand-writing HTML and CSS inside PHP. Want to drop your actual Divi-designed sections in there? That’s not something this approach handles at all. And want to mix in WooCommerce’s own dynamic content — like the customer’s orders table or downloads — inside your custom layout? That’s a serious amount of extra code. So the code route gets you a tab. It doesn’t easily get you a beautifully designed tab. For that, there’s a much simpler path.

The easy way (free): rename, reorder, and organize your tabs

If all you want is to tidy up and personalize the existing tabs, our free Divi My Account Page Lite plugin handles the basics with no code at all:
  • Rename any tab to match your language and brand
  • Reorder the tabs into the sequence that makes sense for your store
  • Add icons to each tab so the menu looks intentional, not default
  • Set a custom landing tab, so customers see the page you choose first instead of the default dashboard
For a lot of stores, that alone transforms the account menu from generic to polished… in a couple of minutes, without touching a line of PHP.

The powerful way (Pro): custom tabs built entirely in Divi

This is where it gets genuinely different from anything the code route offers. With Divi My Account Page Pro, you can add your own custom tabs and design their content entirely in the Divi Builder. Not PHP. Not hand-written HTML. Actual Divi layouts, with everything you already know how to build. That means a custom tab can contain:
  • Any Divi layout you want — sections, columns, images, buttons, calls to action, your full design toolkit
  • WooCommerce’s own dynamic content, placed inside your design — you can drop the orders table, the downloads table, and other default endpoint content in between your own Divi elements. So you could have a welcome banner, then the customer’s orders, then a promo section, then their downloads, all in one designed tab
  • Role-based visibility — show specific tabs only to the user roles you choose
That third point about mixing dynamic WooCommerce content into a Divi layout is the part that’s effectively impossible to do cleanly by hand. It’s the difference between a plain list of orders and a designed account experience that happens to include the orders exactly where you want them. You get all the tab basics from the free version too — rename, reorder, icons, custom landing tab — plus the ability to build the tabs themselves like any other Divi page.

Pulling it together

The default WooCommerce account menu is a missed opportunity. You can improve it three ways, depending on how far you want to go: rename and reorder with the free plugin, hand-code custom endpoints if you enjoy working in PHP, or design fully custom Divi tabs (with dynamic WooCommerce content inside them) using Pro.
Whichever route you take, the goal is the same… an account area that feels like part of your store, not a default page bolted on the side.
If you’d like to style the rest of the account experience to match, this guide is a natural next step: How to Customize the WooCommerce My Account Page in Divi.
By Mariya Dimitrova

By Mariya Dimitrova

Mariya is a web designer and a co-founder of Powdi Themes and Powdi Studio. With over 10 years of experience working with WordPress and Divi, she focuses on creating beautiful, practical designs and helping others achieve the same. Mariya shares hands-on tutorials, tools, and insights to make building with Divi easier and more enjoyable.

Pin It on Pinterest