当所选版本的WooCommerce缺货时显示表单 [英] Display a form when the selected variation is out of stock in WooCommerce
问题描述
在带有
但不适用于缺货"产品差异:可变产品
如何为缺货的选定产品变型显示此表单?
感谢您的帮助.
这需要对您的代码和一些jQuery代码进行一些更改,以显示/隐藏可变产品上的联系表单(以及添加到购物车"按钮),具体取决于所选产品的变化库存状态.
简单和可变产品的替换代码:
add_action('woocommerce_single_product_summary','add_product_outofstock_contact_form',30,2);函数add_product_outofstock_contact_form(){全球产品$ contact_form = do_shortcode('[[contact-form-7 id ="14880" title ="Fiyat Sorunuz"]');;if($ product-> is_type('variable')){echo'< div class ='outofstock-form'style ="display:none">.$ contact_form.'</div>';} elseif(!$ product-> is_in_stock()){echo $ contact_form;}}add_action('woocommerce_after_variations_form','outofstock_product_variation_js');函数outofstock_product_variation_js(){?>< script type =文本/javascript">jQuery(函数($){var contactFormObject = $('.outofstock-form'),addToCartButtonObj = $('.woocommerce-variation-add-to-cart');$('form.variations_form').on('show_variation',function(event,data){//没有选择的变体如果(!data.is_in_stock){addToCartButtonObj.hide('fast');contactFormObject.show('fast');} 别的 {addToCartButtonObj.show('fast');contactFormObject.hide('fast');}}).on('hide_variation',function(){//不在所选变体上addToCartButtonObj.show('fast');contactFormObject.hide('fast');});});</script><?php}
代码进入活动子主题(或活动主题)的functions.php文件中.经过测试,可以正常工作.
In WooCommerce with Contact Form 7 plugin, I have added a form to my out of stock simple products, on single product pages, using the following code:
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="14880" title="Fiyat Sorunuz"]');
}
}
This "out of stock" form works just well for simple products:
But doesn't work on "out of stock" product variations for variable products:
How can I display this form for selected product variation that are out of stock?
Any help is appreciated.
This requires a little change in your code and some jQuery code to show/hide the contact form (and the add to cart button) on variable products, depending on the selected product variation stock status.
The replacement code for simple and variable products:
add_action( 'woocommerce_single_product_summary', 'add_product_outofstock_contact_form', 30, 2 );
function add_product_outofstock_contact_form() {
global $product;
$contact_form = do_shortcode('[contact-form-7 id="14880" title="Fiyat Sorunuz"]');
if( $product->is_type('variable') ) {
echo '<div class="outofstock-form" style="display:none">' . $contact_form . '</div>';
} elseif( ! $product->is_in_stock() ) {
echo $contact_form;
}
}
add_action('woocommerce_after_variations_form', 'outofstock_product_variation_js');
function outofstock_product_variation_js() {
?>
<script type="text/javascript">
jQuery(function($) {
var contactFormObject = $('.outofstock-form'),
addToCartButtonObj = $('.woocommerce-variation-add-to-cart');
$('form.variations_form').on('show_variation', function(event, data) { // No selected variation
if ( ! data.is_in_stock ) {
addToCartButtonObj.hide('fast');
contactFormObject.show('fast');
} else {
addToCartButtonObj.show('fast');
contactFormObject.hide('fast');
}
}).on('hide_variation', function() { // Not on selected variation
addToCartButtonObj.show('fast');
contactFormObject.hide('fast');
});
});
</script>
<?php
}
Code goes in functions.php file of the active child theme (or active theme). Tested and works.
Related: Pass the chosen product variations data into Contact Form 7 enquiry form
这篇关于当所选版本的WooCommerce缺货时显示表单的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!