我正在处理的网站要求您登录才能看到价格,我一直在使用插件来执行此操作。然而,我只是扔了一个曲线球,并告诉网站上的一个特定类别必须始终显示价格,无论用户是否登录。
看起来插件使用
remove_action('woocommerce_single_product_summary', 'woocommerce_template_single_price', 10);
和
remove_action('woocommerce_after_shop_loop_item_title', 'woocommerce_template_loop_price', 10);
删除价格。这就是我试图重新添加特定类别产品的价格:
function make_surplus_price_always_visible(){
global $post;
$terms = wp_get_post_terms( $post->ID, 'product_cat' );
foreach ( $terms as $term ) $categories[] = $term->slug;
if ( in_array( 'surplus-allison-parts', $categories ) && !is_user_logged_in()) {
?>
<script>
alert('product in surplus');
</script>
<?php
//add_action('woocommerce_single_product_summary', 'woocommerce_template_single_price', 10);
add_action('woocommerce_after_shop_loop_item_title', 'woocommerce_template_loop_price', 10);
}
}
add_action('woocommerce_after_shop_loop_item_title', 'make_surplus_price_always_visible', 50);
但它没有加回价格。 jQuery警报正在运行,因此不符合“if”语句要求。
如何添加特定类别的产品价格?
答案 0 :(得分:1)
已更新:以下是使其正常工作的正确方法:
has_term()
Wordpress功能会更好更短。代码:
add_action('woocommerce_after_shop_loop_item_title', 'shop_loop_make_surplus_price_always_visible', 8 );
function shop_loop_make_surplus_price_always_visible(){
global $post;
// Set here your product categories (Names, slugs or IDs) in this array
$categories = array( 'surplus-allison-parts' );
if ( has_term( $categories, 'product_cat', $post->ID ) && ! is_user_logged_in()) {
add_action('woocommerce_after_shop_loop_item_title', 'woocommerce_template_loop_price', 10);
}
}
和
add_action('woocommerce_single_product_summary', 'single_product_make_surplus_price_always_visible', 8 );
function single_product_make_surplus_price_always_visible(){
global $post;
// Set here your product categories (Names, slugs or IDs) in this array
$categories = array( 'surplus-allison-parts' );
if ( has_term( $categories, 'product_cat', $post->ID ) && ! is_user_logged_in()) {
add_action('woocommerce_single_product_summary', 'woocommerce_template_single_price', 10);
}
}
代码放在活动子主题(或主题)的function.php文件中,或者放在任何插件文件中。
经过测试和工作