Удалить кнопку "Добавить корзину" в Woocommerce для определенной категории товаров


У меня проблема, как удалить корзину из категории товаров. Это работает просто отлично, если я применяю его к определенному идентификатору или ко всем в целом, но я не могу сделать это для категории. Ниже приведен мой код, который я сделал по этому поводу.

Кроме того, я изо всех сил пытаюсь применить этот же шаблон к разделу связанных статей, поэтому буду признателен за любую помощь.

Спасибо.

//function for deleting ....

function remove_product_description_add_cart_button(){

    global $product;

    //Remove Add to Cart button from product description of product with id 1234    

    if ($product->id == 188){

    remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_add_to_cart', 30 );

    }

add_action('wp','remove_product_description_add_cart_button');

}
Author: LoicTheAztec, 2017-01-15

3 answers

Чтобы заставить его работать с категорией продуктов, вы можете использовать условную функцию WordPress has_term() таким образом:

//function for deleting ....
function remove_product_description_add_cart_button(){
    global $product;

    // Set HERE your category ID, slug or name (or an array)
    $category = 'categoryslug';

    //Remove Add to Cart button from product description of product with id 1234    
    if ( has_term( $category, 'product_cat', $product->id ) )
        remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_add_to_cart', 30 );

}
add_action('wp','remove_product_description_add_cart_button');

Код входит в function.php файл вашей активной дочерней темы (или темы). Или также в любом файле php плагина.

 5
Author: LoicTheAztec, 2017-01-15 16:38:14

Вы должны попробовать что-то вроде этого:

function remove_product_description_add_cart_button(){

global $product;

    $termsOfProduct =  wp_get_post_terms( $product->id, 'product_cat' );   

    if (in_array("CatToFind", $termsOfProduct)) {

    remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_add_to_cart', 30 );

    }

add_action('wp','remove_product_description_add_cart_button');

}

Категория товаров в Woocommerce - это просто термины. Wp_get_post_terms позволяют находить любые категории, связанные с публикацией (идентификатор продукта).

Ссылка: https://codex.wordpress.org/Function_Reference/wp_get_post_terms

 1
Author: mariobros, 2017-01-15 13:56:38

Вы можете попробовать что-то вроде этого

function western_custom_buy_buttons(){

   $product = get_product();

   if ( has_term( 'category1', 'product_cat') ){

   // removing the purchase buttons

                            remove_action( 'woocommerce_after_shop_loop_item', 'woocommerce_template_loop_add_to_cart' );



   remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_add_to_cart', 30 );

   remove_action( 'woocommerce_simple_add_to_cart', 'woocommerce_simple_add_to_cart', 30 );

   remove_action( 'woocommerce_grouped_add_to_cart', 'woocommerce_grouped_add_to_cart', 30 );

   remove_action( 'woocommerce_variable_add_to_cart', 'woocommerce_variable_add_to_cart', 30 );

   remove_action( 'woocommerce_external_add_to_cart', 'woocommerce_external_add_to_cart', 30 );

   }

}

add_action( 'wp', 'western_custom_buy_buttons' );

Ссылка: https://www.themelocation.com/how-to-remove-add-to-cart-button-from-a-certain-category-woocommerce/

 0
Author: Mark Dave Tumanda, 2017-05-03 02:59:18