为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

PHP
一只甜甜圈 2023-06-18 16:04:28
我需要将订单详细信息发送到公司内部数据库。如果对数据库的调用返回成功响应,我希望只能保存订单。如果没有,我想停止订单并在结帐屏幕上显示一条消息。我正在尝试挂钩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 文件。测试和工作。

//img1.sycdn.imooc.com//648ebaa500015b0306530088.jpg

查看完整回答
反对 回复 2023-06-18
  • 1 回答
  • 0 关注
  • 78 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信