我现在知道/已经弄清楚:我目前正在触发jQuery事件并通过日期发送到自定义脚本,这是我需要做的事情.我无法在woocommerce类中找到只返回发货数据的函数,因此我认为我不能将其作为片段返回并将其作为片段返回,就像它们已经用于结账一样.
但是,我确实找到了
WC_AJAX::update_order_review()
在其中有一个动作调用,我已经成功地将一个函数挂钩到该动作上,并且我已经能够触发该动作
t( 'body' ).trigger( 'update_checkout' );
它会触发更新结帐审核块的操作.
我真正的问题是:这一切都很棒,我看起来正朝着正确的方向发展,但我不知道如何在我的迷航行动中获得运输方法,以便在必要时取消它们.有谁知道我是否可以通过$woocommerce全局对象获取它们,然后让它们被其余的WC_AJAX方法读取?
这里的任何帮助将不胜感激.
**注意:是的,我知道jQuery中的’t’而不是’$’.不是一个错误
基本上我所做的是使用woocommerce会话,两个钩子和一个刷新结账订单审查的javascript触发器.
通过WC_AJAX :: update_order_review中发生的woocommerce_checkout_update_order_review挂钩和使用前述$(‘body’).trigger(‘update_checkout’)的组合;打电话,我可以参与更新结帐审核块的操作.到现在为止还挺好.
我在这个函数中所做的是检查字段是否有值,如果有,则将其保存在WC() – >会话中.然后,由于WC_AJAX :: update_order_review调用woocommerce_order_review()来获取所有更新的购物车和运输方法,我查看了与该功能相关的模板并找到了另一个钩子woocommerce_review_order_before_shipping,它允许我在购物车模板循环之前修改运输方式通过并在wc_cart_totals_shipping_html()中构建送货选项.
现在,我知道,你在想,等等,我需要结账运输方法,而不是购物车,但实际上,它们似乎是同一个.
希望我浪费的时间会帮助其他有类似问题的人.
干杯.