Woocommerce:当 Coupon 使总零 / 0 时删除 PayPal 费用

Posted

技术标签:

【中文标题】Woocommerce:当 Coupon 使总零 / 0 时删除 PayPal 费用【英文标题】:Woocommerce: Removing PayPal Fees when Coupon makes the total Zero / 0 【发布时间】:2016-12-13 05:33:39 【问题描述】:

希望我能为以下不良行为找到解决方案: 我正在使用 Woocommerce 2.6.4 运行 Wordpress 4.5.3。我也安装了 基于 WooCommerce 支付网关的费用 2.2.16。这个插件允许我在结帐时添加 PayPal 费用。

我也默认不允许现金结帐。

我遇到的问题是,如果用户使用的优惠券使他们的总数为零...我本能直觉地预期 i) PayPal 费用不会显示 ii) 您只需下订单即可结帐。

两者都没有发生。

所以我决定启用现金结账并自动禁用它——(使用 unset(),无法找到设置网关的方法,仅取消设置)——如果购物车总数等于使用此功能的 PayPal 费用钩子:woocommerce_available_payment_gateways。这至少可以让他们在没有唯一选择是 PayPal 网关的情况下结帐。

问题是我还没有弄清楚如何阻止 PayPal 费用显示并添加到总数中。

非常感谢任何指导/帮助

【问题讨论】:

您检查基于 WooCommerce 支付网关的费用插件和他们的文档?,可能有任何类型的规则来显示费用或不显示费用 【参考方案1】:

在插件中,有一个选项Maximum Value,可以让您在产品价格超过一定金额时停用产品费用。请阅读https://docs.woocommerce.com/document/payment-gateway-based-fees/

检查此插件后。没有最低金额的选项。但如果总金额为 0,您可以收取 0 费用。 打开文件 woocommerce-additional-fees\classes\class-wc-add-fees.php.in calculate_gateway_fee_product 添加代码。

if($check_total==0)
   return $check_total;

在第 2122 行 return $fees_calc; 之前。如有任何疑问,您可以发表评论。

【讨论】:

非常感谢您的回复,但我不需要不存在的对比选项:最小值 - 允许您停用产品费用...并且需要将其设置为零.. ..本质上这是我需要弄清楚如何编码的所需“选项”...我可能会弄错并且会在我到达计算机时尝试最大值设置... 你勾选了这个选项?它不工作。?您正在使用计算费用并添加到总价的插件。如果 pluign 没有设置规则的选项,则您需要编辑插件文件或检查哪个钩子在结帐时起作用。 是的,正如我所说的......我们需要一个最小值选项......或者本质上是我的帖子的主题 - 如何编码看到它丢失/这个场景有没有得到 lugin 的照顾?谢谢 你能把这个插件的 zip 文件发给我,我会检查它的钩子。 感谢您的提议 mollie.. 整天都在外面想了想.. 回到家并进行了测试,它起作用了 :-) 该插件允许您为任何支付网关支付费用所以我设置一个现金:我支付了 -0.2 的费用(以抵消 0.2 的贝宝费用)并将其最大值设置为 0.1 ......实际上它只适用于购物车为零的情况 到目前为止,测试结果很好。 ..【参考方案2】:

无法让插件完成我需要的工作 - 我认为这是对开发人员的疏忽。

看到插件的所有其他功能对我来说都是多余的并且不需要..我放弃了插件并简单地添加了我自己的 PayPal 费用代码,并对这个 sn-p 进行了简单的修改:

为所有交易添加基本附加费 https://docs.woocommerce.com/document/add-a-surcharge-to-cart-and-checkout-uses-fees-api/

【讨论】:

以上是关于Woocommerce:当 Coupon 使总零 / 0 时删除 PayPal 费用的主要内容,如果未能解决你的问题,请参考以下文章

如何定位woocommerce元素?

Woocommerce 如何将优惠券表格移动到结帐页面的底部

WooCommerce:检查优惠券是不是有效

在 WooCommerce 感谢页面中显示优惠券使用次数和限制

WooCommerce 优惠券如何存储在数据库中?

Woocommerce 购物车优惠券价值占位符更改