Hello @shenkwen!
Thanks for reaching out!
How can a customer cancel his on hold orders?
If you want to add the functionality to enable customers to cancel orders that are on hold, you might want to use the Advanced Cancel Order for WooCommerce plugin.
The extension allows users to submit cancellation requests/cancel their orders directly from their account.
Here is documentation on the extension/plugin: https://woocommerce.com/document/advanced-cancel-order-for-woocommerce/
Please note that you can take advantage of our 30-day money-back guarantee to try out the product and see if it fits your requirements. Here is our refund policy: https://woocommerce.com/refund-policy/
For further Pre-Sales questions, please reach out to us at WooCommerce.com > My Account > Support. You may need to create an account before you can access that page.
We will be able to help you further there. Thanks!