Woocommerce 在没有单击事件的情况下运行Ajax脚本

Woocommerce 在没有单击事件的情况下运行Ajax脚本,woocommerce,Woocommerce,在“woocommerce产品查找器”插件中,默认情况下会显示第一个查询字段行,如果用户希望根据产品属性添加另一个字段行,则必须单击默认行下方的+按钮。如何在没有单击事件的情况下加载页面加载上的所有行 php代码: public static function search_form( $atts = array(), $show_cat = false ) { $action = get_permalink( wc_get_page_id( 'shop' ) ); $

在“woocommerce产品查找器”插件中,默认情况下会显示第一个查询字段行,如果用户希望根据产品属性添加另一个字段行,则必须单击默认行下方的+按钮。如何在没有单击事件的情况下加载页面加载上的所有行

php代码:

    public static function search_form( $atts = array(), $show_cat = false ) {
    $action = get_permalink( wc_get_page_id( 'shop' ) );

    $att_string = implode( $atts , ',' );

    $html = '<form name="wc_product_finder" id="wc_product_finder" class="woocommerce" action="' . esc_url( $action ) . '" method="get">
                <fieldset>
                <legend>' . __( 'Product Finder','woocommerce-product-finder' ) . '</legend>
                <input type="hidden" id="search_attributes" value="' . $att_string . '" />
                <input type="hidden" id="show_cat" value="' . json_encode( $show_cat ) . '" />
                <input type="hidden" name="adv_search" value="wc" />
                <input type="hidden" name="post_type" value="product" />';

    $html .= self::relation_dropdown();

    if ( ( isset( $_GET['adv_search'] ) && 'wc' === $_GET['adv_search'] ) && isset( $_GET['tax'][0] ) ) {
        foreach ( $_GET['tax'] as $row => $tax ) {
            $html .= self::search_row( $row , $atts , $show_cat , true );
        }
    } else {
        $html .= self::search_row( 0 , $atts , $show_cat );
    }

    $html .= '<div id="last_row" style="display:none;">0</div>
            <a href="javascript:;" id="add_row" class="add_row" title="افزودن سطر جدید"><span class="loader">&nbsp;</span><span class="plus">+</span> <span class="text">' . __( 'Add row', 'woocommerce-product-finder' ) . '</span></a>';

    $string = '';
    if ( isset( $_GET['s'] ) ) {
        $string = $_GET['s'];
    }
    $html .= '<div class="form-row form-row-first keywords"><label for="s">' . __( 'Keywords', 'woocommerce-product-finder' ) . '</label><input type="text" name="s" placeholder="' . __( 'Keywords', 'woocommerce-product-finder' ) . '" value="' . $string . '"/></div>';

    if ( apply_filters( 'product_finder_show_price_slider', true ) ) {
        $html .= self::price_slider();
    }

    $html .= '<div class="form-row form-row-wide form-row-submit"><input type="submit" class="button" value="' . __( 'Search' , 'woocommerce-product-finder' ) . '" /></div>
            </fieldset>
            </form>';

    return $html;
}

非常感谢您的帮助。

您可以自己调用该函数,也可以为该函数指定一个名称并调用该函数

或者

jQuery('#wc#product#finder#add#row').css('display','block')。单击(函数(e){
e、 预防默认值();
jQuery('#add_row.loader').show();
jQuery('#add_row.plus').hide();
var last_row=parseInt(jQuery('last_row').text();
var next_row=最后一行+1;
var show_cat=jQuery('#show_cat').val();
var search_attributes=jQuery('#search_attributes').val();
jQuery.ajax({
键入:“获取”,
url:wc_product_finder_data.ajax_url,
数据:'action=wc_product_finder_add_row&row='+next_row+'&show_cat='+show_cat+'&search_attributes='+search_attributes,
数据类型:“html”,
成功:功能(响应){
如果(答复){
jQuery(“#最后一行”)。在(响应)之前;
jQuery(“#最后一行”).text(下一行);
jQuery('#search_row.'+next_row).slideDown('fast',function()){
jQuery('#add_row.plus').show();
jQuery('#add_row.loader').hide();
});
}否则{
}
}
});
});
//点击你自己
jQuery(“#wc#U产品#查找器#添加行”)。单击()

//声明单击处理程序
函数handleClick(e){
e&e.preventDefault();
jQuery('#add_row.loader').show();
jQuery('#add_row.plus').hide();
var last_row=parseInt(jQuery('last_row').text();
var next_row=最后一行+1;
var show_cat=jQuery('#show_cat').val();
var search_attributes=jQuery('#search_attributes').val();
jQuery.ajax({
键入:“获取”,
url:wc_product_finder_data.ajax_url,
数据:'action=wc_product_finder_add_row&row='+next_row+'&show_cat='+show_cat+'&search_attributes='+search_attributes,
数据类型:“html”,
成功:功能(响应){
如果(答复){
jQuery(“#最后一行”)。在(响应)之前;
jQuery(“#最后一行”).text(下一行);
jQuery('#search_row.'+next_row).slideDown('fast',function()){
jQuery('#add_row.plus').show();
jQuery('#add_row.loader').hide();
});
}否则{
}
}
});
//绑定处理程序以单击事件
jQuery(“#wc#u产品#查找器#添加行”).css('display','block')。单击(handleClick)
//调用函数
handleClick()

很抱歉问题标题有误。这是jQuery而不是Ajax。
jQuery( document ).ready( function() {

jQuery( '#wc_product_finder #add_row' ).css('display', 'block').click( function(e) {
    e.preventDefault();
    jQuery( '#add_row .loader' ).show();
    jQuery( '#add_row .plus' ).hide();
    var last_row = parseInt( jQuery( '#last_row' ).text() );
    var next_row = last_row + 1;
    var show_cat = jQuery( '#show_cat' ).val();
    var search_attributes = jQuery( '#search_attributes' ).val();

    jQuery.ajax({
        type: "GET",
        url: wc_product_finder_data.ajax_url,
        data: 'action=wc_product_finder_add_row&row=' + next_row + '&show_cat=' + show_cat + '&search_attributes=' + search_attributes,
        dataType: "html",
        success: function( response ) {
            if( response ) {
                jQuery( '#last_row' ).before( response );
                jQuery( '#last_row' ).text( next_row );
                jQuery( '#search_row_' + next_row ).slideDown( 'fast' , function() {
                    jQuery( '#add_row .plus' ).show();
                    jQuery( '#add_row .loader' ).hide();
                });

            } else {

            }
        }
    });

});