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

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


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


一只甜甜圈
浏览 96回答 1
1回答

繁华开满天机

您将使用以下内容: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 文件。测试和工作。
打开App,查看更多内容
随时随地看视频慕课网APP