OHNE Gewähr
Eine Version die noch Sonn und vorher definierte Feiertage berücksichtigt
{% assign holidays = "25.12,01.01,01.05" | split: "," %}
{% assign current_year = "now" | date: "%Y" %}
{% assign ShippingTime = 3 %}
{%- if product.metafields.custom.versandzeit -%}
{% assign ShippingTime = product.metafields.custom.versandzeit %}
{%- elsif product.selected_or_first_available_variant.metafields.custom.versandzeit -%}
{% assign ShippingTime = product.selected_or_first_available_variant.metafields.custom.versandzeit %}
{%- endif -%}
{% assign daysStart = ShippingTime | times: 86400 %}
{% assign daysEnd = ShippingTime | plus: 3 | times: 86400 %}
{% assign deliveryStart = "now" | date: "%s" | plus: daysStart %}
{% assign deliveryEnd = "now" | date: "%s" | plus: daysEnd %}
{%- assign deliveryStartDay = deliveryStart | date: "%w" -%}
{%- assign deliveryEndDay = deliveryEnd | date: "%w" -%}
{% comment %}
Überprüfen, ob das Start- oder Enddatum auf einen Sonntag fällt
{% endcomment %}
{%- if deliveryStartDay == '0' -%}
{% assign deliveryStart = deliveryStart | plus: 86400 %}
{%- endif -%}
{%- if deliveryEndDay == '0' -%}
{% assign deliveryEnd = deliveryEnd | plus: 86400 %}
{%- endif -%}
{% comment %}
Feiertage berücksichtigen, dynamisch mit dem aktuellen Jahr
{% endcomment %}
{%- for holiday in holidays -%}
{%- assign holiday_with_year = holiday | append: "." | append: current_year -%}
{% assign deliveryStart_formatted = deliveryStart | date: "%d.%m.%Y" %}
{% assign deliveryEnd_formatted = deliveryEnd | date: "%d.%m.%Y" %}
{% comment %}
Prüfen, ob das Start- oder Enddatum ein Feiertag ist
{% endcomment %}
{%- if deliveryStart_formatted == holiday_with_year -%}
{% assign deliveryStart = deliveryStart | plus: 86400 %}
{%- endif -%}
{%- if deliveryEnd_formatted == holiday_with_year -%}
{% assign deliveryEnd = deliveryEnd | plus: 86400 %}
{%- endif -%}
{%- endfor -%}
Vorraussichtliche Lieferung: {{ deliveryStart | date: "%d.%m.%Y" }} - {{ deliveryEnd | date: "%d.%m.%Y" }}