在OceanWP主题中按分类修改WooCommerce全页面缺货提示文本
问题原因
你编写的回调函数需要接收$text和$product两个参数,但add_filter函数默认仅向回调函数传递1个参数,导致归档页调用该钩子时$product变量不存在,分类判断逻辑无法正常运行。
修复后的完整代码
function my_woo_outofstock_text( $text, $product ) { $specific_categories = array( 'original-paintings' ); if ( ! $product->is_in_stock() && has_term( $specific_categories, 'product_cat', $product->get_id() ) ) { $text = __( 'Sold', 'oceanwp' ); } else { $text = __( 'Unavailable', 'oceanwp' ); } return $text; } // 第4个参数设为2,明确声明要接收2个传入参数 add_filter( 'ocean_woo_outofstock_text', 'my_woo_outofstock_text', 20, 2 );
生效说明
修改完成后清空网站缓存即可在商品单页和商店归档页同时生效,如果需要适配多个分类,直接把对应分类的别名追加到$specific_categories数组中即可。
内容的提问来源于stack exchange,提问作者kate3686
相关产品推荐
相关产品推荐

