custom/plugins/HemoCheckoutStepper/src/Resources/views/storefront/page/checkout/_page.html.twig line 1

Open in your IDE?
  1. {% sw_extends '@Storefront/storefront/page/checkout/_page.html.twig' %}
  2. {% block page_checkout %}
  3.     {# ═══════════════════════════════════════════
  4.        CHECKOUT STEPPER — 3-Step Wizard
  5.        Only visible on confirm page (after login) and finish page
  6.        Steps: Anschrift → Zahlung → Bestellung abschließen
  7.     ═══════════════════════════════════════════ #}
  8.     {% set isConfirmPage = controllerAction|lower == 'confirmpage' %}
  9.     {% set isFinishPage = controllerAction|lower == 'finishpage' %}
  10.     {% set showStepper = isConfirmPage or isFinishPage %}
  11.     {% set steps = [
  12.         { number: 1, label: 'checkoutStepper.address'|trans },
  13.         { number: 2, label: 'checkoutStepper.payment'|trans },
  14.         { number: 3, label: 'checkoutStepper.summary'|trans },
  15.     ] %}
  16.     {% if showStepper %}
  17.         <nav class="checkout-stepper"
  18.              aria-label="{{ 'checkoutStepper.progress'|trans }}"
  19.              data-label-continue="{{ 'checkoutStepper.continue'|trans }}"
  20.              data-label-back="{{ 'checkoutStepper.back'|trans }}"
  21.              data-label-edit-address="{{ 'checkoutStepper.editAddress'|trans }}"
  22.              data-label-edit-payment="{{ 'checkoutStepper.editPayment'|trans }}"
  23.              data-label-step-1="{{ steps[0].label }}"
  24.              data-label-step-2="{{ steps[1].label }}"
  25.              data-label-step-3="{{ steps[2].label }}">
  26.             <div class="container">
  27.                 <ol class="checkout-stepper__list">
  28.                     {% for step in steps %}
  29.                         {# On finish page: all completed. On confirm: JS manages state #}
  30.                         {% if isFinishPage %}
  31.                             {% set state = 'completed' %}
  32.                         {% else %}
  33.                             {# Default: step 1 active, rest upcoming. JS overrides this immediately #}
  34.                             {% set state = step.number == 1 ? 'active' : 'upcoming' %}
  35.                         {% endif %}
  36.                         <li class="checkout-stepper__item checkout-stepper__item--{{ state }}" {% if state == 'active' %}aria-current="step"{% endif %}>
  37.                             {# Connector line #}
  38.                             {% if not loop.first %}
  39.                                 <div class="checkout-stepper__connector">
  40.                                     <div class="checkout-stepper__connector-fill {% if state == 'completed' or state == 'active' %}checkout-stepper__connector-fill--active{% endif %}"></div>
  41.                                 </div>
  42.                             {% endif %}
  43.                             {# Step circle + label #}
  44.                             {% if state == 'completed' %}
  45.                                 <span class="checkout-stepper__step" style="cursor: default;">
  46.                                     <span class="checkout-stepper__circle checkout-stepper__circle--completed">
  47.                                         <svg width="14" height="14" viewBox="0 0 14 14" fill="none">
  48.                                             <path d="M11.6 3.5L5.25 9.85L2.4 7" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
  49.                                         </svg>
  50.                                     </span>
  51.                                     <span class="checkout-stepper__label">{{ step.label }}</span>
  52.                                 </span>
  53.                             {% elseif state == 'active' %}
  54.                                 <span class="checkout-stepper__step">
  55.                                     <span class="checkout-stepper__circle checkout-stepper__circle--active">{{ step.number }}</span>
  56.                                     <span class="checkout-stepper__label checkout-stepper__label--active">{{ step.label }}</span>
  57.                                 </span>
  58.                             {% else %}
  59.                                 <span class="checkout-stepper__step">
  60.                                     <span class="checkout-stepper__circle checkout-stepper__circle--upcoming">{{ step.number }}</span>
  61.                                     <span class="checkout-stepper__label checkout-stepper__label--upcoming">{{ step.label }}</span>
  62.                                 </span>
  63.                             {% endif %}
  64.                         </li>
  65.                     {% endfor %}
  66.                 </ol>
  67.             </div>
  68.         </nav>
  69.     {% endif %}
  70.     {{ parent() }}
  71. {% endblock %}