0

产品不可用时如何隐藏它?我真的很接近解决这个问题,但我目前的问题是分页。它说有 28 个结果.. 当应该有 24 个时(4 个产品已售罄)。

这是我的收藏模板中的内容..

{% assign number = section.settings.products_per_page %}

{% paginate collection.products by number %}

{% for product in collection.products %}
    {% if product.available %}
      {% include 'product-listing' %}
    {% endif %}
{% endfor %}

{% include 'pagination' %}

{% endpaginate %}
4

2 回答 2

0

遗憾的是,您无法以任何方式修改分页。例如,如果您有一整页的产品已售罄,则不会显示任何产品。

修改它的唯一方法是创建一个单独的“智能集合”,它将获取库存大于 0 的产品并循环该产品而不是当前产品。

于 2018-10-09T06:44:35.243 回答
0

解决方案 1. 使用您自己的分页。

您可以使用自己的分页。这真的很容易。如果你有这个结构:

<ul>
  {% for product in collection.products %}
    <li {% if forloop.index > 8 %}style="display: none;"{% endif %}>product</li>
  {% endfor %}
</ul>
<a class="showmore">show more</a>

...你可以使用这个 jQuery:

$(".showmore").click(function() {
  for (i = 0; i < 8; i++) { 
    if($(this).prev().find('li:hidden').length==0) $(this).remove();
    $(this).prev().find('li:hidden').first().css('display','block');
  }
});

请注意,在大型商店中,您可能希望将图像的“src”属性放在“data-src”属性中并在切换/显示时替换它们。这可以防止在概览中一次加载所有图像。


解决方案 2. 不是隐藏,而是标记。

您还可以在您的产品旁边显示 SOLD OUT,而不是隐藏它。这是迄今为止最简单的解决方案。

于 2018-10-09T09:00:35.047 回答