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

使用自定义字段值替换WooCommerce产品库存状态

将自定义字段值填充到WooCommerce库存状态文本的过滤器示例

当然可以!下面我会给你一个贴合WooCommerce原生逻辑的完整示例,帮你把自定义字段的值整合到产品的库存状态文本中。

完整代码实现

// 替换WooCommerce库存状态文本,整合自定义字段值
add_filter('woocommerce_get_availability_text', 'custom_stock_status_text_with_custom_field', 10, 2);
function custom_stock_status_text_with_custom_field($availability_text, $product) {
    // 获取当前产品ID
    $product_id = $product->get_id();
    
    // 读取自定义字段值(这里用你提供的get_field函数,适配ACF等字段插件逻辑)
    $custom_stock_text = get_field('stock_status_custom', $product_id);
    
    // 仅当产品有库存且自定义字段有值时,修改库存文本
    if ($product->is_in_stock() && !empty($custom_stock_text)) {
        $availability_text = sprintf('%s (%s)', __('In stock', 'woocommerce'), $custom_stock_text);
    }
    
    return $availability_text;
}

代码说明

  • 我们直接使用WooCommerce官方提供的woocommerce_get_availability_text过滤器,这个钩子专门负责修改产品库存状态的显示文本,比自定义钩子更贴合插件原生逻辑。
  • 针对你给出的数据库示例,代码生效后会呈现这样的效果:
    • Product 1的库存文本变为:In stock (5 days)
    • Product 2的库存文本变为:In stock (10 days)
  • 如果产品缺货或者自定义字段为空,会自动保留WooCommerce默认的库存文本逻辑,不会影响原有功能。

补充说明你提供的自定义过滤器

你之前写的customGetStockTextForProduct钩子属于自定义的逻辑钩子,但没有和WooCommerce的库存文本输出流程关联,所以无法直接生效。上面的代码直接对接WooCommerce原生过滤器,更高效也更符合插件开发规范。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 07:17:59