How can we improve WHMCS?

Share, discuss and vote for what you would like to see added to WHMCS

Configurable "thank you" page / order completed



154 Votes
Login to Vote
A configurable, WYSIWYG-editable (like email templates, complete with variables) "thank you" page for completed orders.

This is a good place to:

The idea is to be able to do all this after they have paid, instead of cluttering the checkout process which could cause lost sales.

Some needed/useful variables:

  • -product bought
  • -amount paid
  • -first time customer?
  • -how many domains/products do they have?
WHMCS should try to find a way to ensure customers do end at this page after they have paid, everytime they pay and only if the payment is successful, with maybe a built-in delay to allow for delays in backend processing/notifications.

I know "complete.tpl" exists, but my experience is that not every customer ends at that page, depending on the gateway module. It's also used for more than one purpose (customers can arrive to it and not have paid), which can complicate tracking.

17 Comments

Login to post a comment.

Hi all,
Thanks for your continued feedback on this request.

At present, gateways will all redirect to the order complete page when the payment is completed in real-time. However there are situations where payment doesn't complete immediately, or there is a delay in the gateway sending the notification to your WHMCS installation. In those cases, the visitor will be returned to the unpaid invoice with the notice that payment details will be received soon.

Displaying the order complete page and the ispaid condition as true, regardless of the actual payment status would be quite the assumption and might lead to some false positives. What would be the preferred alternative? Some possible ideas:

1. Always assume the invoice will be paid, even before transaction details are received, and trigger automation
2. Always assume the invoice will be paid, even before transaction details are received, and do not trigger automation
3. Add a holding page displaying an interim message, which waits until the transaction information is confirmed and transmitted by the payment gateway.
4. Something else?
Hi John,

Most e-commerce companies redirect you to payment, then to a "processing" page with some kind of loading icon, then a complete page.

Whilst it drags out the process, I'm sure you can find a way to implement this without too much of an issue - perhaps include logic to fall back how it does currently if the PayPal IPN does not confirm within a reasonable period of time.

Kind Regards,
Lee
Hi,
I think that the current way things are working is ok (gateways will all redirect to the order complete page when the payment is completed in real-time. or if there is a delay the visitor will be returned to the unpaid invoice with the notice that payment details will be received soon.)

The issue here is to add a configurable, WYSIWYG-editable (like email templates, complete with variable) "thank you" page for completed orders. So only when the client get redirect to the order complete page when the payment is completed in real-time - then we want to be able to configure the "thank you" page.
Whilst this is a very old request - this should really be considered as a bug and not a feature request.

Whilst the reason for voting isn't the same as the initial poster - having all payment modules follow the same "process" and end at the complete.tpl - where you can add tracking scripts, etc.

Currently, PayPal follows a different route to the Stripe or WorldPay modules - all payment modules should be predictable and follow the same workflow within the system, all landing on the 'complete' page once they have completed.
I wonder when this was marked "in progress" and what does this mean. It would be fantastic to get this finally done :)
Hi,
I see that this feature request is in "In Progress" status for a long time...
We need a way to have a configurable "thank you" page / order completed - for every product (not to change the "thank you" page / order completed for all of them - but to be able to set a different unique page for each product).
In this page we should be able to implement Facebook pixel and google analytic - or any other tracking system.
Thanks!
Ram
SeedHost.net wrote:Another related feature, would be to set a custom redirect URL after purchase is done, this way you can comfortably customize the URL a client will be redirected to after the purchase is done.

As an operator, I should be able to programmatically construct the order complete redirect URL. You could do this with a hook, just provide the order ID (at minimum) and I'll respond back with the URL I want them to go to.
CDJ HOSTING wrote:He also stated hooks, if the variables your asking for don't exist make a hook to create them.

They are pretty easy to do, the only thing your going to have trouble with is how you get your "people who bought this" data, maybe from a new table, or just querying the orders table. which ever way will best suit the needs of your hook you will have to decide.

Although to be fair, i think the order complete page would be the wrong place to do it. If you are going to try to up-sell i would have thought this should be done right before your client enters the order summary or right before they are directed to payment.

