WooCommerce ajax购物车页面 - 禁用"删除商品" (红色图标" X"按钮)

时间:2016-07-12 21:02:43

标签: php ajax wordpress woocommerce cart

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

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

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

但它没有用。

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

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

这是我的menucart代码:

<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>

pastebin上的外部来源:http://pastebin.com/7rXuBQPj

感谢。

1 个答案:

答案 0 :(得分:1)

所以,只有当您在购物车页 时才会遇到问题,因为在这种情况下您有2个购物车:

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

所以他们处于冲突中,这是正常的。你必须在他们之间做出选择。

问题:您是否真的需要这款小型购物车,因为它位于购物车页面上?

2个解决方案:

  1. 例如,在购物车页面上设置简易迷你购物车版(避免冲突和实时刷新项目(ajax删除))仅限于项目计数。或者您可以完全禁用以获取购物车页面。为此,您可以使用条件 is_cart()

  2. 绕过购物车页面(更加困难),将缺失的功能扩展到您的实际迷你车:

    • 按项目行添加数量按钮
    • 添加可选优惠券字段功能
  3. 在案例2中,您必须将客户重定向到结帐,在某些WooCommerce商店中有什么经典行为。