Closed shaunek-hero closed 10 months ago
@shaunek-hero this is a fantastic idea. Thank you so much for sharing, and with so much thought behind the idea. Making the WooCommerce status configurable when an invoice is set paid
makes sense.
I agree that this would be best for a BitPay Paid Invoice Status setting, with a default matching today so we maintain backwards compatibility. We would release this as part of 5.4.0.
If you can submit a PR, that would be incredible! If you have other things on your plate to take care of internally, we totally recognize that. This is worthwhile, so if you'd want us to tackle it we could.
Thanks again!
This was fixed in #69
Current behavior is that the the Woo order is created in "Pending" status (
wc-pending
in the db) and then when the BitPay invoice ispaid
and the IPN message is processed the Woo order status changes to "Processing" (wc-processing
). This order status is not configurable, it is hard coded inBitPayIpnProcess->process_processing()
. Then later when the invoice changes toconfirmed
andcomplete
the plugin updates the Woo order status again - but in these cases the Woo order status is configurable from the "Woocommerce Settings > Payments > BitPay Checkout for WooCommerce" screen, specifically the "BitPay Confirmed Invoice Status" and "BitPay Complete Invoice Status" settings. For example, the merchant can choose to have the order status changed towc-on-hold
, or some other status, when theconfirmed
IPN is received.I would like to suggest that the plugin be updated so the
paid
invoice status message has a configuration option similar to theconfirmed
andcomplete
statuses. I believe the exact same mechanism, of a setting field called "BitPay Paid Invoice Status" could be added. And specifically allow the merchant user the ability to choose theWcGatewayBitpay::IGNORE_STATUS_VALUE
so that the order status does not update at all.Rationale: 1) Our Woocommerce system is setup to send out transactional emails to our customer when order statuses change, in our case when an order goes into
wc-processing
status the customer gets an email saying "Your order is now in the shipping queue." (As a side note, our website has several interesting payment methods besides credit card such as echeck, wire, and even snailmail checks! and so many of our customers are waiting days for their payments to be received and clear, so having an email go out when their order changes fromwc-pending
/wc-on-hold
towc-processing
makes sense for us). So it will be confusing to our customers if they get an email right after they pay the BitPay invoice saying that is now in the shipping queue since we really aren't even sure if the crypto transaction will be fully accepted on the blockchain. We prefer that they only get that email notification when the BitPay invoice has reachedcomplete
status. 2) Aside from that our internal warehouse folks don't want an order to go intowc-processing
status unless payment has been 100% fully cleared, and when the BitPay status ispaid
your docs say that there is a chance the transaction might not be fully accepted.So, in our case we have temporarily deleted the line that updates the Woo order status in
BitPayIpnProcess->process_processing()
. Below is our current diff.This change works well for us but it may not be ideal for all your customers, I'm not sure. So this is why I am suggesting a new configuration option similar to the "BitPay Confirmed Invoice Status", and this
process_processing()
method could be adjusted to update the Woo order status to the user-specified status OR to ignore and not update the Woo order status at all.I could submit a PR for this if it would help, but I wanted to check with you to see if this would be something you would be willing to consider, and if you had other, better ideas to accomplish the same thing.