如果已使用缺货,我已成功将联系表单添加到产品中
add_action('woocommerce_single_product_summary', 'add_contact_form', 30,2);
function add_contact_form() {
global $product;
if(!$product->is_in_stock( )) {
echo do_shortcode('[contact-form-7 id="6513" title="Out of Stock Form"]');
}
}
但是,如果产品变体也缺货,我也想添加相同的表格。 只是不确定该使用哪种挂钩将其与“ Out of Stock”消息相关联... 我觉得这可能与woocommerce / single-product / add-to-cart / variation.php的第20行有关
<div class="woocommerce-variation-availability">{{{ data.variation.availability_html }}}</div>
但是TBH有点丢失了。
我可以使用
更改简单商品和带有变体商品的透明文字add_filter( 'woocommerce_get_availability', 'wcs_custom_get_availability', 1, 2);
function wcs_custom_get_availability( $availability, $_product ) {
if ( ! $_product->is_in_stock() ) {
$availability['availability'] = __('<h4 style="color:#F00;">Coming Soon</h4>', 'woocommerce');
}
return $availability;
}
但是,如果我尝试添加表单简码或其他HTML(例如iFrame),则会将其删除并且无法呈现?!
答案 0 :(得分:1)
以下代码将联系表添加到选定的缺货产品变型中:
add_filter( 'woocommerce_available_variation', 'form_to_out_of_stock_product_variations', 10, 3 );
function form_to_out_of_stock_product_variations( $data, $product, $variation ) {
if( ! $data['is_in_stock'] )
$data['availability_html'] .= do_shortcode('[contact-form-7 id="6513" title="Out of Stock Form"]');
return $data;
}
代码进入您的活动子主题(或活动主题)的function.php文件中。经过测试,可以正常工作。
因此,您需要按照以下步骤调整现有代码:
add_action('woocommerce_single_product_summary', 'add_contact_form', 30,2);
function add_contact_form() {
global $product;
if( ! $product->is_in_stock( ) && ! $product->is_type('variable') )
echo do_shortcode('[contact-form-7 id="6513" title="Out of Stock Form"]');
}
代码进入您的活动子主题(或活动主题)的function.php文件中。经过测试并有效