templates/uniqskills/catalogue/landing_US2024/_partials/_payment.html.twig line 1

Open in your IDE?
  1. {# module type: PAYMENT #}
  2.     {% set productVariantsToDisplay = [] %}
  3.     {% set productPacksToDisplay = [] %}
  4.     {# Select product variants from landing #}
  5.     {% for landingProductVariant in module.subscriptions %}
  6.         {% for productVariant in productVariants %}
  7.             {% if productVariant.id == landingProductVariant.subscription %}
  8.                 {% set productVariantsToDisplay = productVariantsToDisplay|merge([{
  9.                     'productVariant': productVariant,
  10.                     'landingProductVariant': landingProductVariant
  11.                 }]) %}
  12.             {% endif %}
  13.         {% endfor %}
  14.     {% endfor %}
  15.     {# Select packages from landing if defined #}
  16.     {% if module.packages is defined %}
  17.         {% for landingProductPack in module.packages %}
  18.             {% for productPack in productPacks %}
  19.                 {% if productPack.id == landingProductPack.package %}
  20.                     {% set productPacksToDisplay = productPacksToDisplay|merge([{
  21.                         'productPack': productPack,
  22.                         'landingProductPack': landingProductPack
  23.                     }]) %}
  24.                 {% endif %}
  25.             {% endfor %}
  26.         {% endfor %}
  27.     {% endif %}
  28.     {# Calculate column sizes based on items count #}
  29.     {% set maxContactMdColumn = 3 %}
  30.     {% set maxProduktBoxMdColumn = 4 %}
  31.     {% set count = productVariantsToDisplay|length + productPacksToDisplay|length %}
  32.     {% set itemsCount = count == 0 ? 1 : count %}
  33.     {% set contactMdColumn = maxContactMdColumn %}
  34.     {% set baseProduktBoxMdColumn = ((12 - contactMdColumn) / itemsCount)|round(0, 'floor') %}
  35.     {% set produktBoxMdColumn = baseProduktBoxMdColumn > maxProduktBoxMdColumn ? maxProduktBoxMdColumn : baseProduktBoxMdColumn %}
  36.     {% set totalUsedColumns = produktBoxMdColumn * itemsCount + contactMdColumn %}
  37.     {% if totalUsedColumns > 12 %}
  38.         {% set overflow = totalUsedColumns - 12 %}
  39.         {% set adjustment = (overflow / itemsCount)|round(0, 'ceil') %}
  40.         {% set produktBoxMdColumn = produktBoxMdColumn - adjustment %}
  41.     {% endif %}
  42.     {# #### #}
  43. <section id="subscription">
  44.     <div class="container course-container pt20">
  45.         <div class="mw800 text-center">
  46.             <h3 class="font2 c1"><strong>Dołącz do uczestników kursu</strong></h3>
  47.             <div class="fs20 mb30"><strong>{{ course.name }}</strong></div>
  48.         </div>
  49.         <div class="text-center mb40">
  50.             <div class="row aligned-row" style="justify-content: center">
  51.                 {# Loop through product variants to display #}
  52.                 {% for productVariantToDisplay in productVariantsToDisplay %}
  53.                     {% set installmentAmount = '' %}
  54.                     {% set couponParam = app.request.query.get('apicoupon') %}
  55.                     {% set discountCode = null %}
  56.                     {# Determine if installment payment applies #}
  57.                     {% if productVariantToDisplay['productVariant'] is not empty and productVariantToDisplay['productVariant'].installmentAmount > 1 and productVariantToDisplay['productVariant'].paymentType.slug == 'partial-payment' %}
  58.                         {% set installmentAmount = productVariantToDisplay['productVariant'].installmentAmount ~ 'x' %}
  59.                     {% endif %}
  60.                     {% if couponParam is not empty %}
  61.                         {% set apiCouponEntity = getCouponEntity(couponParam) %}
  62.                         {% if isCouponSuitable(apiCouponEntity, productVariantToDisplay['productVariant']) %}
  63.                             {% set discountCode = apiCouponEntity %}
  64.                         {% endif %}
  65.                     {% endif %}
  66.                     {% if discountCode == null %}
  67.                         {% for productVariantToDisplay in productVariantsToDisplay %}
  68.                             {% if productVariantToDisplay['landingProductVariant'] is not empty %}
  69.                                 {% for subscriptionCoupon in productVariantToDisplay['productVariant'].coupon %}
  70.                                     {% if couponParam is not empty %}
  71.                                         {% if subscriptionCoupon.code == couponParam and discountCode is empty %}
  72.                                             {% set discountCode = subscriptionCoupon %}
  73.                                         {% endif %}
  74.                                     {% elseif productVariantToDisplay['landingProductVariant'].discountCode is not empty %}
  75.                                         {% if subscriptionCoupon.id == productVariantToDisplay['landingProductVariant'].discountCode and discountCode is empty %}
  76.                                             {% set discountCode = subscriptionCoupon %}
  77.                                         {% endif %}
  78.                                     {% endif %}
  79.                                 {% endfor %}
  80.                             {% endif %}
  81.                         {% endfor %}
  82.                     {% endif %}
  83.                     <div class="col-xs-12 col-lg-{{ produktBoxMdColumn }} mb40">
  84.                         <div class="produkt-box mb20">
  85.                             <div class="produkt-box-top fs17">
  86.                                 <strong>{{ productVariantToDisplay['landingProductVariant'].boxTitle ?? 'Kurs Online' }}</strong>
  87.                             </div>
  88.                             <div class="produkt-inside fs17">
  89.                                 <div class="mb10 pt10">
  90.                                     <strong>{{ productVariantToDisplay['landingProductVariant'].bulletTitle ?? 'Co otrzymasz w cenie kursu:' }}</strong>
  91.                                 </div>
  92.                                 <div class="mb20">
  93.                                     <ul class="included-list text-left">
  94.                                         {% for bulletPoint in productVariantToDisplay['landingProductVariant'].bullets %}
  95.                                             <li>{{ bulletPoint.title }}</li>
  96.                                         {% endfor %}
  97.                                     </ul>
  98.                                 </div>
  99.                                 <div class="mb20">
  100.                                     {% if productVariantToDisplay['productVariant'] is not empty and productVariantToDisplay['productVariant'].isRecurringSubscription != 1 %}
  101.                                         {% if installmentAmount == '' %}
  102.                                             {{ 'uniqskills.landing.fullPayment'|trans }}
  103.                                         {% else %}
  104.                                             {{ 'uniqskills.landing.installmentPayment'|trans }}
  105.                                         {% endif %}
  106.                                     {% endif %}
  107.                                 </div>
  108.                                 {% include 'uniqskills/catalogue/landing_US2024/_partials/price/_variant_price_widget.html.twig' with {
  109.                                     landingVariant: productVariantToDisplay['landingProductVariant'],
  110.                                     widgetType: 'payment',
  111.                                 } %}
  112.                                 {#  Button to buy #}
  113.                                 <div class="mb10">
  114.                                     <button class="cta addToCart"
  115.                                             data-carturl="{{ path('fmUniqskillsCartIndex') }}"
  116.                                             data-addurl="{{ path('fmProductCartFrontendAdd') }}"
  117.                                             data-notfound="{{ path('fmUniqskillsOrderError',
  118.                                                 {'_locale': app.session.get('userLocale', 'pl'), 'slugCourse': course.slug}) }}"
  119.                                             data-productVariantNoComplete="{{ productVariantToDisplay['productVariant'].productVariantNoComplete }}{{ getAdditionalVariants(productVariantToDisplay['productVariant']) }}"
  120.                                             {% if discountCode is not null and discountCode.isActive and discountCode.dateTo|date("U") > "now"|date("U") %}
  121.                                                 data-coupon="{{ discountCode.code }}"
  122.                                             {% endif %}
  123.                                             data-locale="{{ app.request.locale }}"
  124.                                             data-id="wersja1-button"
  125.                                             data-redirecttocart="true"
  126.                                             data-type="button"
  127.                                             type="button"
  128.                                             onClick="{{ fbPixelTrack('AddToCart', productVariantToDisplay['productVariant'].id)|raw }}
  129.                                      {{ gaDataLayerUS('add_to_cart', productVariantToDisplay['productVariant'].id)|raw }}
  130.                                     sendMixPanelEvent('{{ constant('App\\Utils\\Uniqskills\\MixPanel\\MixPanelEvent::ADD_TO_CART') }}', {
  131.                                     'product_variant_id': {{ productVariantToDisplay['productVariant'].id }},
  132.                                     'product_variant_no': '{{ productVariantToDisplay['productVariant'].productVariantNoComplete }}',
  133.                                     'product_variant_trade_name': '{{ productVariantToDisplay['productVariant'].tradeName }}'
  134.                                     })
  135.                                     {{ ga4('add_to_cart', productVariantToDisplay['productVariant'].id)|raw }}
  136.                                     "
  137.                                     >
  138.                                         {% if productVariantToDisplay['productVariant'].isRecurringSubscription %}
  139.                                             {{ 'uniqskills.landing.subscribe'|trans }}
  140.                                         {% elseif productVariantToDisplay['productVariant'].priceNet == 0 %}
  141.                                             {{ 'uniqskills.landing.orderAccess'|trans }}
  142.                                         {% else %}
  143.                                             {{ 'uniqskills.landing.signInNow'|trans }}
  144.                                         {% endif %}
  145.                                     </button>
  146.                                 </div>
  147.                                 {#  END OF: Button to buy #}
  148.                             </div>
  149.                         </div>
  150.                         <div class="">
  151.                             {% if module.showIconBlik == true %}
  152.                                 <img src="/uniqskills/US_2024/images/blik.png" alt="" class="img-fluid"/>
  153.                             {% endif %}
  154.                             {% if module.showIconPayU == true %}
  155.                                 <img src="/uniqskills/US_2024/images/payu.png" alt="" class="img-fluid"/>
  156.                             {% endif %}
  157.                         </div>
  158.                     </div>
  159.                 {% endfor %}
  160.                 {# Loop through product packs to display #}
  161.                 {% for productPackToDisplay in productPacksToDisplay %}
  162.                     <div class="col-xs-12 col-lg-{{ produktBoxMdColumn }} mb40">
  163.                         <div class="produkt-box mb20">
  164.                             <div class="produkt-box-top fs17">
  165.                                 <strong>{{ productPackToDisplay['landingProductPack'].packageTitle ?? 'Kurs Online' }}</strong>
  166.                             </div>
  167.                             <div class="produkt-inside fs17">
  168.                                 <div class="mb10 pt10">
  169.                                     <strong>{{ productPackToDisplay['landingProductPack'].packageBulletTitle ?? 'Co otrzymasz w cenie kursu:' }}</strong>
  170.                                 </div>
  171.                                 <div class="mb20">
  172.                                     <ul class="included-list text-left">
  173.                                         {% for coursePackItem in productPackToDisplay['productPack'].courseProductPackItem %}
  174.                                             {% for point in coursePackItem.bulletPoints %}
  175.                                                 <li>{{ point|raw }}</li>
  176.                                             {% endfor %}
  177.                                         {% endfor %}
  178.                                     </ul>
  179.                                 </div>
  180.                                 <div class="mb20">
  181.                                     {{ 'uniqskills.landing.fullPayment'|trans }}
  182.                                 </div>
  183.                                 {% if productPackToDisplay['productPack'].type == 'cycle' %}
  184.                                     {% set firstProductPackItem = productPackToDisplay['productPack'].productPackItem|first %}
  185.                                     {% set packPriceGross = firstProductPackItem.productVariant.getFullPrice('gross') %}
  186.                                     {% set packPriceGrossBeforeDiscoun = packPriceGross %}
  187.                                 {% else %}
  188.                                     {% set packPriceGross = productPackToDisplay['productPack'].totalPriceGross %}
  189.                                     {% set packPriceGrossBeforeDiscount = productPackToDisplay['productPack'].totalPriceBeforeDiscountGross %}
  190.                                 {% endif %}
  191.                                 <div class="fs16 mb10">Cena:
  192.                                     {% if packPriceGrossBeforeDiscount != packPriceGross %}
  193.                                         <s>
  194.                                             {{ packPriceGrossBeforeDiscount }} zł
  195.                                         </s>
  196.                                     {% endif %}
  197.                                 </div>
  198.                                 <div class="produkt-price mb10">
  199.                                     {{ packPriceGross }} zł
  200.                                 </div>
  201.                                 <div class="mb10">
  202.                                     <button class="cta addToCart"
  203.                                             data-carturl="{{ path('fmUniqskillsCartIndex') }}"
  204.                                             data-addurl="{{ path('fmProductCartFrontendAdd') }}"
  205.                                             data-notfound="{{ path('fmUniqskillsOrderError',
  206.                                                 {'_locale': app.session.get('userLocale', 'pl'), 'slugCourse': course.slug}) }}"
  207.                                             data-productpackid="{{ productPackToDisplay['productPack'].id }}"
  208.                                             {% if productPackToDisplay['productPack'].type == 'cycle' %}
  209.                                                 data-cycle="1"
  210.                                             {% endif %}
  211.                                             data-locale="{{ app.request.locale }}"
  212.                                             data-id="wersja1-button"
  213.                                             data-redirecttocart="true"
  214.                                             data-type="button"
  215.                                             type="button"
  216.                                             onclick="{{ gaDataLayerUS('add_to_cart', productPackToDisplay['productPack'].id, {'isProductPack': 1}) }}
  217.                                          {{ ga4('add_to_cart', productPackToDisplay['productPack'].id, {'isProductPack': 1}) }}
  218.                                                     "
  219.                                     >
  220.                                         {% if productPackToDisplay['productPack'].type == 'cycle' %}
  221.                                             {{ 'uniqskills.landing.nl.joinNow'|trans }}
  222.                                         {% else %}
  223.                                             {{ 'uniqskills.landing.signInNow'|trans }}
  224.                                         {% endif %}
  225.                                     </button>
  226.                                 </div>
  227.                             </div>
  228.                         </div>
  229.                         <div class="">
  230.                             {% if module.showIconBlik == true %}
  231.                                 <img src="/uniqskills/US_2024/images/blik.png" alt="" class="img-fluid"/>
  232.                             {% endif %}
  233.                             {% if module.showIconPayU == true %}
  234.                                 <img src="/uniqskills/US_2024/images/payu.png" alt="" class="img-fluid"/>
  235.                             {% endif %}
  236.                         </div>
  237.                     </div>
  238.                 {% endfor %}
  239.                 {% include 'uniqskills/catalogue/landing_US2024/_partials/_contact.html.twig' %}
  240.             </div>
  241.         </div>
  242.     </div>
  243. </section>