Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/293.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 当所选变体在电子商务中缺货时显示表单_Php_Jquery_Woocommerce_Contact Form 7_Product Variations - Fatal编程技术网

Php 当所选变体在电子商务中缺货时显示表单

Php 当所选变体在电子商务中缺货时显示表单,php,jquery,woocommerce,contact-form-7,product-variations,Php,Jquery,Woocommerce,Contact Form 7,Product Variations,在WooCommerce with中,我使用以下代码在单个产品页面上向缺货的简单产品添加了一个表单: add_action( 'woocommerce_single_product_summary', 'add_contact_form', 30, 2 ); function add_contact_form() { global $product; if( ! $product->is_in_stock( ) && ! $product->is_t

在WooCommerce with中,我使用以下代码在单个产品页面上向缺货的简单产品添加了一个表单:

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"]');
    }
}
这种“缺货”形式适用于简单的产品:

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
}


但不适用于“缺货”产品变体适用于可变产品:

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
}

如何为缺货的选定产品变体显示此表单


非常感谢您的帮助。

这需要对您的代码和一些jQuery代码稍作更改,以显示/隐藏可变产品上的联系人表单(以及“添加到购物车”按钮),具体取决于所选的产品变体库存状态

简单和可变产品的替换代码:

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
}
add_action('woocommerce_single_product_summary'、'add_product_outof stock_contact_form',30,2);
功能添加\产品\库存出库\联系方式\表单(){
全球$产品;
$contact_form=do_短码('[contact-form-7 id=“14880”title=“Fiyat Sorunuz”]);
如果($product->is_类型('variable')){
回显“.$contact_form.”;
}elseif(!$product->库存中(){
echo$contact_表格;
}
}
添加行动(“变更表后的woocommerce”、“缺货产品变更表”);
功能出库_产品_变化_js(){
?>
jQuery(函数($){
var contactFormObject=$('.outofstock form'),
addToCartButtonObj=$('.woocommerce变体添加到购物车');
$('form.variations\u form')。在('show\u variations',函数(事件,数据){//没有选择的变体
如果(!data.is_库存中){
addToCartButtonObj.hide('fast');
contactFormObject.show('fast');
}否则{
addToCartButtonObj.show('fast');
contactFormObject.hide('fast');
}
}).on('hide_variation',function(){//不在所选变量上
addToCartButtonObj.show('fast');
contactFormObject.hide('fast');
});
});

天哪!太棒了,谢谢。