【问题标题】:WooCommerce ajax cart page - Disable "remove item" (red icon "X" button)WooCommerce ajax 购物车页面 - 禁用“删除项目”(红色图标“X”按钮)
【发布时间】:2017-08-16 06:18:52
【问题描述】:

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

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

谢谢。

【问题讨论】:

  • 谢谢@LoicTheAztec! :) 我从我的购物车页面中删除了 menucart 图标,现在一切似乎都很好。再次感谢您!

标签: php ajax wordpress woocommerce cart


【解决方案1】:

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

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

所以他们有冲突,这是正常的。您必须在它们之间做出选择。


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

2 个解决方案:

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

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

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

在情况 2 中,您必须将客户重定向到结帐,这是一些 WooCommerce 商店的经典行为。

【讨论】:

    猜你喜欢
    • 2019-07-01
    • 2019-08-29
    • 1970-01-01
    • 2021-04-02
    • 2017-01-29
    • 1970-01-01
    • 1970-01-01
    • 2021-05-21
    • 1970-01-01
    相关资源
    最近更新 更多