Поддержка Проблемы и решения Лейбл со склонениями Wocommerce

  • Здравствуйте, как можно вывести лейбл «Товаров» с правильным склонением в зависимости от кол-ва товаров?
    У меня есть переменная, которая показывает кол-во товаров в категории
    $theCount = $term_child->count;

    Нужно чтобы надпись Товар, Товара, Товаров подстраивалась под кол-во. Каким образом можно вывести такой лейбл в woocommerce?

    Скриншот

    • Тема изменена 1 неделя, 6 дней назад пользователем elena11.
Просмотр 1 ответа (всего 1)
  • Как поняла в Woocommerce нет такой строки перевода, чтобы так склонять слова. Поэтому пришлось воспользоваться сторонней функцией. Вдруг кому-то пригодится:

    * Склонение слова после числа
     * @param $number - число
     * @param $after - массив слов в различных падежах, напр. ['товар', 'товара', 'товаров']
     */
    function plural_form($number, $after) {
        $cases = array (2, 0, 1, 1, 1, 2);
        return $number.' '.$after[ ($number%100>4 && $number%100<20)? 2: $cases[min($number%10, 5)] ];
    }

    После чего можно устанавливать и выводить лейбл с нужными склонениями (автоматом определяет нужную форму):

    $label = plural_form($theCount, ['товар', 'товара', 'товаров']);
    
    //где $theCount - это ваша переменная с числом
    
    echo $label;
Просмотр 1 ответа (всего 1)