仅在一个产品上从WooCommerce循环中删除添加到购物车

时间:2015-06-08 09:14:38

标签: wordpress woocommerce

尝试仅从产品循环中的产品中删除“添加到购物车”按钮,然后添加一些文字。

以下代码确实删除了按钮,但在条件验证后也从所有按钮中删除:

function remove_purchase_buttons_from_loop() {

if( $product->id == $_product->id ) {
    remove_action( 'woocommerce_after_shop_loop_item', 'woocommerce_template_loop_add_to_cart', 10 );
    add_action( 'woocommerce_after_shop_loop_item',  'level_already_in_cart_notice', 10 );
       }

}

add_action ('woocommerce_before_shop_loop_item', 'remove_purchase_buttons_from_loop'));

我理解为什么会发生这种情况,但是什么是正确的解决方案

1 个答案:

答案 0 :(得分:0)

试试这个

if(is_single()) {
  function remove_purchase_buttons_from_loop() {

     if( $product->id == $_product->id ) {
         remove_action( 'woocommerce_after_shop_loop_item', 'woocommerce_template_loop_add_to_cart', 10 );
         add_action( 'woocommerce_after_shop_loop_item',  'level_already_in_cart_notice', 10 );
       }
   }
   add_action ('woocommerce_before_shop_loop_item', 'remove_purchase_buttons_from_loop'));
} else {
   // your code
}

我希望这会对你有所帮助。