gpt4 book ai didi

php - 不要在 WooCommerce 中显示通知的 Web 服务失败响应中保存订单

转载 作者:行者123 更新时间:2023-12-04 09:38:09 29 4
gpt4 key购买 nike

我需要将订单详细信息发送到公司内部数据库。如果对数据库的调用返回成功响应,我希望只能保存订单。如果没有,我想停止订单并在结帐屏幕上显示一条消息。

我正在尝试连接 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 服务响应未“成功”显示自定义错误通知时,如何避免保存订单?

最佳答案

您将使用以下内容:

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 文件中。测试和工作。

enter image description here

关于php - 不要在 WooCommerce 中显示通知的 Web 服务失败响应中保存订单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62453237/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com