php – Woocommerce通过ajax更新结账方式

前端之家收集整理的这篇文章主要介绍了php – Woocommerce通过ajax更新结账方式前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我想要实现的目标:在woocommerce中,当用户选择日期时,我需要检查通过datepicker字段发送的日期,然后通过ajax更新送货选项,以便免费送货时可以取出不适当. @H_502_1@我现在知道/已经弄清楚:我目前正在触发jQuery事件并通过日期发送到自定义脚本,这是我需要做的事情.我无法在woocommerce类中找到只返回发货数据的函数,因此我认为我不能将其作为片段返回并将其作为片段返回,就像它们已经用于结账一样.

@H_502_1@但是,我确实找到了

WC_AJAX::update_order_review()
@H_502_1@在其中有一个动作调用,我已经成功地将一个函数挂钩到该动作上,并且我已经能够触发该动作

t( 'body' ).trigger( 'update_checkout' );
@H_502_1@它会触发更新结帐审核块的操作.

@H_502_1@我真正的问题是:这一切都很棒,我看起来正朝着正确的方向发展,但我不知道如何在我的迷航行动中获得运输方法,以便在必要时取消它们.有谁知道我是否可以通过$woocommerce全局对象获取它们,然后让它们被其余的WC_AJAX方法读取?

@H_502_1@这里的任何帮助将不胜感激.

@H_502_1@**注意:是的,我知道jQuery中的’t’而不是’$’.不是一个错误

因此,对于那些可能需要这些的人来说,它需要在woocommerce中进行一些尝试,因为他们处理运输和支付选项的购物车/结账价值的输出方式,但最终,我可以使用woocommerce的钩子来实现它,以及非常少的插件修改,所以,一个非常干净的解决方案. @H_502_1@基本上我所做的是使用woocommerce会话,两个钩子和一个刷新结账订单审查的javascript触发器.

@H_502_1@通过WC_AJAX :: update_order_review中发生的woocommerce_checkout_update_order_review挂钩和使用前述$(‘body’).trigger(‘update_checkout’)的组合;打电话,我可以参与更新结帐审核块的操作.到现在为止还挺好.

@H_502_1@我在这个函数中所做的是检查字段是否有值,如果有,则将其保存在WC() – >会话中.然后,由于WC_AJAX :: update_order_review调用woocommerce_order_review()来获取所有更新的购物车和运输方法,我查看了与该功能相关的模板并找到了另一个钩子woocommerce_review_order_before_shipping,它允许我在购物车模板循环之前修改运输方式通过并在wc_cart_totals_shipping_html()中构建送货选项.

@H_502_1@现在,我知道,你在想,等等,我需要结账运输方法,而不是购物车,但实际上,它们似乎是同一个.

@H_502_1@希望我浪费的时间会帮助其他有类似问题的人.

@H_502_1@干杯.

原文链接:https://www.f2er.com/php/135875.html

猜你在找的PHP相关文章