php - 避免出现在 Woocommerce 产品变体描述中的简短描述附加文本
问题描述
我想在适用于我的大多数产品的描述之后在我的所有产品上显示一条消息。但是,问题在于,在可变产品上,该消息将同时显示在产品的整体描述和选择变体时。
因此,我不希望选择变体时其他文本,因此我修改了我的功能以添加其他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' );
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;
}
代码在您的活动子主题(或活动主题)的functions.php 文件中。测试和工作。
推荐阅读
- android - 无法获取“https://dl.google.com/dl/android/maven2/com/google/gms/google-services/4.0.1/google-services-4.0.1.pom”
- react-native - 如何在 React Native 中获取 RadioGroup 中的选定项目?
- mysql - 如何在事件发生时使用 ionic 3 和 laravel 5.6 从服务器向移动应用程序的用户发送通知
- getgauge - 遍历 Gauge 中的表
- linear-programming - 逐步线性化的受限基输入
- mysql - 使用 student_id 显示学生出勤情况的单个查询
- c++ - 当一个人无权访问整个矩阵时,如何为矩阵分解编写乘法更新规则?
- node.js - 使用“httpntlm”在 React-Native 中进行 NTLM 身份验证
- amazon-web-services - 退出 0 后 jenkins 的工作需要很长时间才能进入下一步
- google-cloud-platform - Terraform:将文件复制到 GCP 计算实例