Теги управления потоком создают условия, которые определяют, будут ли выполняться блоки кода 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% на все продукты.