WooCommerce 在所选产品变体有货时输出文本

WooCommerce Output a text when chosen product variation is in stock

如果产品变体的 库存数量 大于零,我一直在思考如何通过 variation.php 模板添加特定文本。

正文为"Usually ships within 2-3 business days"。

我们接受延期交货,因此如果库存为零,则无法显示文本。

当使用 functions.php 文件中的函数选择每个变体时,我能够显示文本:

add_filter( 'woocommerce_available_variation','load_variation_settings_fields' );
function load_variation_settings_fields( $variations ) {

    $variations['text_field'] = 'Usually ships within 2-3 business days'; 

    return $variations;
}

并将此代码添加到 variation.php 模板文件中:

<div class="woocommerce-variation-custom-text-field">
{{{ data.variation.text_field }}}
</div>

我无法获取所选变体的库存数量,如果它大于零,则显示文本 edit- "Usually ships within 2-3 business days"编辑.

您的自定义函数有 3 个参数,由挂钩启用:

  • 变异数据数组:$variation_data(即返回)
  • WC_Product_Variable object$product
  • WC_Product_Variation object$variation

因此您可以使用第三个参数以这种方式获取当前变化的数量:

add_filter( 'woocommerce_available_variation', 'load_variation_settings_fields', 10, 3 );
function load_variation_settings_fields( $variation_data, $product, $variation ) {

    // Display shipping delay text when stock quantity exist
    if( $variation->get_stock_quantity() > 0 )
        $variation_data['text_field'] = __('Usually ships within 2-3 business days'); 
    else $variation_data['text_field'] = __(''); // You can add a text if needed

    return $variation_data;
}

代码进入您的活动子主题(或主题)的 function.php 文件或任何插件文件。

此代码已在 WooCommerce 版本 3+ 中测试并有效