Теги управления потоком создают условия, которые определяют, будут ли выполняться блоки кода Liquid.


В этом материале


if

Выполняет блок кода только в том случае, если выполняется определенное условие (то есть, если результат равен true).

{% if product.name == 'Удивительная обувь' %}
  Вы покупаете несколько потрясающих ботинок!
{% endif %}
Вывод
Вы покупаете несколько потрясающих ботинок!

unless

Подобно if, но выполняет блок кода только в том случае, если определенное условие не выполняется (то есть, если результат false).

{% unless product.name == 'Удивительная обувь' %}
  Вы не покупаете потрясающие ботинки.
{% endunless %}
Вывод
Вы не покупаете потрясающие ботинки.

Вышеприведенный пример такой же, как:

{% if product.name != 'Удивительная обувь' %}
  Вы не покупаете потрясающие ботинки.
{% endif %}

else / elsif

Добавляет больше условий для блока if или unless.

{% if delivery.label == 'Международная доставка' %}
  Ваш заказ должен прибыть через 2-3 недели.
{% elsif delivery.label == 'Внутренняя доставка' %}
  Ваш заказ должен прибыть через 3-4 дня.
{% else %}
  Спасибо за ваш заказ!
{% endif %}
Вывод
Ваш заказ должен прибыть через 3-4 дня.

case / when

Создаёт переключатель для выполнения определённого блока кода, когда переменная имеет указанное значение. case инициализирует оператор switch и операторы определяют различные условия.

Вы можете дополнительно добавить оператор else в конце case, чтобы обеспечить выполнение кода, если ни одно из условий не выполнено.

{% case delivery.label %}
  {% when 'Международная доставка' %}
     Ваш заказ должен прибыть через 2-3 недели.
  {% when 'Внутренняя доставка' %}
    Ваш заказ должен прибыть через 3-4 дня.
  {% when 'Местный пикап' %}
    Ваш заказ будет готов к встрече завтра.
  {% else %}
     Спасибо за ваш заказ!
{% endcase %}
Вывод
Ваш заказ должен прибыть через 3-4 дня.

Условия (and / or)

Вы можете использовать операторы and и or для включения более одного условия в тег потока управления. and и or могут быть соединены вместе, чтобы создать сложные условные обозначения.

Если вы используете несколько операторов and или or, обратите внимание, что сначала будут вычислены операторы and, затем or. Вы не можете использовать круглые скобки для имитации порядка операций и управления порядком оценки оператора. Скобки являются недопустимыми символами в тегах Liquid и не позволяют вашим тегам работать.

 

and

Оператор and позволяет добавлять дополнительные условия к тегу. Условие с символом and будет истинным только в том случае, если верны и левая, и правая стороны условия.

{% if line_item.grams > 20000 and customer_address.city == 'Оттава' %}
Вы покупаете тяжелый предмет и живете в том же городе, что и наш магазин.<br> Выберите местный пикап в качестве варианта доставки, чтобы избежать высокой стоимости доставки.
{% endif %}
Вывод
Вы покупаете тяжелый предмет и живете в том же городе, что и наш магазин.
Выберите местный пикап в качестве варианта доставки, чтобы избежать высокой стоимости доставки.
 

or

Оператор or позволяет добавлять дополнительные условия к тегу. Условие с or будет истинным, если либо левая, либо правая стороны условия истинны.

{% if customer.tags contains 'VIP' or customer.email contains 'mycompany.com' %}
Добро пожаловать! Мы рады предложить вам специальную скидку в размере 15% на все продукты.
{% else %}
Добро пожаловать в наш магазин!
{% endif %}
Вывод
Добро пожаловать! Мы рады предложить вам специальную скидку в размере 15% на все продукты.