John Davidson

php - Add custom html content in WooCommerce My Account Dashboard only


I am using WordPress with WooCommerce and WooCommerce Subscription plugins and its working fine as per my requirements.

Now I want to add my custom div in /my-account/ page i.e. ( after we login to system.

So I researched and found out this page /wp-content/plugins/woocommerce/templates/myaccount/my-account.php and that page has below code.

defined( 'ABSPATH' ) || exit;

do_action( 'woocommerce_account_navigation' ); ?>

<div class="woocommerce-MyAccount-content">
do_action( 'woocommerce_account_content' );

Hence I have added my code code something like this


Below do_action( 'woocommerce_account_content' ); but then its appearing in all the pages like my-account/orders/ , /my-account/downloads/ etc .. I do not want it.

How can I show this only in /my-account/ page ? Additionally, how can I just overwrite this page by copying in one of my active themes so that I do not need to make changes in core files of the plugins ?

My Answer:
To add custom HTML content in the WooCommerce My Account Dashboard, you can use the `woocommerce_account_content` hook. Here's an example of how you can add a custom div after the user logs in:

1. Create a child theme if you haven't already done so.
2. In your child theme, create a new file called `myaccount.php` and copy the contents of the `my-account.php` file from the WooCommerce plugin directory.
3. Add the following code at the end of the `myaccount.php` file:


4. Save the file and upload it to your child theme directory.
5. Now, you can add your custom HTML content inside the `
` tag.

This will add your custom div after the user logs in on the My Account page. Make sure to test it to ensure it works as expected.

Rate this post

3 of 5 based on 6429 votes


© 2024 - Personal Blogs Platform. All Rights Reserved.
Create blog  |  Privacy Policy  |  Terms & Conditions  |  Contact Us