I am updating an existing website (using a a staging site) to use a Understrap based theme and make better use of Woo Commerce, including adding Tickera ticket sales. This is mostly working wonderfully well 🙂
I would appreciate some help/guidance on the following issue I am seeing, as follows:
1. I place an order using ‘Direct Bank Payment’ option 2. The order is accepted, and appears on the system with a status of ‘On Hold’ (not Payment Pending?) 3. The tickets-payment/order-received ‘Pay for order’ page does not include payment details / Bank Account details and has the following message
(!) This order’s status is “On hold”—it cannot be paid for. Please contact us if you need assistance.
4. The Order Confirmation email is sent, looks fine and does include correct instructions and bank details
This is not great as a customer will attempt to buy a ticket and instead of getting on-screen details on how to pay for it they get a message saying it cannot be paid for!
I have tried the following: 1. I’ve double checked configurations against the Woocommerce guide on how to set up ‘Direct Bank Payment’ (even though these settings were staged from a site where they worked) 2. I have disabled Tickera, in case that was causing an issue, and placed a new order 3. I have verified my WP installation is up to date including all plugins
This topic was modified 1 year, 1 month ago by Steve Baxter.
It is great to hear that you are working on a site using an Understrap based theme with WooCommerce. I commend your dedication to the project.
It is expected behavior for the BACS payment method to have an “On hold” order status. You may read more about it in this documentation.
To confirm, are you manually creating an order in WooCommerce and then sending a link to the customer for payment? Please share a few screenshots for better understanding.
When the order is placed, having selected the BACS payment method, then the screen below is displayed. My expectation, which the documentation you mentioned seems to confirm, is that they should instead see a screen confirming the order has been received, is on hold pending their payment and providing the bank details I have entered against that payment method. This information appears in the order acknowledgement email correctly.
I noticed the message about Login – so repeated my test order but created an account and logged on first. This made no difference and I got the same screen as I posted ^
The order is placed ok- I can see it in the back end and via the front end dashboard under ‘Orders’, the order acknowledgement email is sent ok with the correct bank details.
The only issue is that when the order is place the customer gets the misleading message that their order cannot be paid for instead of helpful information like the bank details 🙂
Could you share a screenshot of the page where you manually create orders? I want to understand the steps you are taking and try to replicate the issue on my end. Specifically, choosing the BACS payment method and setting the order status to On hold.
Once I am able to replicate the issue, I will be happy to assist you further.
– Basket page (tickets-basket) – I click ‘Proceed to Checkout’ – Checkout page is it it initially appears – Checkout page – completed and Bank Transfer option selected – I click ‘Place Order’ (I replaced the email addresses in the screen shot with my real one first)
Then (after an unusually long delay for this site – but only 5-6 seconds perhaps) the screen I posted before appears and I get an alert from my email client that the confirmation email has been received)
This message is not the default WooCommerce Thank You page message. It appears to be customized, either through the theme, a plugin, or custom code.
By default, WooCommerce does not display a message like this on the Thank You page. Instead, for orders with an On Hold status, WooCommerce typically does not provide a payment option unless explicitly enabled through a customization or plugin.
To check if this message is coming from a customization, you can:
1. Switch to a default theme like Storefront and see if the message persists.
2. Disable plugins that might modify checkout behavior.
3. Look for custom code in functions.php or a custom plugin modifying order status messages.
Thank you. Let us know if you have any more questions.
Thank you. I’ve tried switching to Storefront, I disabled every plugin except WooCommerce and WooCommerce PayPal Payments, I also checked functions.php (though this would also be disabled by switching to Storefront) but am still getting the same behaviour. I can see that ‘it cannot be paid for’ does appear in a number of WooCommerce files so think this is an issue within Woo Commerce (or my configuration of Woo Commerce)
The ‘Checkout endpoints’, ‘Pay’ was set to order-received instead of the correct order-pay. So the payment step of processing the order was passing the wrong endpoint value in the url, which caused the page to misbehave.
I’m happy to hear that you were able to identify and resolve the issue on your end. Thank you for sharing what the issue was and how you fixed it. If you need any further assistance, feel free to start a new topic.
Viewing 9 replies - 1 through 9 (of 9 total)
The topic ‘Direct Bank Transfer ‘status is “On hold”—it cannot be paid for.’’ is closed to new replies.