问题可能是奇怪的:(
我试图通过 woocommerce 的 checkout page 显示一些关于折扣的折扣信息 woocommerce 如果我在购物车页面中应用优惠券并访问结帐注意到挂钩消息显示正确的折扣 Value ,但如果我从结帐中删除/添加没有出现在那个 woocommerce_before_checkout_form
钩我尝试通过删除和添加该钩但仍然短码值没有更新,我测试了多次与以下功能可以任何人有一些工作的想法/建议将是伟大的
<?php
/*
* Plugin Name: Hook Priority
*
*/
function add_my_shortcode() {
ob_start();
global $woocommerce;
echo $woocommerce->cart->discount_cart;
return ob_get_clean();
}
add_shortcode('my_shortcode', 'add_my_shortcode');
function add_message_in_checkout() {
var_dump(do_shortcode('[my_shortcode]'));
}
add_action('woocommerce_before_checkout_form', 'add_message_in_checkout');
function coupon_removed_function( $coupon_code ) {
remove_all_actions('woocommerce_before_checkout_form');
remove_shortcode('my_shortcode');
do_action('woocommerce_before_checkout_form');
}
add_action("woocommerce_removed_coupon", 'coupon_removed_function');
我尝试使用javascript重新加载页面(刷新实例)并且它正在工作,我不想使用那个,除非没有要克服的本机wordpress / php解决方案 .
echo "<script type='text/javascript'>location.reload();</script>";
我身边目前发生的事情是
我从购物车添加了10美元的折扣,然后在结帐时,我可以看到10美元的 Value ,但如果我从结帐中删除优惠券它仍然显示10美元但它应该是0美元 .
提前致谢 .
1 回答
您可以使用 jQuery 来实现结果 .
Approach :
几乎每次结账页面发生任何事情时,
WooCommerce
都会触发jQuery事件updated_checkout
. 因此,您可以使用该事件来实现所需的结果 .Modification in your current code :
1)首先添加
JS
,以便我们可以在JS文件中进行jQuery
编码 .因此,在修改后,您的代码将如下所示:
customPlugin.php
custom.js
在代码中查找我的内联注释以理解代码 .
如果您有任何疑问,请告诉我 .