不要保存在 WooCommerce 中显示通知的 Web 服务失败响应的订单
Don't save order on webservice failure response displaying a notice in WooCommerce
我需要将订单详细信息发送到公司内部数据库。如果对数据库的调用 return 成功响应,我希望能够仅保存订单。如果没有,我想停止订单并在结帐屏幕上显示一条消息。
我正在尝试连接到 woocommerce_checkout_create_order
,如果响应为假,则 return 为假并停止订购过程:
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 服务响应未 "success" 显示自定义错误通知时,如何避免保存订单?
您将使用以下内容:
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 文件。已测试并有效。
我需要将订单详细信息发送到公司内部数据库。如果对数据库的调用 return 成功响应,我希望能够仅保存订单。如果没有,我想停止订单并在结帐屏幕上显示一条消息。
我正在尝试连接到 woocommerce_checkout_create_order
,如果响应为假,则 return 为假并停止订购过程:
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 服务响应未 "success" 显示自定义错误通知时,如何避免保存订单?
您将使用以下内容:
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 文件。已测试并有效。