WooCommerce ajax 购物车页面 - 禁用“删除项目”(红色图标“X”按钮)


WooCommerce ajax cart page - Disable "remove item" (red icon "X" button)

在WooCommerce ajax购物车页面中,我尝试使用以下命令分离默认的javascript事件以删除添加的项目(带有十字的小红色图标):

$(".remove").off("click"); 

$(".remove").unbind("click"); 

但它没有用。

尝试这样做的主要原因是因为,在标题中,我有一个带有产品编号通知的自定义菜单购物车图标。而且我也无法通过WooCommerce ajax更新此通知编号,而只能刷新页面。

如何禁用此 JavaScript 事件?或者如何使通知脚本与 ajax 一起使用?

这是我的菜单车代码:

<div id="expanded-menucart"> 
<?php  
foreach ( WC()->cart->get_cart() as $cart_item_key => $cart_item ) {
    ?>
    <div class="one-menucart-item">
        <?php 
        $_product = apply_filters( 'woocommerce_cart_item_product', $cart_item['data'], $cart_item, $cart_item_key );
        $thumbnail = apply_filters( 'woocommerce_cart_item_thumbnail', $_product->get_image(), $cart_item, $cart_item_key );
        $product_subtotal = apply_filters( 'woocommerce_cart_item_subtotal', WC()->cart->get_product_subtotal( $_product, $cart_item['quantity']), $cart_item, $cart_item_key );
        $quantity = $_product->get_stock_quantity();
        $antal = $cart_item['variation']['attribute_antal']; 
        $productid = $cart_item['product_id']; 
        echo apply_filters( 'woocommerce_cart_item_remove_link', sprintf(
            '<a href="%s" class="remove, cart-remove" title="%s" data-product_id="%s" data-product_sku="%s">&times;</a>',
            esc_url( WC()->cart->get_remove_url( $cart_item_key ) ),
            __( 'Remove this item', 'woocommerce' ),
            esc_attr( $product_id ),
            esc_attr( $_product->get_sku() )
            ), $cart_item_key ); 
        echo $thumbnail; ?>
        <a id="<?php $productid; ?>" href="<?php the_permalink($productid); ?>"> <?php echo $cart_item['data']->post->post_title;?></a><br><br><?php
        echo $antal;
        echo $product_subtotal;?><br>
    </div><?php
}
?>
<?php global $woocommerce; ?>
    <p>TOTAL:
        <a class="cart-contents" href="<?php echo $woocommerce->cart->get_cart_url(); ?>"><?php echo $woocommerce->cart->get_cart_total(); ?></a></p><br>
    <?php if ( WC()->cart->get_cart_contents_count() != 0 ) { ?>
        <div class="row">
            <div class="col-lg-12 col-md-12 col-sm-12 col-xs-12">
                <div class="menucart-checkout">
                    <a href="<?php get_home_url(); ?>/fcb/checkout">TILL CHECKOUTEN</a>
                </div>
            </div>
        </div>
    <?php } ?>
    </div>

糊状物的外部来源:http://pastebin.com/7rXuBQPj

谢谢。

所以你的问题只在购物车页面时,因为在这种情况下你有 2 个购物车:

  • 您的标题中有一个迷你购物车(带有通知,但没有数量按钮)。
  • 您在页面内容中有普通购物车(没有该通知,但带有数量按钮)。

所以他们处于冲突之中,这是正常的。您将不得不在它们之间进行选择。


问题:您真的需要购物车页面上的迷你购物车吗?

2 种解决方案:

  1. 例如,在购物车页面上有一个轻量级迷你购物车版本(避免冲突和实时刷新项目(ajax 删除)),仅具有项目计数。或者,您可以为购物车页面完全禁用它。为此,您可以使用条件is_cart()

  2. 要绕过购物车页面(困难得多)将缺少的功能扩展到实际的迷你购物车:

    • 按物料行添加数量按钮
    • 添加可选的优惠券字段功能

在案例2中,您将不得不将客户重定向到结帐,这是某些WooCommerce商店的经典行为。