-
-
Save warnakey/acc86ad11912de82cbfd51b30bb0c203 to your computer and use it in GitHub Desktop.
| <?php | |
| /* PLACE ORDERS ON HOLD WHEN BILLING & SHIPPING INFO DO NOT MATCH */ | |
| add_action( 'woocommerce_thankyou', 'woocommerce_billing_shipping_address_match', 10, 1); | |
| function woocommerce_billing_shipping_address_match( $order_id ) { | |
| if ( ! $order_id ) { | |
| return; | |
| } | |
| // Get the order id | |
| $order = wc_get_order( $order_id ); | |
| // Customer billing information details | |
| $billing_first_name = $order->get_billing_first_name(); | |
| $billing_last_name = $order->get_billing_last_name(); | |
| $billing_company = $order->get_billing_company(); | |
| $billing_address_1 = $order->get_billing_address_1(); | |
| $billing_address_2 = $order->get_billing_address_2(); | |
| $billing_city = $order->get_billing_city(); | |
| $billing_state = $order->get_billing_state(); | |
| $billing_postcode = $order->get_billing_postcode(); | |
| $billing_country = $order->get_billing_country(); | |
| // Customer shipping information details (from account) | |
| $shipping_first_name = $order->get_shipping_first_name(); | |
| $shipping_last_name = $order->get_shipping_last_name(); | |
| $shipping_company = $order->get_shipping_company(); | |
| $shipping_address_1 = $order->get_shipping_address_1(); | |
| $shipping_address_2 = $order->get_shipping_address_2(); | |
| $shipping_city = $order->get_shipping_city(); | |
| $shipping_state = $order->get_shipping_state(); | |
| $shipping_postcode = $order->get_shipping_postcode(); | |
| $shipping_country = $order->get_shipping_country(); | |
| // check if any the billing info does not match the shipping info and place on hold if not | |
| if($billing_first_name !== $shipping_first_name || $billing_last_name !== $shipping_last_name || $billing_address_1 !== $shipping_address_1 || $billing_address_2 !== $shipping_address_2 || $billing_city !== $shipping_city || $billing_state !== $shipping_state || $billing_postcode !== $shipping_postcode || $billing_country !== $shipping_country) { | |
| // Place the order on hold | |
| $order->update_status( 'on-hold' ); | |
| } | |
| } |
Here you go: https://gist.github.com/charliesjc/b3bfa1e2c35bd3c21f426c05b1db8234.
So I would add this:
if ($order_status == 'processing') { $order_status = 'on-hold'; }
in your last if statement and then return the $order_status at the end of the function. The only real difference to your original code is the hook.
Your link text and link don't match. This will work:
https://gist.github.com/charliesjc/b3bfa1e2c35bd3c21f426c05b1db8234
Here you go: https://gist.github.com/charliesjc/b3bfa1e2c35bd3c21f426c05b1db8234.
So I would add this:
if ($order_status == 'processing') { $order_status = 'on-hold'; }
in your last if statement and then return the $order_status at the end of the function. The only real difference to your original code is the hook.Your link text and link don't match. This will work:
https://gist.github.com/charliesjc/b3bfa1e2c35bd3c21f426c05b1db8234
I know. I even said so in my previous comment. I haven't got a clue why it's doing that. The link that's in the message is exactly the same as the text, but it's ignoring it completely and linking back to this gist.
I haven't got a clue why my link says one thing and then links straight back to your original gist.