Показать Добавить в корзину btn, если товара нет в корзине Shopify - PullRequest
0 голосов
/ 20 апреля 2020

возникли проблемы с этим кодом. То, что я хочу сделать, это:

, если товары уже есть в корзине>

показать кнопку «Просмотр корзины» один раз.

еще

показать добавить корзину btn однажды

это делает, но это печатает как, если количество отдельного продукта (входит в цикл) равняется 5, таким образом, это повторяет добавление в корзину btn 5 раз. В любом случае, здесь мой код:

  {% for product in collections[collection_].products %}
  <div class="single-product">
    <div class="single-product-image"><img src="{{ product.featured_image.src | img_url: 'large' }}" alt="{{ product.featured_image.alt | escape }}"></div>
    <div class="single-product-details">
      <h3><a href="{{ product.url | within: collection }}">{{ product.title }}</a></h3>
      <div class="product-price">
        <span class="new-price">{{ product.price | money }}</span>
      </div>
    </div>
    <div class="single-product-action">

      {% for item in cart.items %}
        {% if item.product.id == product.id  %}
          <a href="/cart" class="added_to_cart">View Cart</a>
        {% else %}
          {% assign not_in_cart = true %}
        {% endif %}
      {% endfor %}
      {% if not_in_cart %}
        Add to Cart btn
       {% endif %}
    </div>
  </div>
  {% endfor %}

мне нужен вывод:

один раз просмотреть корзину, если товар в корзине, или добавить в корзину, если товар не в корзине. Спасибо

1 Ответ

0 голосов
/ 20 апреля 2020

Вы должны немного изменить свою логику c.

{% assign not_in_cart = true %}
{% for item in cart.items %}
  {% if item.product.id == product.id  %}
    {% assign not_in_cart = false %}
    {% break %}
  {% endif %}
{% endfor %}

{% if not_in_cart %}
  <a href="/cart" class="added_to_cart">View Cart</a>
{% else %}
  Add to Cart btn
{% endif %}

Мы установили значение по умолчанию для not_in_cart равным false -> {% assign not_in_cart = true %}

После этого мы просматриваем элементы корзины, если элементы присутствуют, если это так, мы перезаписываем переменную на true и вырываем из l oop. (разрыв не требуется, но нет смысла зацикливаться, если мы уже знаем, что он присутствует)

И после этого мы просто создаем оператор if, чтобы проверить, является ли not_in_cart истинным или нет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...