对于那些运输方式,我想: - "Free shipping"仅适用于货到付款(COD)付款方式(我只是将其重命名为其他标签,但我使用的是COD网关) . - "Flat rate"用于其他支付网关(当然不包括COD支付方式) .
My question: 如何选择特定支付网关免费送货?
例如,在此屏幕截图中:
类似的悬而未决的问题:Woocommerce free shipping based on payment gateway selected
对于那些运输方式,我想: - "Free shipping"仅适用于货到付款(COD)付款方式(我只是将其重命名为其他标签,但我使用的是COD网关) . - "Flat rate"用于其他支付网关(当然不包括COD支付方式) .
My question: 如何选择特定支付网关免费送货?
例如,在此屏幕截图中:
类似的悬而未决的问题:Woocommerce free shipping based on payment gateway selected
1 回答
WooCommerce要求在网关之前选择运输,这是COD的工作方式,因为它在提供COD作为选项之前检查是否选择了启用的运输方法 . 因此,如果COD方法对您不起作用,则没有其他方法可以实现此目的,因为您要求结帐流程从设计方式向后工作 .
由于WooCommerce的工作方式,一旦选择了支付网关,您就无法修改运费 . 您只能在每个网关的代码中添加额外费用 .
经过一段时间的思考,我很好奇,并且认为我有一个游戏,看看它是否真的不可能 . 事实证明,通过一些粗暴的黑客你可以实际上让它工作,这是一个基本的插件,将完成任务:
将上面的代码保存为 free_shipping_for_bacs.php 并使用WordPress中的上载插件功能安装插件 .
基本上这样做是检查会话以查看选择了哪种付款方式,然后如果选择了
bacs
方法,则增加一笔费用减去运费总额 . 这是有效的,但是因为使用AJAX购物车更新,您需要在每次付款方式更改时触发附加到JavaScript正文的update_checkout
事件,以便查看上面购物车中反映的更改 .所以作为一个黑客我添加了一个循环,每隔500毫秒重新添加更改处理程序到页脚事件(如果你的主题没有实现wp_footer钩子,请确保添加它),如果你决定,这可以而且应该改进使用此代码,因为有更好的方法来检查更改事件是否需要重新添加,这只是我今天没有很多时间 .
幸田来未