To be absolutely frank with you, i think the least distractions from completing their order the better. Worry about repeat/extra business later, your support and good service will see returns.

In any case, If i were to do this i would be looking at the orders table, decide which products you would want to promote and then pull out any data that contains any of those and the product that is being ordered. Put together some nifty joins then assign the data to some template vars and your away, its just then a case of deciding where best to interupt your client :)
The completed order page is the BEST place to do an up/down sale to the client. And here is why.
1) The client is already in the mood to purchase from you, they made that decision, and if they see a product/service from you will benefit them especially after they have made the purchase the percentage is much greater they will by right then. So perfect time to do a upsell.
2) I agree 100% about the least distractions from completing their order the better. That is why any upsells are done AFTER THEY HAVE PAID for the original product or service. You are just complicating and adding distraction to your new client if the upsells are before you pay, thus the reason a GOOD after the sell page is the perfect place for these offers.

3) I wouldn't want a default upsell page. Because the offer for someone that purchases JUST a domain name might be different from a persone purchasing web hosting, or some other item. So the Thank You /Upsell page should be based on the product /services a client orders, if you really want to get the most out of this.
Jorge wrote:Except the "ispaid" section doesn't work reliably, there are no variables, and not every order ends at complete.tpl. Hence, the request.
Having tpl access is enough for managing a custom thank you page. One would expect the variables that are provided to function correctly and this page be provided with a few extra variables.
Jorge wrote:Except the "ispaid" section doesn't work reliably, there are no variables, and not every order ends at complete.tpl. Hence, the request.
use the marketer, ive just seen a snap shot of it on the forums, its definitely got to be better than hacking together custom pages. Your client will be wanting to get on with their newly ordered products, im sure you can market your other products more effectively via emails once they know everything else is working as expected.
Host-Surf-UK wrote:No need for this whatsoever.

The page is already editable.
Except the "ispaid" section doesn't work reliably, there are no variables, and not every order ends at complete.tpl. Hence, the request.
No need for this whatsoever.

The page is already editable.
CDJ Hosting wrote:
To be absolutely frank with you, i think the least distractions from completing their order the better. Worry about repeat/extra business later, your support and good service will see returns.


That's exactly my thinking. Once they have ordered, and paid, with the least amount of distractions possible - that's when I want to be able to tell them about other products.

Never before they have paid.
He also stated hooks, if the variables your asking for don't exist make a hook to create them.

They are pretty easy to do, the only thing your going to have trouble with is how you get your "people who bought this" data, maybe from a new table, or just querying the orders table. which ever way will best suit the needs of your hook you will have to decide.

Although to be fair, i think the order complete page would be the wrong place to do it. If you are going to try to up-sell i would have thought this should be done right before your client enters the order summary or right before they are directed to payment.

To be absolutely frank with you, i think the least distractions from completing their order the better. Worry about repeat/extra business later, your support and good service will see returns.

In any case, If i were to do this i would be looking at the orders table, decide which products you would want to promote and then pull out any data that contains any of those and the product that is being ordered. Put together some nifty joins then assign the data to some template vars and your away, its just then a case of deciding where best to interupt your client :)
Another related feature, would be to set a custom redirect URL after purchase is done, this way you can comfortably customize the URL a client will be redirected to after the purchase is done.
Hi Chris,

I appreciate the reply. As I mentioned, complete.tpl doesn't always work (sometimes you don't see the page, sometimes "ispaid" is erroneosuly false). The variables I'm asking for don't exist, either.

A new, configurable page, with variables, would be great. The GUI makes sense because you already have the code in place for it.
Hello,
This is already achievable in the current WHMCS 5.1.x platform. We leave a modifyable template in each template directory with the file name, "complete.tpl".

Within this file lies a specified area for HTML insertion:{if $ispaid}<!-- Enter any HTML code which needs to be displayed once a user has completed the checkout of their order here - for example conversion tracking and affiliate tracking scripts -->{/if}

This also accepts Hook functions defined here:http://docs.whmcs.com/Hooks:Order_Process#ShoppingCartCheckoutCompletePage

Is a GUI editor required past the currently available usage?