当所选版本的WooCommerce缺货时显示表单 [英] Display a form when the selected variation is out of stock in WooCommerce

查看:94
本文介绍了当所选版本的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文件中.经过测试,可以正常工作.

相关:将所选的产品差异数据传递到联系表7查询表中

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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