我有一个问题如何从类别产品中删除购物车。如果我将它应用于特定的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');
}
要使其适用于产品类别,您可以使用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文件中。
你试过这样的事情:
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
你可以尝试这样的事情
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/