Как сделать так, чтобы фильтр сортировки по цене работал с вариацией цены по умолчанию WooCommerce - PullRequest
0 голосов
/ 06 августа 2020

У меня следующая проблема: почти все мои товары являются товарами переменного размера, что означает, что существует диапазон цен. Итак, в начале на странице магазина и на домашней странице указаны диапазоны цен. Но я хотел отобразить цену варианта по умолчанию, которую я установил для продуктов. Поэтому я использовал следующий код:

<code>add_filter('woocommerce_variable_price_html', 'custom_variation_price', 10, 2);
function custom_variation_price( $price, $product ) {
    $available_variations = $product->get_available_variations();
    $selectedPrice = '';
    $dump = '';

    foreach ( $available_variations as $variation )
    {
        // $dump = $dump . '<pre>' . var_export($variation['attributes'], true) . '
'; $ isDefVariation = false; foreach ($ product-> get_default_attributes () as $ key => $ val) {// $ dump = $ dump. '
' . var_export($key, true) . '
'; // $ dump = $ dump. '
' . var_export($val, true) . '
'; если ($ вариация ['атрибуты'] ['атрибут _'. $ ключ] == $ val) {$ isDefVariation = true; }} если ($ isDefVariation) {$ цена = $ вариация ['display_price']; }} $ selectedPrice = wc_price ($ цена); // $ dump = $ dump. '
' . var_export($available_variations, true) . '
'; return $ selectedPrice. $ dump; }

Этот код работал так, как я хотел, и прямо сейчас в моем магазине все продукты отображают цену варианта по умолчанию. Но проблема в том, что теперь, когда я хочу «отсортировать по цене» от минимума к максимальному или наоборот, он все еще находится в ценовом диапазоне. Итак, когда диапазоны цен следующие:

1,00 - 5,00 -> Цена вариации по умолчанию 2,50
1,50 - 6,00 -> Цена вариации по умолчанию 2,00
2,00 - 7,50 -> Цена вариации по умолчанию составляет 2,25

Он возвращается следующим образом от высокого к низкому:

(1) 2,25
(2) 2,00
(3) 2,50

Итак, мой вопрос То есть, что я могу сделать, чтобы убедиться, что сортировка по цене сортируется по ценам вариаций по умолчанию, которые отображаются для клиентов.

...