Чтобы узнать количество товаров, используя плагин WBW Product Filter в WordPress WooCommerce с помощью AJAX, вы можете следовать следующим шагам:
### 1. Подключение AJAX в вашем WordPress
Сначала убедитесь, что у вас правильно подключена AJAX-функциональность в вашем WordPress. Обычно это делается в вашем `functions.php`:
```php
// Для авторизованных пользователей
add_action('wp_ajax_get_product_count', 'get_product_count');
// Для неавторизованных пользователей
add_action('wp_ajax_nopriv_get_product_count', 'get_product_count');
function get_product_count() {
$args = array(
'post_type' => 'product',
'post_status' => 'publish',
'posts_per_page' => -1,
);
// Если вы используете фильтры, добавьте их к $args
// Например:
// if (isset($_POST['category'])) {
// $args['tax_query'][] = array(
// 'taxonomy' => 'product_cat',
// 'field' => 'slug',
// 'terms' => $_POST['category'],
// );
// }
$products = new WP_Query($args);
$count = $products->found_posts;
// Не забудьте сбросить запрос
wp_reset_postdata();
// Возвращаем ответ
echo $count;
wp_die();
}
```
### 2. Создание JavaScript для отправки AJAX-запроса
Теперь вам нужно создать JavaScript, который будет отправлять AJAX-запрос, когда ваш фильтр используется. Добавьте следующий код в ваш JavaScript файл или встраиваемый скрипт:
```javascript
jQuery(document).ready(function($) {
// Предположим, что у вас есть кнопка или фильтр
$('#your-filter-selector').on('change', function() {
// Здесь вы можете получить значения фильтров
var filterData = $(this).serialize();
$.ajax({
type: 'POST',
url: ajaxurl, // Используйте 'ajaxurl', чтобы сработал AJAX для WordPress.
data: {
action: 'get_product_count',
// Передайте здесь данные фильтров, если необходимо
// Например: category: $('#category-select').val(),
},
success: function(response) {
// Обновите количество товаров на вашей странице
$('#product-count').text(response); // Предположим, у вас есть элемент с ID product-count
},
error: function(error) {
console.log('Ошибка AJAX:', error);
}
});
});
});
```
### 3. Обновление HTML
Добавьте HTML элемент, который будет отображать количество товара:
```html
<div>
Количество товаров: <span id="product-count">0</span>
</div>
```
### 4. Настройка фильтров
Не забудьте изменить `#your-filter-selector` на идентификатор вашего фильтра. Если у вас есть несколько фильтров, вы можете использовать соответствующий обработчик событий (например, `.on('input', ...)` или другой).
Теперь, когда вы используете фильтр, количество товаров будет обновляться с помощью AJAX-запроса.
### 5. Тестирование и отладка
Перед тем как внедрять в рабочий проект, протестируйте вашу реализацию на предмет ошибок. Убедитесь, что количество товаров обновляется корректно в зависимости от выбранных фильтров.