Попробуйте исключить из Франции и Великобритании страны выставления счетов и доставки:
add_action( 'woocommerce_thankyou', 'country_based_auto_on_hold_orders' );
function country_based_auto_on_hold_orders( $order_id ) {
if ( ! $order_id ) {
return;
}
$order = wc_get_order( $order_id );
if ( ! ( in_array( $order->get_billing_country(), ['UK', 'FR'] ) || in_array( $order->get_shipping_country(), ['UK', 'FR'] ) ) ) {
$order->update_status( 'on-hold' );
}
}
Теперь, используя woocommerce_thankyou
крюк, - это старый способ . Чтобы избегать множественных уведомлений по электронной почте об изменениях статуса, используйте вместо этого следующее:
Для все платежные шлюзы , кроме наложенного платежа (COD):
add_action( 'woocommerce_payment_complete_order_status', 'wc_auto_on_old_paid_order', 10, 3 );
function wc_auto_on_old_paid_order( $status, $order_id, $order ) {
if ( ! ( in_array( $order->get_billing_country(), ['UK', 'FR'] ) || in_array( $order->get_shipping_country(), ['UK', 'FR'] ) ) ) {
$status = 'on-hold'
}
return $status;
}
Для Оплата наложенным платежом (COD) платежей:
add_action( 'woocommerce_cod_process_payment_order_status', 'wc_auto_complete_cod_order', 10, 2 );
function wc_auto_complete_cod_order( $status, $order ) {
if ( ! ( in_array( $order->get_billing_country(), ['UK', 'FR'] ) || in_array( $order->get_shipping_country(), ['UK', 'FR'] ) ) ) {
$status = 'on-hold'
}
return $status;
}
Похожие: WooCommerce: автоматическое заполнение оплаченных заказов