Quiero verificar si existe un metacampo (creado con metafields Guru) en un producto o no y, en función de eso, cambiar una variable para mostrar u ocultar el div que contiene el metacampo.
Tengo esto:
{% assign display = "inline-block" %} {% if product.metafields.energielabel.energie.value == blank %} {% assign display = "none" %} {% endif %} <div id="energielabel-container"><img class="label" src="https://cdn.shopify.com/s/files/1/0619/8034/4516/{{ product.metafields.energielabel.energie.value }}" /></div> <style> #energielabel-container { width: 80px; display: {{ display }}; } </style>Cuando solo agrego algunas letras de ejemplo a la condición if, funciona como debería (metacampo vacío = muestra las letras de ejemplo), pero redefinir la variable no funciona ...
<img class="label" src="https://cdn.shopify.com/s/files/1/0619/8034/4516/{{product.metafields.energielabel.energie.value}}" />La línea de arriba es cuestionable. en su lugar, debe almacenar la URL completa;
usar su método creará código adicional y errores; la etiqueta img aún buscará la URL que no existe. Así que solo verifique con la etiqueta if y coloque todo el código dentro.
{% if product.metafields.energielabel.energie.value %} <style> #energielabel-container { width: 80px; display: inline-block; } </style> <div id="energielabel-container"> <img class="label" src="https://cdn.shopify.com/s/files/1/0619/8034/4516/{{product.metafields.energielabel.energie.value}}" /> </div> {% endif %}Su declaración if verifica si el metacampo está en blanco usando el operador == . Lo que quieres es verificar si no está en blanco (si existe)
Probar:
{% if product.metafields.energielabel.energie.value != blank %} {% assign display = "none" %} {% endif %}