Created
August 7, 2021 07:38
-
-
Save warnakey/acc86ad11912de82cbfd51b30bb0c203 to your computer and use it in GitHub Desktop.
WooCommerce - Place Orders On Hold if billing and shipping information are different
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?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' ); | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.