woocommerce_ajax_variation_thresholdхук-фильтрWC 9.7.0

Позволяет изменить пороговое кол-во (число) вариаций товара, после которого вариации начинают загружаться через AJAX, а не сразу.

Поведение по умолчанию:

  • Если вариаций < 30:

    • Выпадающие списки (например, "Цвет" и "Размер") динамические.
    • После выбора одного атрибута остальные обновляются через AJAX, показывая только доступные опции.
  • Если вариаций ≥ 30:

    • Выпадающие списки статические — показываются все опции, даже недоступные.
    • При выборе недоступной комбинации — сообщение об ошибке - «К сожалению, ни один товар не соответствует вашему выбору. Пожалуйста, выберите другую комбинацию».

Такое ограничение сделано для оптимизации производительности на сайтах с большим количеством вариаций.

Этот фильтр позволяет изменить это ограничение с 30 на другое число. Например на 100:

add_filter( 'woocommerce_ajax_variation_threshold', fn() => 100 );

Использование

add_filter( 'woocommerce_ajax_variation_threshold', 'wp_kama_woocommerce_ajax_variation_threshold_filter', 10, 2 );

/**
 * Function for `woocommerce_ajax_variation_threshold` filter-hook.
 * 
 * @param  $30      
 * @param  $product 
 *
 * @return 
 */
function wp_kama_woocommerce_ajax_variation_threshold_filter( $30, $product ){

	// filter...
	return $30;
}
$threshold(int)
Maximum number of variations to load upfront.
$product(WC_Product)
Product object.

Примеры

0

#1 Изменим кол-во вариаций товара отображаемых за раз

add_filter( 'woocommerce_ajax_variation_threshold', 'custom_wc_ajax_variation_threshold', 10, 2 );
function custom_wc_ajax_variation_threshold( $qty, $product ) {
	return 40;
}

Где вызывается хук

woocommerce_variable_add_to_cart()
woocommerce_ajax_variation_threshold
woocommerce/includes/wc-template-functions.php 2227
$get_variations = count( $product->get_children() ) <= apply_filters( 'woocommerce_ajax_variation_threshold', 30, $product );

Где используется хук в WooCommerce

Использование не найдено.