如果产品变体的库存数量大于零,我一直在讨论如何通过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;
}
将此代码添加到variation.php模板文件中:
<div class="woocommerce-variation-custom-text-field">
{{{ data.variation.text_field }}}
</div>
我无法获取所选变体的库存数量,如果它大于零,则显示文本编辑 - “通常在2-3个工作日内发货”编辑< / em>的
答案 0 :(得分:2)
您的自定义函数有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+中测试并正常工作