如何在WooCommerce中为特定品类自定义低库存提示文本?
适配WooCommerce非OceanWP主题的低库存提示文本自定义方案
直接用WooCommerce原生过滤器就能实现,不用依赖特定主题的钩子,代码如下:
function custom_low_stock_text( $text, $product ) { // 替换成你需要按米显示的产品品类slug,多个用逗号分隔 $meter_categories = array( 'wooden-flooring', 'curtain-rods' ); // 检查产品是否属于目标品类,且处于低库存状态 if ( is_a( $product, 'WC_Product' ) && $product->is_low_stock() && has_term( $meter_categories, 'product_cat', $product->get_id() ) ) { // 获取当前库存数量 $stock_qty = $product->get_stock_quantity(); // 替换为米单位的提示文本 $text = sprintf( __( '仅剩%1$d m库存', 'woocommerce' ), $stock_qty ); } // 其他产品保持原有的平方米提示 return $text; } add_filter( 'woocommerce_get_availability_text', 'custom_low_stock_text', 20, 2 );
关键说明:
- 钩子选择:
woocommerce_get_availability_text是WooCommerce官方提供的通用钩子,所有主题都兼容,不需要依赖OceanWP的专属钩子 - 品类匹配:修改
$meter_categories里的slug为你实际需要按米显示的产品分类(在WP后台「产品-分类」里可以查看每个分类的slug) - 低库存判断:
$product->is_low_stock()会自动识别产品是否处于低库存状态(低库存阈值可以在WooCommerce设置-产品-库存里调整) - 文本替换:用
sprintf动态插入库存数量,确保提示文本和原格式一致,只是替换单位
使用方法:
把这段代码复制到你当前主题的functions.php文件末尾,或者通过自定义代码插件(比如Code Snippets)添加,保存后即可生效。
内容的提问来源于stack exchange,提问作者Crafted Tiles
相关产品推荐
相关产品推荐

