我试图在循环外创建一个串联的字符串,然后将其设置为一个变量,然后可以在循环外使用。我无法使用旧版本的Jinja2访问名称空间。
到目前为止,这里是我要说明的事情...
{% set ab_cart_string = '' %}
{% for item in cart_object %}
VariantID = {{ item.variant_id }}
Item Count = {{ item.quantity }}
{% set ab_cart_string = ab_cart_string ~ item.variant_id ~ ':' ~ item.quantity ~ ',' %}
String = {{ ab_cart_string }}
{% endfor %}
Url = {{ ab_cart_string|slice(0, -1) }}
预期输出:
String = 27707915206755:1,28410722943075:1,
网址= 27707915206755:1,28410722943075:1
实际输出:
String = 27707915206755:1,28410722943075:1,
网址=
答案 0 :(得分:0)
我不是在循环外访问变量,而是在标记内部构建了字符串,因为目标是建立链接。
在这里,我要遍历产品对象并遍历每个索引,然后添加一个variant.id和一个数量,以使用用户最后添加的商品在Shopify中手动构建一个cart link。
然后,当循环中有多个项目时,我添加了一个条件(如果不是最后一个循环),我们需要在索引之间添加逗号。这样,我就可以根据每个永久链接正确构建链接,以将购物车预加载到Shopify中。
<a href="https://{{ event.domain }}/cart/
{%- set products = cart_object -%}
{%- for product in products -%}
{{- product.variant_id -}}:{{- product.quantity -}}
{%- if not loop.last -%},{%- endif -%}
{%- endfor -%}
">CART LINK HERE</a>