php - 从 Woocommerce 中的非销售产品中自动删除销售产品类别
问题描述
在 woocommerce 中,我正在使用此答案线程中的代码,该代码将“销售”产品类别分配给正在销售的产品(因此具有有效的销售价格)。
当产品不再销售时,我试图删除“销售”产品类别但没有成功。是否可以在不再销售时自动从“销售”类别中删除产品?
解决方案
以下版本代码将在不再销售时自动从“销售”类别中删除产品:
add_action( 'save_post_product', 'update_product_set_sale_cat' );
function update_product_set_sale_cat( $post_id ) {
if ( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE ) {
return $post_id;
}
if ( ! current_user_can( 'edit_product', $post_id ) ) {
return $post_id;
}
if( get_post_status( $post_id ) == 'publish' && isset($_POST['_sale_price']) ) {
$sale_price = $_POST['_sale_price'];
if( $sale_price >= 0 && ! has_term( 'Sale', 'product_cat', $post_id ) ){
wp_set_object_terms($post_id, 'sale', 'product_cat', true );
} elseif ( $sale_price == '' && has_term( 'Sale', 'product_cat', $post_id ) ) {
wp_remove_object_terms( $post_id, 'sale', 'product_cat' );
}
}
}
代码位于您的活动子主题(或活动主题)的 function.php 文件中。测试和工作。
推荐阅读
- javascript - 正则表达式匹配不包含此字符串的字符串之间的内容
- c++ - 如何解析字符串并获取字符串QT的特定部分
- css - Angular 11 将边框应用于组件
- forms - 表单中的复选框仅返回 1(最后选择)值
- sql - 简单 gSheet 查询根据未在查询中评估的列中的数据为 Count 函数返回错误值
- python - PyTorch 使用乘法减少列
- r - 使用 dplyr 使用两列之间的公共值进行过滤
- r - 是否有用于将原始输入转换为 .xlsx 文件的 R 函数?
- c++ - 使用 AVX2 将可变长度整数的 varint64 流解压缩为 __m256i 的 qword 元素
- rust - 为什么 Rust 中的 trait 要求任何方法都没有任何类型参数才能保证对象安全?