条件标签WooCommerce存档[未解决]

时间:2021-09-09 作者:Ricardio

我正在用Wordpress和Woocommerce建立一个网店。在productcategories的productoverview(归档)上,如果产品的类别为“New”,我想显示一个标签。以下代码适用于product single,但如果我在content product中添加操作,它将不会显示在productcategory页面上。php。

我使用以下代码在单个产品页面上显示标签,它正常工作。

function resign_article_is_new(){

    if ( is_product() && has_term( \'Nieuw\', \'product_cat\' ) ) {
        echo \'<p class="new-lable">New</p>\';
    }
}
add_action( \'resign_new_article\', \'resign_article_is_new\');
当我想在productcategory概述上显示标签时,我使用了这个,但标签不会出现。

do_action(\'resign_new_article\');
希望你能告诉我我做错了什么

2 个回复
SO网友:Adnaves

您需要访问Woo产品循环,以便在商店/归档页面上输出额外内容(除非您使用自定义模板)

尝试以下操作:

add_action( \'woocommerce_after_shop_loop_item\', \'conditional_label\', 5 );
 
function conditional_label() {
   global $product;
   if (has_term( \'new\', \'product_cat\', $product->get_id())) {
        echo \'<p class="new-lable">New</p>\';
   }
}
没有经过测试,但应该会让你走上正确的方向。

看看这个hook guide, 用于显示可添加文本的位置。

SO网友:Ricardio

在搞乱了代码之后,我找到了一个解决方案,可以在产品归档页面的销售标签下面直接添加一个分类标签。

//Tonen van Nieuw-label op archive page
function show_new_label(){

    //Check all the categories of taxonomy product_cat
    $argsTax = array(\'orderby\' => \'name\', \'order\' => \'ASC\', \'fields\' => \'all\');
    $terms = wp_get_post_terms(get_the_id(), \'product_cat\', $argsTax);
    
    if(count($terms) > 0){
        foreach($terms as $term){
            $output .= $term->name; //name, slug, term_id, term_group, term_taxonomy_id, taxonomy, description, parent, count
        }
    };

    //Store all taxonomies in a variable
    $outputVar = $output;

    //Check if the right taxonomy is stored in the variable
    if(strpos($outputVar, \'New\') !== false){
        echo \'<p class="new-lable">New</p>\';
    } else{
        
    }

}
//Attach the function to the \'woocommerce_before_shop_loop_item\'-loop
add_action( \'woocommerce_before_shop_loop_item\', \'show_new_label\', 10 );
也许不是最干净的代码,但它工作得很完美

相关推荐

Regarding Tags And Categories

我想为我的网站使用一个新主题,但问题是,在我当前的主题中,它有特殊的标记,例如“abc标记”,而在我的新主题中,它没有。因此,如果我更改主题,所有帖子都会消失(404错误)。我的问题是,是否可以创建一个具有不同名称的新SPESIFI标记(在本例中为abc标记)?或者,即使我的新主题没有abc标记,也可以将旧的abc标记迁移到新的abc标记吗?我尝试过使用elementor,但仍然没有成功,任何帮助都将非常。。非常非常非常感谢!谢谢大家^_^