Woocommerce中未从购物车中删除最后一个项目

问题描述 投票:1回答:1

我无法从购物车中删除最后一个商品。我在购物车中添加了几种产品-删除所有物品,但最后一个不是。 Ajax可以正常工作,显示一条消息,指出该产品已从购物车中删除,但从外观上看-它没有消失。刷新页面后,购物车为空。

ajax woocommerce cart
1个回答
0
投票

我在我们的一个网站上遇到了同样的问题。我一直在关注/woocommerce/assets/js/frontend/cart.js中的javascript,我注意到下面的代码行$( '.woocommerce-cart-form__contents' ).closest( '.woocommerce' ).replaceWith( $cart_html );替换了购物车页面中的所有购物车内容。

[很可能您已覆盖默认的woocommerce购物车模板,并删除了自定义模板中不存在的类.woocommerce-cart-form__contents,因此无法用javascript替换html。

您有2个解决方案:

选项1:尝试将.woocommerce-cart-form__contents包含在cart.php模板中

选项2:如果您不想添加该类,则woocommerce在清空购物车时会触发javascript事件wc_cart_emptied。因此,您可以在主题的javascript中使用以下代码,以确保触发该操作时清空购物车页面中的DOM元素:

    /**
     * When Cart has been emptied we need to make sure that cart form and cart collaterals in /cart page are removed.
     *
     * @param {Event} e
     */
    function cartEmptied(e) {
        //The below 2 elements can be changed according to the classes you use in your custom cart template
        var cartForm = $('.woocommerce-cart-form');
        var cartCollaterals = $('.cart-collaterals');

        if (cartForm.length > 0) {
            cartForm.remove();
        }

        if (cartCollaterals.length > 0) {
            cartCollaterals.remove();
        }
    }
    $(document.body).on('wc_cart_emptied', cartEmptied);
© www.soinside.com 2019 - 2024. All rights reserved.