首页 > 解决方案 > 如果某些商品在购物车中,则使用自定义付款方式

问题描述

如果用户在结帐页面上单击“确认订单”按钮后购物车中有某些商品,则需要实现自定义支付 api/redirect。我试图连接到“Woocommerce_checkout_order_processed”,在那里我可以找到我需要的数据并生成自定义重定向。我的问题是,它没有进行重定向(我已经尝试过 javascript 和 php 重定向),而是继续处理订单并将我重定向到原始付款表单。我也尝试将订单支付类型设置为自定义或 null,但此时它没有做任何事情。也许我使用了错误的钩子?尝试了像“woocommerce_before_pay_action”这样的一堆,但也没有运气。我可以看到它添加了我的重定向脚本,但在原始付款接管之前它没有机会重定向。

我的代码基本上是这样的:

add_action('woocommerce_checkout_order_processed', 'custom_checkout_order_processed');
function custom_checkout_order_processed($order_id){
   ... check if items is in cart, if so build $redict url and set $found to true (this part works)...

   if ($found) {
   $order->set_payment_method("methodcustom");
   ?><script>window.location.href = "<?php echo $redirect ?>";</script><?php
   }
}

标签: woocommercehook-woocommerce

解决方案


推荐阅读