У меня есть требование отправить детали заказа во внутреннюю базу данных компании. Я хочу иметь возможность сохранять заказ только в том случае, если вызов БД возвращает успешный ответ. Если нет, я хочу остановить заказ и показать сообщение на экране оформления заказа.
Я пытаюсь подключиться к woocommerce_checkout_create_order
, и если ответ ложный, возвращаю false и останавливаю процесс заказа:
add_action( 'woocommerce_checkout_create_order', 'process_new_order_details', 10, 2 );
function process_new_order_details( $order ) {
......
if($json_response->success == 1) {
// We got a success message back from internal DB
return $order;
} else {
// Could not save in internal DB
return false;
}
Но он всегда сохраняет заказ в базе данных независимо от ответ веб-службы. Есть предположения?
Как я могу избежать сохранения порядка, если ответ веб-службы не является «успешным», отображая настраиваемое уведомление об ошибке?