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

修改WooCommerce预购自定义产品类型的“有货”文本

解决方案

修改思路

替换原代码中手动指定产品ID的判断逻辑,改为自动检测产品是否开启了VillaTheme《Product Pre-Orders for WooCommerce》插件的预购功能。针对可变产品,同步检查变体本身或其父产品的预购设置,确保所有预购商品都能自动匹配自定义提示。

修改后的代码

function wcs_custom_get_availability( $availability, $_product ) { 
    // 判断是否为预购产品(兼容可变产品及其变体)
    $is_pre_order = false;
    // 检查当前产品的预购设置
    if ( get_post_meta( $_product->get_id(), '_vt_wc_pre_order_enabled', true ) === 'yes' ) {
        $is_pre_order = true;
    } 
    // 若为变体产品,检查父产品的预购设置
    elseif ( $_product->is_type('variation') ) {
        $parent_id = $_product->get_parent_id();
        if ( get_post_meta( $parent_id, '_vt_wc_pre_order_enabled', true ) === 'yes' ) {
            $is_pre_order = true;
        }
    }

    // 预购产品且有货时,显示自定义提示
    if ( $is_pre_order && $_product->is_in_stock() ) {
        $availability['availability'] = sprintf( __('Available for Pre-Order', 'woocommerce'), $_product->get_stock_quantity());
    }
    // 缺货时显示统一缺货文本
    elseif ( ! $_product->is_in_stock() ) {
        $availability['availability'] = __('Out of Stock', 'woocommerce');
    }

    return $availability;
}
add_filter( 'woocommerce_get_availability', 'wcs_custom_get_availability', 10, 2 );

关键说明

  1. 预购检测逻辑:通过插件默认存储的产品元数据_vt_wc_pre_order_enabled判断产品是否开启预购,无需手动维护产品ID列表。
  2. 可变产品兼容:针对变体产品,额外检查其父产品的预购设置,避免变体遗漏匹配规则。
  3. 逻辑优先级:先判断预购且有货的情况,再处理缺货场景,确保提示信息显示符合预期。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 03:05:30