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

如何修改WooCommerce的缺货预订文本?

解决WooCommerce缺货预订文本无法修改的问题

你的代码仅处理了商品有货和普通缺货两种状态,未覆盖「缺货但允许预订」的场景;同时钩子优先级设为1,容易被其他插件/主题的同优先级(或更高优先级)代码覆盖。调整方案如下:

修改后的代码

add_filter( 'woocommerce_get_availability', 'wcs_custom_get_availability', 99, 2);
function wcs_custom_get_availability( $availability, $_product ) {
    
    // 有货状态文本
    if ( $_product->is_in_stock() ) {
        $availability['availability'] = __('<div class="breadcrumbsstockstatus">På lager</div><div class="breadcrumbsstockinfo">Levering 1-2 hverdage</div>', 'woocommerce');
    }
    // 缺货可预订状态文本(优先判断)
    elseif ( $_product->backorders_allowed() && !$_product->is_in_stock() ) {
        $availability['availability'] = __('5 days delivery, backordered', 'woocommerce');
    }
    // 普通缺货状态文本
    else {
        $availability['availability'] = __('Ikke på lager - kommer igen', 'woocommerce');
    }
    
    return $availability;
}

关键修改说明

  • 提高钩子优先级:将原代码的1改为99,确保你的代码在其他同钩子的函数之后执行,避免被覆盖
  • 新增预订状态判断:用$_product->backorders_allowed() && !$_product->is_in_stock()精准识别「缺货但允许预订」的商品,且将该判断放在普通缺货之前,避免逻辑冲突
  • 优化判断结构:改用if-elseif-else链式判断,避免多个独立if导致的逻辑覆盖问题

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 08:18:32