Yes, you can redirect users to a custom thank you page (but please note all your ecommerce Google Analytics tracking will be skipped…). Yes, you can add content to the default thank you page, for example a Twitter “share your purchase” box. And yes, you can even “include” content from another WordPress page!
Basically, in this article, you will see how to write custom content for your WooCommerce Thank You page as a separate WordPress Page, so that you can use WYSIWYG, Gutenberg or a page builder to create something unique, and then ask WooCommerce to “get it” and “include” such page inside the default order-received endpoint.
If you’re not sure what I mean, try taking a look at the two screenshots below. Then, copy the simple snippet and see the result!
PHP Snippet: Include Custom WordPress Page @ WooCommerce Thank You Page
/**
* @snippet Include WP Page @ WC Thank You
* @how-to Get CustomizeWoo.com FREE
* @author Rodolfo Melogli
* @testedwith WooCommerce 9
* @community https://businessbloomer.com/club/
*/
add_action( 'woocommerce_thankyou', 'bbloomer_custom_thank_you_page', 5 );
function bbloomer_custom_thank_you_page() {
$page_id = 540;
$page_object = get_post( $page_id );
echo apply_filters( 'the_content', $page_object->post_content );
}
Dear Roberto,
Thank you very much for this, it’s lovely.
Formerly I used to add custom HTML to the Thank you page, but this gives more opportunities, anyone can easily modify the content.
However the Gutenberg Blocks have not appeared correctly, so I used some suggestions from Copilot AI, and finally modified the code like this:
Now it’s excellent.
Once again, thank you for your work and help.
Great, thanks so much!
Hi Rodolfo,
Could you explain more about the Ecommerce Analytics? How do they differ from a generic Google Analytics or Facebook Pixel? Is there something that Woocommerce does internally?
Or are you discussing a hook that developers may use on the thank you page that will no longer be there on a custom thank you? π
Thanks!
Mark.
Hey Mark, sure!
Google Analytics and ecommerce tracking in general is usually hooked to the “woocommerce_thankyou” hook, which fires on the default thank you page. If you direct customers to another page, this hook may not fire, and therefore tracking may not work.
It’s as simple as that. Of course, you can always include that hook on your custom page, but you need to have dev skills and also make sure it actually works.
Thanks for the clarification! That makes sense.
I also want to say your code snippets really saved me time by not having to dig into the guts of woocommerce with PHPStorm. I needed a lot of unexpected customisations and thanks to you, our launch was a succcess!
I can fine tune later for sure. But they saved me considering we had a lot of unexpected tech failures.
Glad to hear that!
Hello. It’s December 2020 and this snippet works great in my custom WordPress theme.
I wish I could get the page content above the default content ( just below the ‘Order received’ heading ). If there is a way to do that via a functions snippet, I’d love to know.
Thanks!
~Christine
There’s always some sort of workaround you could use. But yes, pity there is no hook in that position alright
Hi there! I would need your help please, I’m a bit lost. After a day of research on the internet I can’t find the trick to make what I’m trying to do and it seems simple to me … I’ve designed a new page using Elementor to replace my traditional Thank You page in woocommerce. But I can’t find the way to display all the “order details”, download links if it’s a eBook etc after a sale on this page that will replace the basic Thank You page. I thought there was a shortcode to do it like for the checkout page, but I’ve found nothing.
Could you please help me do that? I’m not a fan of adding plugins over plugins on my website and I’ve already designed the new page so … I just need this to complete.
Thanks ! π
Hi Harvey, thanks so much for your comment! Yes, this is definitely possible, but I’m afraid it’s custom work. If you’d like to get a quote, feel free to contact me here. Thanks a lot for your understanding!
Thanks for your post Rodolfo Melogli. I try custom Thank You, Page, for one of my websites. but it’s not working. maybe I’m missing something. I’m using NameCheap server and my PHP version 7.0
Try again, I’ve revised the snippet since
Hi Rodolfo.
Thanks for a great article. I am often on your site for a quick woo reference and I really appreciate all you publish.
I just thought I’d mention, get_page() is deprecated.
See: https://developer.wordpress.org/reference/functions/get_page/
Awesome, thank you!