woocommerce - 如果某些商品在购物车中,则使用自定义付款方式
问题描述
如果用户在结帐页面上单击“确认订单”按钮后购物车中有某些商品,则需要实现自定义支付 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
}
}
解决方案
推荐阅读
- c++ - 如何让 VS Code 提出更有限的重命名?
- point-clouds - PLY 文件格式 - 带有颜色 RGB 信息的点云的正确标题是什么?
- amazon-web-services - 在 terraform 中配置内部网络负载均衡器
- javascript - 使用 Typescript 泛型类型
- plot - 如何为 highchart 添加数据标签?
- sql - SQL 返回项目的排名
- google-cloud-platform - GCP 管理多个云功能流的最佳方式
- azure - 在 Durable Functions 中等待外部事件
- python - 无法从线性函数中获得正确的坐标
- python - 熊猫:绘图时忽略索引中的年份,但保留小时/日/月