Ich habe einen Code für WooCommerce -Produktlisten mit AJAX -Load mehr durch Scroll- und Ajax -Filter nach Kategorie erstellt - alles funktioniert großartig, aber es gibt einen Fall, wenn dies nicht der Fall ist. Nur auf der Hauptgeschäftsseite, wenn ich zwei oder mehr Kategorien im Filter auswähle, nachdem ich den ersten Produktsatz erstellt habe, und versuche, nach unten zu scrollen, um zu laden, erhalte ich nichts weiter - sie sende eine Ajax -Anfrage und erhält kein Ergebnis - dieselbe Aktion auf der Kategorieliste funktioniert großartig. Die Filterung nach einzelnen Kategorien funktioniert auf beiden Seiten hervorragend. Im Folgenden finden Sie den von Ajax Load mehr Anfrage genannten PHP -Code. Vielleicht können Sie mir dabei helfen. Nach zwei Tagen habe ich keine Ahnung mehr, wie ich das beheben kann. < /P>
Ich habe einen Code für WooCommerce -Produktlisten mit AJAX -Load mehr durch Scroll- und Ajax -Filter nach Kategorie erstellt - alles funktioniert großartig, aber es gibt einen Fall, wenn dies nicht der Fall ist. Nur auf der Hauptgeschäftsseite, wenn ich zwei oder mehr Kategorien im Filter auswähle, nachdem ich den ersten Produktsatz erstellt habe, und versuche, nach unten zu scrollen, um zu laden, erhalte ich nichts weiter - sie sende eine Ajax -Anfrage und erhält kein Ergebnis - dieselbe Aktion auf der Kategorieliste funktioniert großartig. Die Filterung nach einzelnen Kategorien funktioniert auf beiden Seiten hervorragend. Im Folgenden finden Sie den von Ajax Load mehr Anfrage genannten PHP -Code. Vielleicht können Sie mir dabei helfen. Nach zwei Tagen habe ich keine Ahnung mehr, wie ich das beheben kann. < /P> [code]function mev_load_more_products() { $args = json_decode(stripslashes($_POST['query']), true); $args['paged'] = $_POST['page'] + 1; $args['post_status'] = 'publish'; $query = new WP_Query($args); if ($query->have_posts()) { while ($query->have_posts()) { $query->the_post(); get_template_part('woocommerce/content', 'product'); } } die(); } add_action('wp_ajax_load_more_products', 'mev_load_more_products'); add_action('wp_ajax_nopriv_load_more_products', 'mev_load_more_products'); < /code> Und dies ist JS -Code -Sendeanforderung an diese Aktion: < /p> let currentPage = catalog_params.current_page; let queryVars = catalog_params.query_vars; const productList = $('.catalog-page-list'); $(window).scroll(function () { if ($(document).scrollTop() > ($(document).height() - 2000)) { let data = { 'action' : 'load_more_products', 'query' : queryVars, 'page' : currentPage }; $.ajax({ url: woocommerce_params.ajax_url, data: data, method: 'POST', success: function(data) { if (data) { productList.find('.product-card:last-of-type').after(data); currentPage++; } } }); } }); < /code> Dies ist die Liste der JS -Code -Filterprodukte unter Verwendung von Daten aus Formular: < /p> const defaultQueryVars = catalog_params.query_vars; let formData = $('#catalog-filters').serializeArray(); let filterData = { 'action' : 'filter_products', 'filters' : {}, 'query' : defaultQueryVars }; formData.forEach(item => { if (item.name.endsWith('[]')) { if (!filterData.filters[item.name]) { filterData.filters[item.name] = []; } filterData.filters[item.name].push(item.value); } else { filterData.filters[item.name] = item.value; } });
$.ajax({ url: woocommerce_params.ajax_url, data: filterData, method: 'POST', success: function(data) { productList.html(data.html); currentPage = 1; queryVars = data.query_vars; } }); < /code> und Aktion zur Filterung: < /p> function mev_filter_products() { $args = json_decode(stripslashes($_POST['query']), true); $args['paged'] = 1; if (isset($_POST['filters'])) { $filters = $_POST['filters']; if (!isset($args['tax_query'])) { $args['tax_query'] = []; } if (isset($filters['category'])) { $args['tax_query'][] = [ 'taxonomy' => 'product_cat', 'field' => 'slug', 'terms' => $filters['category'], 'operator' => 'IN', ]; } } $query = new WP_Query($args); ob_start(); if ($query->have_posts()) { while ($query->have_posts()) { $query->the_post(); get_template_part('woocommerce/content', 'product'); } } $html = ob_get_clean(); ob_end_clean(); wp_send_json([ 'query_vars' => json_encode($query->query_vars), 'html' => $html, ]); die(); } add_action('wp_ajax_filter_products', 'mev_filter_products'); add_action('wp_ajax_nopriv_filter_products', 'mev_filter_products'); < /code> Wie ich bereits erwähnt habe, funktioniert alles großartig, wenn ich die Seite der Produktkategorie öffne. Für die Hauptgeschäftsseite funktioniert jedoch nur, wenn ich nicht zwei Kategorien in Filtern auswähle.wp_register_script('kp-product-catalog', get_template_directory_uri() . '/js/product-catalog.js', ['jquery', 'woocommerce'], time(), true ); if (is_shop() || is_product_category() || is_product_tag() || is_tax('seria') || is_tax('product_brand')) { global $wp_query; wp_localize_script( 'kp-product-catalog', 'catalog_params', array( 'query_vars' => json_encode($wp_query->query_vars), 'current_page' => get_query_var('paged') ? get_query_var('paged') : 1, )); wp_enqueue_script('kp-product-catalog'); } [/code]
Ich habe eine Anfrage, die ich ein Unternehmen mit einer gefilterten Sammelnavigationseigenschaft zurückgeben möchte. Gemäß dem EF6 -Dokument sollte ich es durch explizites Laden laden können....
Ich arbeite an einem Java Swing Unit Converter. Der Benutzer wählt eine Einheitskategorie aus einem jcombobox aus. Basierend auf dieser Auswahl aktualisiere ich zwei weitere jcombobox mit...