【问题标题】:WooCommerce Output a text when chosen product variation is in stockWooCommerce 在选择的产品变体有库存时输出文本
【发布时间】:2017-08-03 21:13:17
【问题描述】:

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

文字是“通常在 2-3 个工作日内发货”。

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

当使用 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;
}

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

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

我在获取所选变体的库存数量时遇到问题,如果它大于零,则显示文本edit-“通常在 2-3 个工作日内发货”edit。

【问题讨论】:

    标签: php wordpress woocommerce product variations


    【解决方案1】:

    您的自定义函数有 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+ 中经过测试并且有效

    【讨论】:

    • 太奇怪了 - 源代码显示文本输出到浏览器,但它没有显示。解决方案适用于我的开发服务器(http),但不适用于实时服务器(https)。
    • @Shinosky 那么我该如何帮助你呢? ...您的测试服务器和现场服务器有什么区别?
    • 别忘了将 {{{ data.variation.text_field }}} 行代码添加到实时站点上的模板文件中,哈哈。感谢 LoicTheAztec 的帮助!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-07-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多