Php 避免在Woocommerce产品变体说明上显示简短的说明附加文本

Php 避免在Woocommerce产品变体说明上显示简短的说明附加文本,php,wordpress,woocommerce,product,product-variations,Php,Wordpress,Woocommerce,Product,Product Variations,我想在描述之后显示一条关于我所有产品的消息,该描述适用于我的大多数产品。然而,问题是,在可变产品上,消息将显示在产品的总体描述上以及选择变体时 因此,当选择变量时,我不需要额外的文本,所以我修改了我的函数,添加了一个else-if语句。功能如下: add_filter('woocommerce_short_description','ts_add_text_short_descr'); function ts_add_text_short_descr($description){ glo

我想在描述之后显示一条关于我所有产品的消息,该描述适用于我的大多数产品。然而,问题是,在可变产品上,消息将显示在产品的总体描述上以及选择变体时

因此,当选择变量时,我不需要额外的文本,所以我修改了我的函数,添加了一个else-if语句。功能如下:

add_filter('woocommerce_short_description','ts_add_text_short_descr');
function ts_add_text_short_descr($description){
    global $post;
    global $product;
    

    // Don't want the message if the product is in these specific categories
    if ( has_term( "training-courses-v2", "product_cat", $post->ID )  ||  has_term( "online-training-courses", "product_cat", $post->ID ) ) {
         return $description;
   }
    else if ( $product->is_type( 'variation' ) ) {
        return $description;
    }
    else {
         $text="<strong>Please note that as this is a hygiene product, only unopened products in their original, unopened condition and in their original packaging are eligible for a refund.</strong>";
    return $description.$text;
   }    
}
add_filter('woocommerce_short_description','ts_add_text_short_descr');
函数ts_add_text_short_descr($description){
全球$员额;
全球$产品;
//如果产品属于这些特定类别,则不需要此消息
if(有术语(“培训课程-v2”、“产品类别”$post->ID)|有术语(“在线培训课程”、“产品类别”$post->ID)){
返回$description;
}
如果($product->is_类型('VARIANCE')){
返回$description;
}
否则{
$text=“请注意,由于这是一种卫生产品,只有原始、未开封状态和原始包装的未开封产品才有资格获得退款。”;
返回$description.$text;
}    
}
但是,这仍然不起作用,文本出现在两个位置。我还尝试将产品类型更改为变量,但两处都没有显示消息


有没有办法在产品为变体时不添加信息?

使用以下方法避免在变量产品的每个变体描述中添加额外文本:

add_filter( 'woocommerce_short_description', 'ts_add_text_short_descr' );
function ts_add_text_short_descr( $description ){
    global $post, $product;

    $product_id = is_a($product, 'WC_Product') ? $product->get_id() : get_the_id();

    // Don't want the message if the product is in these specific categories
    if ( ! has_term( array("training-courses-v2", "online-training-courses"), "product_cat", $product_id ) ) {
        $description .= "<strong>Please note that as this is a hygiene product, only unopened products in their original, unopened condition and in their original packaging are eligible for a refund.</strong>";
    }
    return $description;
}

add_filter( 'woocommerce_available_variation', 'filter_wc_available_variation_desscription', 10, 3);
function filter_wc_available_variation_desscription( $data, $product, $variation ) {
    if ( ! has_term( array("training-courses-v2", "online-training-courses"), "product_cat", $product->get_id() ) ) {
        $data['variation_description'] = get_post_meta($variation->get_id(), '_variation_description', true);
    }

    return $data;
}
add_filter('woocommerce_short_description'、'ts_add_text_short_descr');
函数ts_add_text_short_descr($description){
全球$post$product;
$product_id=is_a($product,'WC_product')?$product->get_id():get_the_id();
//如果产品属于这些特定类别,则不需要此消息
if(!具有_术语(数组(“培训课程-v2”、“在线培训课程”)、“产品目录”、“产品id)){
$description.=“请注意,由于这是一种卫生产品,只有原始、未开封状态和原始包装的未开封产品才有资格获得退款。”;
}
返回$description;
}
添加过滤器('woocommerce\u available\u variation'、'filter\u wc\u available\u variation\u description',10,3);
函数过滤器\u wc\u可用\u变体\u描述($data、$product、$variation){
如果(!有_术语(数组(“training-courses-v2”,“在线培训课程”),“product_cat”,“$product->get_id())){
$data['variation\u description']=get\u post\u meta($variation->get\u id(),'u variation\u description',true);
}
返回$data;
}
代码进入活动子主题(或活动主题)的functions.php文件。测试和工作