我想爲WooCommerce產品創建ajax過濾器選擇器,無需任何插件。使用ajax爲WooCommerce產品創建過濾器選擇器
但我不知道如何解決這個問題。
我有產品的這份名單與下拉列表中選擇一種過濾器:
我使用此代碼顯示列表:
<?php wc_get_template_part('list', 'product'); ?>
我知道<div>
我必須替換的類是'.products'
,但我必須更改$post
以低價格,高價格或按字母順序更改屬性,但我沒有找到任何解決方案。
這是我的功能改變div時我選擇一個元素,當我改變下拉
$('#filter_paradise').change ->
valor = $('#filter_paradise option:selected').val()
changepost(valor)
return
當我改變下拉我打電話與選擇值changepost功能,該功能與替換DIV新的價值,但在這之前,調用filter_product功能
changepost = (valor) ->
value = valor
request = $.ajax(
url: ajax_object.ajax_url
method: 'POST'
data:
opc: value
action: 'filter_product'
dataType: "json"
success: (html, data) ->
#$('.products').replaceWith(html);
console.log 'change'
return
error: (errorThrown) ->
console.log errorThrown
return
)
return
此功能在function.php,這個功能我有沒有價值,國家,類別和值由過濾器選擇我需要這個值創建查詢和訂單通過低價格,HIGHT價格或字母
function filter_product(){
$last_uri = explode('/', $_SERVER['HTTP_REFERER']);
$country = $last_uri[6];
$getcategoria = explode('=',$last_uri[7]);
$categoria = $getcategoria[1];
$args = null;
echo json_encode($categoria);
exit();
}
之前$('.products').replaceWith(html);
在changepost功能
我要改變的$ args中:
$wp_query = new WP_Query($args);
,我不得不更換是在div <?php wc_get_template_part('list', 'product'); ?>
這部分是在archive-product.php
這個說法是這樣的。
<?php woocommerce_product_loop_start(); ?>
<?php woocommerce_product_subcategories(); ?>
<?php while (have_posts()) : the_post(); ?>
<div class="col-xs-12">
<div class="elementos_lista">
<ul>
<li>
<?php wc_get_template_part('list', 'product'); ?>
</li>
</ul>
</div>
</div>
<?php //wc_get_template_part('content', 'product'); ?>
<?php endwhile; // end of the loop. ?>
<div class="map_paradise"></div>
和執行循環的我得到一個新的$ args用新的參數,以便通過價格或字母查詢之前。
我做錯了什麼?
還有其他方法可以做到嗎?
任何想法指向正確的方向是值得歡迎的。
謝謝。
你的問題很不清楚。使用WordPress Ajax涉及不同/分開的事物:1)jQuery腳本。 2)包含wp_enqueue_script()和wp_localize_script()的函數。 3)與ajax函數相關的add_action('wp_ajax_ ...)&add_action('wp_ajax_nopriv_ ...),用於接收循環中的數據和過濾器產品。 4)選擇器的html/php代碼(與jQuery相關)...之後,在你的代碼中,我注意到你也通過ajax傳遞了「categories」數據,但這並不明確,因爲你沒有在你的題。你的循環代碼又在哪裏? ... – LoicTheAztec
請注意,您需要**來編輯您的問題**,並且**需要在四個部分中分別加上解釋代碼**,並提及您嘗試通過ajax **的類別數據。這些類別是什麼?你想和他們做什麼? – LoicTheAztec
謝謝@LoicTheAztec我編輯我的問題。 – Stone