Почему в woocommerce у вариативного товара не выбирается первая вариация?

Ссылка скопирована
1 ответ

При открытии страницы вариативного товара и смены вариации на любую другую - первую вариацию становится невозможно выбрать.
Подскажите в чём проблема и как её решить.

Пример на видео: https://youtu.be/O2CNJknN8Ik

Дополнительно:

Показывайте код или скиньте ссылку на сайт.

  • Михаил Р., ссылка
  • Нужно решить такую задачу?

    Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.

    Заказать помощь
    Лучший ответ
    1
    WordPress-редакция Ответ

    В WooCommerce первая вариация у вариативного товара не всегда выбирается автоматически. По умолчанию WooCommerce ждёт, пока пользователь выберет все атрибуты. Если хотите, чтобы первая доступная вариация была выбрана сразу, нужно задать значения атрибутов по умолчанию или доработать JS.

    Самый правильный способ — в карточке товара открыть вкладку Вариации и заполнить “Значения формы по умолчанию”. Тогда WooCommerce сам подставит нужные атрибуты при загрузке страницы.

    Если нужно сделать это программно, можно назначить default attributes:

    $product = wc_get_product($product_id);
     
    if ($product && $product->is_type('variable')) {
        $product->set_default_attributes([
            'pa_color' => 'red',
            'pa_size'  => 'm',
        ]);
        $product->save();
    }

    $product = wc_get_product($product_id); if ($product && $product->is_type('variable')) { $product->set_default_attributes([ 'pa_color' => 'red', 'pa_size' => 'm', ]); $product->save(); }

    Важно: ключи должны совпадать с taxonomy атрибутов, например pa_color, а значения — со slug термина, а не с названием на русском.

    Если “первая вариация” есть, но не выбирается, проверьте:

    • у вариации стоит статус “В наличии”;
    • цена вариации заполнена;
    • атрибуты вариации не пустые;
    • термины атрибутов не удалены;
    • тема не переопределяет шаблон single-product/add-to-cart/variable.php старой версией;
    • нет JS-ошибок на странице товара.

    Иногда проблема появляется после кастомной темы: селекты атрибутов заменены красивыми кнопками, но JS не вызывает событие change. WooCommerce рассчитывает вариацию именно после изменения select. Если делаете свои кнопки, после выбора нужно обновить скрытый select и вызвать trigger('change').

    Не советую принудительно кликать первую вариацию JS-ом без проверки наличия. Так можно выбрать недоступный вариант или показать неверную цену. Лучше настроить default attributes и убедиться, что первая вариация реально продаётся.

    Другие ответы (0)

    Пока нет других ответов. Будьте первым, кто поможет автору.

    Ответить на вопрос

    комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *

    Вам также может быть интересно