【问题标题】:Woocommerce Product allready in cartWoocommerce 产品已在购物车中
【发布时间】:2022-03-25 20:48:09
【问题描述】:

我有这个代码来显示产品何时已经在购物车中,我还需要它来显示产品的数量。

    add_filter( 'woocommerce_product_add_to_cart_text', 'wcpt_modify_add_to_cart_text', 9999, 2 );

function wcpt_modify_add_to_cart_text( $text, $product ) {
    
    // if cart is empty return 'Add to Quote'
    if ( WC()->cart->is_empty() ) return 'Add to Quote';

    // otherwise loop through cart items
    foreach ( WC()->cart->get_cart() as $cart_item_key => $cart_item ) {
        $product_id = apply_filters( 'woocommerce_cart_item_product_id', $cart_item['product_id'], $cart_item, $cart_item_key );
        $qty = $cart_item['quantity'];
        
        // if cart contains current product ID return its quantity
        if ( $product->get_id() == $product_id ) {
            return $qty . ' - Already Added';
        }
    }

    // if the cart is not empty but the product is not in the cart...
    return 'Add to Quote';
}

上面的更新代码用 Hooks ASWELL 更新 感谢@businessbloomer,上面的代码创造了奇迹,现在唯一的问题是我必须刷新页面才能看到任何内容

【问题讨论】:

  • 您的更新使其更加清晰。但是:你从哪里调用这个函数?通过简码?从模板文件?通过一个特定的钩子?你为什么使用did_action
  • @7uc1f3r,我已经编辑了我的问题,请查看说明。

标签: php wordpress woocommerce


【解决方案1】:

代码有点乱,这个修改后的版本应该可以了。我添加了一些内联 cmets 来解释每个新部分:

add_filter( 'woocommerce_product_add_to_cart_text', 'wcpt_modify_add_to_cart_text', 9999, 2 );

function wcpt_modify_add_to_cart_text( $text, $product ) {
    
    // if cart is empty return 'Add to Quote'
    if ( WC()->cart->is_empty() ) return 'Add to Quote';

    // otherwise loop through cart items
    foreach ( WC()->cart->get_cart() as $cart_item_key => $cart_item ) {
        $product_id = apply_filters( 'woocommerce_cart_item_product_id', $cart_item['product_id'], $cart_item, $cart_item_key );
        $qty = $cart_item['quantity'];
        
        // if cart contains current product ID return its quantity
        if ( $product->get_id() == $product_id ) {
            return $qty . ' - Already Added';
        }
    }

    // if cart is not empty but product is not in the cart...
    return 'Add to Quote';
}

截图:

【讨论】:

  • 哇,感谢您回复我的帖子。在过去的几个月里,我一直在使用你的教程。谢谢他们。上面的代码并没有带来想要的结果。即使我将其添加到购物车中,按钮仍会添加到报价中
  • 谢谢!立即测试
  • 好了,修复了几个错误。编辑后的版本经过测试并且可以工作。稍后添加屏幕截图
  • 已经在不同的 woo-commerce 产品表上尝试了此代码,但它不起作用,代码只是让页面一直加载,任何建议
  • 感谢它的代码,我改变了 add_filter( 'woocommerce_product_add_to_cart_text', 'wcpt_modify_add_to_cart_text', 9999, 2 );添加过滤器('woocommerce_product_single_add_to_cart_text','wcpt_modify_add_to_cart_text',9999,2);现在唯一的问题是我需要刷新页面才能更改任何想法
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-04-27
  • 2017-04-28
  • 2018-09-30
  • 2021-01-31
  • 1970-01-01
  • 2017-04-06
  • 1970-01-01
相关资源
最近更新 更多