Liquid、JavaScriptなどに関する質問
ログインした顧客を識別し、トップページのスライダー表示を条件分岐させたいです。
(顧客aaaにはaaa用のスライダー画像だけ、タグされていないユーザーには登録したスライダー全て表示など)
顧客に追加したタグにより、ログインした顧客の条件分岐についてはわかりました。
質問内容を把握しかねていますが、おそらく以下のように考えれば良いのではと思います。
■前提
■概要
{% if tag contains block.settings.menber %}
block.settings.menberの値(=指定タグ)がtagに含まれていれば表示
{% endif %}
ブロック設定側でタグと画像を選択済みの状態だと思いますので、liquid側でcase文を書く必要はないのではと思います。
以上ですが、それほど検討したわけではなく、サンプルコードも適当に書いているので、問題ありましたら申し訳ありません。
Jizo_Inagaki 様
ご教示ありがとうございます。
上記の条件分岐で十分でした。ややこしく考えすぎていたみたいです。
呼び出す中身についてなのですが、既存のものに当てはめるとなぜかすべて表示されてしまいます。
<ul>
{%- if customer.tags contains block.settings.member -%}
<li class="member">ブロックで選択したスライダーの1つ(aaa, bbb, cccのどれか)</li>
{%- else -%}
<li class="guest">ブロックで選択したスライダーの1つ(aaa, bbb, ccc含む顧客すべて)</li>
{%- endif -%}
</ul>
既存のスライダーブロックはul li のliがブロックになっており、増減ができるようになっています。
こちらの条件分岐にliを埋め込むだけでは不十分なのでしょうか。.memberと.guestは同じものです。
コード拝見しましたが全体的な構造、ブロックやif文などに関する理解や扱い方が間違っているように思います。
■if文
記載しました block.settings.member を用いたif文は以下のいずれかでしか成立せず、else で「aaa, bbb, ccc含む顧客すべて」という条件は満たせません。
■block.settings.member の値に基づく動作
該当ブロックは以下の動作になるため、block.settings.member によって画像を出し分ける分岐は必要ないはずです。
必要性があるとすると以下などかなと思いますが、そのような記載はなかったと思います。
■構造の見直し
おそらく検討済みかと思いますが、状況によっては問題が起こる可能性があるものの以下の方法が色々簡単かなと思います。
以上ですが、状況的に無料で対応する範囲を超えますので回答はここまでにさせていただきたいと思います。
この後他の方が回答される可能性を考え、失礼かと思いますが以下をお勧めします。
Jizo_Inagaki 様
ご回答ありがとうございます。
block.settings.member の値の認識は合っているはずなのですが、うまくいかないですね。
上記の構造の見直しを検討したいと思います。
当方、色々な方法でためしてみるものの、整理ができていない状態です。
また、質問の仕方についてご指摘ありがとうございます。おっしゃる通りです。以後気をつけます。
サポートの選択肢が増えていく中、最適となる選択の判断が難しくなっているかと存じます。今回は問題の解決に最適となるサポートの選択方法を、紹介させて頂きます。 選択肢のご紹介...
By Mirai Oct 6, 20242023年初頭、Shopifyペイメントアカウント、及びShopifyアカウント全体のセキュリティを強化する為の変更が適用されました。ユーザーのアカウントセキュリティを強化す...
By Mirai Sep 29, 2024概要: 年末/年明けは、消費者が最もショッピングを行う時期の一つです。特に、ブラックフライデー・サイバーマンデー(BFCM)は、世界中で注目される大規模なセールイベントであ...
By JapanGuru Sep 25, 2024