ページでの条件分岐

特定のタグが付いた商品が2個以上(同一商品の数量2でも)の時にチェックボックスを表示させたくいろいろと試していますがうまくいきません。

{% for item in cart.items limit:1 %}
{% for tag in item.product.tags %}
{% if tag contains “hoge” %}
{% if cart.item_count > 2 %}
a
{% endif %}
{% endif %}
{% endfor %}
{% endfor %}

上記内容ですとhogeが一つでも含まれているとチェックボックスが出てしまいます。
cart.item_countをカート内のhogeの数が取得できればそちらに変えて条件分岐できないかと思いましたがわかりませんでした。

カート内のhogeの総数を取得できればいけそうな気がしましが何か良い方法がございましたらご教授いただけると助かります。

1 Like

Hdmさん、はじめまして。

Tsunの小笠原と申します。

特定のタグが付いた商品が2個以上(同一商品の数量2でも)の時にチェックボックスを表示

下記の感じでどうでしょうか?

テストしてないので、うまく動かなったから申し訳ないです。

{%- liquid
  assign tag_count = 0

  for item in cart.items
    if item.product.tags contains 'hoge'
      assign tag_count = tag_count | plus: item.quantity
    endif
  endfor

  if tag_count >= 2
    comment
    チェックボックスを表示
    endcomment
  endif
-%}

cart.itemsをループして、product.tags内に特定のタグを含む場合に、tag_countに足しています。

(同一商品でも2つあった場合を許容するということでしたので、商品数分足しています)

以上、よろしくお願いします。

上記内容で無事解決しました!

assignで特定のタグのitem.quantityを持ってくればよかったのですね。

とても勉強になりました。

ありがとうございます。

Hdmさん、無事解決したようでよかったです。

こちらのスレッドを解決済みにしていただくと、今後参照される方のためにもなりますので、よろしくお願いします。