首页 > 解决方案 > 货币更改后,Woocommerce 迷你购物车小计无法正确更新

问题描述

是否有任何 JavaScript 或 PHP 解决方案可以根据页面重新加载时的可用价格值重新计算和替换迷你购物车的小计?

目前我有两种不同的货币,例如欧元和里拉,当我以欧元货币将一些商品添加到购物车时,小计是正确的,但是当我以里拉货币重新加载页面时,添加商品的小计值显然是错误的,所以我需要重新计算页面加载时可用项目的小计,并将其替换为 Woocommerce 返回的小计值。

你能帮我做吗?


更新:我尝试了一些调整,但仍然无法正常工作!默认情况下 mini-cart.php 使用小部件挂钩来显示总计或小计:

do_action( 'woocommerce_widget_shopping_cart_total' );

我尝试了此代码,但仍然在使用不同货币的页面加载时不显示正确的小计(它返回的值类似于其他货币的小计):

  <p class="woocommerce-mini-cart__total total">
        <?php
            $subtotal_txt   = isset($options['sc-subtotal-text']) ? $options['sc-subtotal-text']: __("Subtotal:",'side-cart-woocommerce');
        ?>
    <span><?php esc_attr_e($subtotal_txt,'side-cart-woocommerce') ?></span> 
    <?php echo WC()->cart->get_cart_subtotal(); ?>
    </p>

我应该添加 JS 或 Ajax 片段以在每个页面加载时都有正确的小计吗?

标签: javascriptphpwordpresswoocommercehook-woocommerce

解决方案


:重点是调用calculate_totals(),好像是个bug。无论如何,您可以改用此代码:

<p class="woocommerce-mini-cart__total total">
    <?php 
         WC()->cart->calculate_totals();
         do_action( 'woocommerce_widget_shopping_cart_total' );
    ?>
</p>

推荐阅读