修改无变体WooCommerce可变商品的缺货提示文本
修改未添加变体的可变商品缺货提示文本
Got it,这个场景的提示文本修改确实和普通变体缺货的情况不一样,给你两种实用的解决方法,优先推荐第一种(更安全,不怕插件/主题更新覆盖):
方法一:使用WooCommerce过滤器钩子(推荐)
你可以通过woocommerce_get_availability_text这个钩子来针对性修改文本,只对「设置为可变商品但未添加任何变体」的商品生效。
把下面的代码添加到你的子主题functions.php文件,或者用自定义代码插件(比如Code Snippets)来添加:
add_filter( 'woocommerce_get_availability_text', 'custom_variable_no_variants_stock_text', 10, 2 ); function custom_variable_no_variants_stock_text( $text, $product ) { // 判断当前商品是可变商品,且没有任何子变体 if ( $product->is_type('variable') && empty( $product->get_children() ) ) { // 这里替换成你想要的提示文本 $text = "这个商品目前还未配置具体规格,请稍后再试或联系客服咨询"; } return $text; }
解释一下:
- 先判断商品类型是可变商品,再检查它的子变体数组是否为空(也就是没加任何变体)
- 满足条件的话,就把默认文本替换成你自定义的内容,不满足的话就保留原有逻辑
方法二:修改WooCommerce模板文件(不推荐,需注意更新)
如果习惯用模板修改的方式,可以这样操作:
- 在你的子主题里创建
woocommerce/single-product/add-to-cart/路径 - 把WooCommerce插件目录里的
single-product/add-to-cart/variable.php文件复制到刚才创建的子主题路径下 - 打开复制后的文件,找到这段代码:
if ( empty( $available_variations ) ) { if ( $product->is_in_stock() ) { echo '<p class="stock in-stock">' . esc_html__( 'This product is currently out of stock and unavailable.', 'woocommerce' ) . '</p>'; } else { echo wc_get_stock_html( $product ); } }
- 把里面的
This product is currently out of stock and unavailable.替换成你想要的文本即可
⚠️ 注意:这种方法要留意WooCommerce的版本更新,如果插件更新修改了这个模板文件,你可能需要重新同步修改内容,所以优先推荐钩子方法。
内容的提问来源于stack exchange,提问作者beninabox_uk
相关产品推荐
相关产品推荐

