You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

修改无变体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模板文件(不推荐,需注意更新)

如果习惯用模板修改的方式,可以这样操作:

  1. 在你的子主题里创建woocommerce/single-product/add-to-cart/路径
  2. 把WooCommerce插件目录里的single-product/add-to-cart/variable.php文件复制到刚才创建的子主题路径下
  3. 打开复制后的文件,找到这段代码:
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 );
    }
}
  1. 把里面的This product is currently out of stock and unavailable.替换成你想要的文本即可

⚠️ 注意:这种方法要留意WooCommerce的版本更新,如果插件更新修改了这个模板文件,你可能需要重新同步修改内容,所以优先推荐钩子方法。

内容的提问来源于stack exchange,提问作者beninabox_uk

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 08:35:38