我需要将订单详细信息发送到公司内部数据库。如果对数据库的调用返回成功响应,我希望只能保存订单。如果没有,我想停止订单并在结帐屏幕上显示一条消息。我正在尝试挂钩woocommerce_checkout_create_order,如果响应为 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 服务响应如何,它总是将订单保存到数据库中。有什么想法吗?当 Web 服务响应未“成功”显示自定义错误通知时,如何避免保存订单?
1 回答
繁华开满天机
TA贡献1816条经验 获得超4个赞
您将使用以下内容:
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 );
}
}
代码进入您的活动子主题(或活动主题)的 functions.php 文件。测试和工作。
- 1 回答
- 0 关注
- 95 浏览
添加回答
举报
0/150
提交
取消