Shopify: Скрыть кнопку оформления заказа по тегу продукта в корзине - PullRequest
0 голосов
/ 06 августа 2020

Я хочу скрыть кнопку корзины, когда в корзине есть товары с тегами Pre-order product и Regular product.

Этот код, мы смогли получить теги для всех продуктов в тележка.

{% for item in cart.items %}
    {% assign carttag = item.product.tags %}                
    <p>{{ carttag }}</p>
{% endfor %}

Однако следующий код не работает.

  {% if carttag contains 'Preorder' and carttag contains 'Regular' %}
    <p>Stop!</p>               
  {% else %}
     <input type="submit" name="checkout"> 
  {% endif %}

Как я могу обрабатывать все значения цикла как одно?

1 Ответ

0 голосов
/ 06 августа 2020

Вы находитесь на правильном пути, но в вашем коде есть 2 проблемы.

  1. Вы переопределяете значение Cart Tags для каждого продукта. Таким образом, у вас всегда есть товарные теги для последнего товара в вашей корзине.
  2. product.tags return Array, пока вы обрабатываете его как строку.

Исправление проблем, ваш код будет выглядеть так:

{% assign cartTags = "" %}

{% for item in cart.items %}
    {% assign joinedTags = item.product.tags | join: " " %}                
    {% assign cartTags = cartTags | append:" " | append:joinedTags %}
{% endfor %}

{% if cartTags contains 'string1' and cartTags contains 'string2' %}
    {{cartTags}}
{% endif %}

Я здесь инициализировал пустую переменную с именем cartTags. Затем для каждого продукта в корзине я конвертирую массив тегов в строку с помощью фильтра объединения и добавляю их ко всем тегам с помощью фильтра добавления.

Теги товаров

Объединить фильтр

Добавить фильтр

...