删除Woocommerce中针对特定产品类别的添加购物车按钮

问题描述 投票:3回答:3

我有一个问题如何从类别产品中删除购物车。如果我将它应用于特定的id或一般的所有内容,它的工作正常,但我无法为类别执行此操作。以下是我对此所做的代码。

此外,我正在努力将相同的模式应用于相关文章部分,所以任何帮助将不胜感激。

谢谢。

//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');

}
php wordpress woocommerce categories product
3个回答
5
投票

要使其适用于产品类别,您可以使用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文件中。


1
投票

你试过这样的事情:

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允许您查找与post(产品ID)关联的任何类别。

参考:https://codex.wordpress.org/Function_Reference/wp_get_post_terms


0
投票

你可以尝试这样的事情

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/

© www.soinside.com 2019 - 2024. All rights reserved.