我需要將訂單詳細(xì)信息發(fā)送到公司內(nèi)部數(shù)據(jù)庫。如果對數(shù)據(jù)庫的調(diào)用返回成功響應(yīng),我希望只能保存訂單。如果沒有,我想停止訂單并在結(jié)帳屏幕上顯示一條消息。我正在嘗試掛鉤woocommerce_checkout_create_order,如果響應(yīng)為 false,則返回 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; }但無論 web 服務(wù)響應(yīng)如何,它總是將訂單保存到數(shù)據(jù)庫中。有什么想法嗎?當(dāng) Web 服務(wù)響應(yīng)未“成功”顯示自定義錯(cuò)誤通知時(shí),如何避免保存訂單?
1 回答

繁華開滿天機(jī)
TA貢獻(xiàn)1816條經(jīng)驗(yàn) 獲得超4個(gè)贊
您將使用以下內(nèi)容:
add_action( 'woocommerce_checkout_create_order', 'process_new_order_details', 10, 2 );
function process_new_order_details( $order, $data ) {
# ...... / ......
if($json_response->success == 1) {
return $order;
} else { // Throw an error notice
$error_text = __("My custom error notice", "wocommerce" );
throw new Exception( $error_text );
}
}
代碼進(jìn)入您的活動(dòng)子主題(或活動(dòng)主題)的 functions.php 文件。測試和工作。
- 1 回答
- 0 關(guān)注
- 131 瀏覽
添加回答
舉報(bào)
0/150
提交
取消