WooCommerce:当产品已经在购物车中时,更改添加到购物车文本

时间:2020-10-18 14:48:48

标签: php wordpress woocommerce product cart

我在更改WooCommerce / WordPress中的“添加到购物车” 按钮的文本时遇到问题。

当前下面的代码是我想要的,以便如果某个商品已经在购物车中,则“添加到购物车” 按钮通过更改文本以表明它已经在购物车中来反映这一点。 / p>

此刻,即使产品在购物车中,它仍然是“添加到购物车” 。奇怪的是,如果删除了if条件,则文本会更改,因此我假设if条件存在问题,但看不到任何问题。

add_filter('woocommerce_product_add_to_cart_text', 'woocommerce_custom_add_to_cart_text');
function woocommerce_custom_add_to_cart_text($add_to_cart_text, $product_id) {
    global $woocommerce;
    
    foreach($woocommerce->cart->get_cart() as $key => $val ) {
        $_product = $val['data'];
 
        if($product_id == $_product->id ) {
            $add_to_cart_text = 'Already in cart';
        }
        
    return $add_to_cart_text;
    }
}

1 个答案:

答案 0 :(得分:1)

  • model.compile(loss="categorical_crossentropy",optimizer=adadelta,metrics=['accuracy']) 应该是$_product->id
  • 在foreach循环外使用$_product->get_id()
  • 不需要全局return
  • $woocommerce过滤器挂钩中的第二个参数是woocommerce_product_add_to_cart_text,而不是$product

所以你得到

$product_id