products.tpl 79 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593
  1. <!-- modules/addons/adminpanel/core/front/products.tpl -->
  2. {debug}
  3. {assign billingcycle "monthly"}
  4. {if $block.sechidden neq "true"}
  5. {if $block.ptstyle == ''}
  6. <div id="sec-{$blockkey}" class="sec products{if $block.bgcolor != ""} {$block.bgcolor}{/if}{if $block.borders != ""} {$block.borders}{/if}{if $block.toppadding == "1"} inner-t-60{elseif $block.toppadding == "2"} inner-t-30{elseif $block.toppadding == "3"} no-padding-top{/if}{if $block.bottompadding == "1"} inner-b-60{elseif $block.bottompadding == "2"} inner-b-30{elseif $block.bottompadding == "3"} no-padding-bottom{/if}">
  7. <div class="container">
  8. {if $block.caption || $block.sectitle || $block.subtitle}
  9. <div class="sec-description">
  10. {if $block.caption}
  11. <div class="sec-caption">
  12. <span class="rounded">{$block.caption}</span>
  13. </div>
  14. {/if}
  15. {if $block.sectitle}
  16. <h2 class="sec-title">{$block.sectitle}</h2>
  17. {/if}
  18. {if $block.subtitle}
  19. <div class="sec-subtitle">{$block.subtitle}</div>
  20. {/if}
  21. </div>
  22. {/if}
  23. <div class="cros-pricing-container{if $block.itemcounts < "3"} mw-768 mx-auto{/if}">
  24. {if $block.SbSwitcher && !$block.DisableSwitcher}
  25. {if $block.switcherCycles !== null && $block.switcherCycles|@count > 1}
  26. {assign var="cycles" value=$block.switcherCycles}
  27. {else}
  28. {assign var="cycles" value=$allCycles}
  29. {/if}
  30. {if !$block.bsco}
  31. {assign var="cycles" value=$cycles|@array_reverse}
  32. {/if}
  33. <div class="product-billing-switcher-{$blockkey}">
  34. <div class="btn-group white border d-none d-sm-inline-block" role="group">
  35. {foreach $cycles as $cycle}
  36. <button type="button" class="btn cycle-change" data-cycle="{$cycle}">
  37. <span class="btn-text">{lang key={'pricingCycleLong.'|cat:$cycle}}</span>
  38. </button>
  39. {/foreach}
  40. </div>
  41. <div class="btn-group white border d-inline-block d-sm-none">
  42. <span class="px-3 py-1 small text-muted border-right">{$WLANG.orderbillingcycle}</span>
  43. <button type="button" class="btn dropdown-toggle" data-toggle="dropdown">
  44. <span class="btn-text">{lang key={'pricingCycleLong.'|cat:$cycles[0]}}</span>
  45. </button>
  46. <ul class="dropdown-menu">
  47. {foreach $cycles as $cycle}
  48. <li class="dropdown-item cycle-change" data-cycle="{$cycle}">
  49. <span class="btn-text">{lang key={'pricingCycleLong.'|cat:$cycle}}</span>
  50. </li>
  51. {/foreach}
  52. </ul>
  53. </div>
  54. </div>
  55. {/if}
  56. <!-- div class pricing_style_2 -->
  57. <div class="pricing_style_2">
  58. <div class="swiper" id="pricing-tables-{$blockkey}">
  59. <div class="row row-eq-height{if !$block.DisplayInGrid} flex-nowrap{/if} pricing-slider pricing-{$blockkey} swiper-wrapper{if count($block.table) < 3} justify-content-md-center{/if}">
  60. {if count($block.table) > 0}
  61. {foreach from=$block.table item=$ditem key=$kk}
  62. <div class="col-12{if $block.itemcounts == "2"} col-md-6{elseif $block.itemcounts == "3"} col-md-6 col-lg-4 col-xl-4{elseif $block.itemcounts == "4"} col-md-6 col-lg-4 col-xl-3{/if} products-slide">
  63. <div class="cros-pricing-table overflow-hidden mt-0 mb-4{if $block.ststyle} {$block.ststyle}{/if}{if $block.noshadow} no-shadow{/if}{if $block.tablebg == "light"} light{elseif $block.tablebg == "primary"} bg-primary{elseif $block.tablebg == "dark"} dark{else} white{/if}{if $ditem['Featured']} active{/if}{if $block.centered} centered{/if}">
  64. {if $ditem['Graphic']}
  65. <div class="graphics mb-3">
  66. {if !$ditem['Graphic']|strstr:"fa-"}
  67. <img src="{$WEB_ROOT}/{$ditem['Graphic']}" alt="{$ditem.title}" class="img-fluid">
  68. {else}
  69. <span class="icon">
  70. <i class="{$ditem['Graphic']}"></i>
  71. </span>
  72. {/if}
  73. </div>
  74. {/if}
  75. <div class="h4">{$ditem['productdetails']['name']}</div>
  76. {if $ditem['Featured']}
  77. {if $block.ststyle}
  78. <div class="feature-sticker">
  79. <span class="st-sm">
  80. {if $block.featured}{$block.featured}{else}{$WLANG.featuredProduct}{/if}
  81. </span>
  82. </div>
  83. {else}
  84. <div class="sticker-wrapper">
  85. <div class="sticker">
  86. {if $block.featured}{$block.featured}{else}{$WLANG.featuredProduct}{/if}
  87. </div>
  88. </div>
  89. {/if}
  90. {/if}
  91. {if $block.descp == ""}
  92. {if count($ditem['productdetails']['description']['features']) > 0}
  93. {if $ditem['productdetails']['description']['featuresdesc']}
  94. <div class="desc">{$ditem['productdetails']['description']['featuresdesc']}</div>
  95. {/if}
  96. {/if}
  97. {/if}
  98. <!-- If Empty -->
  99. {* {if !empty{$ditem["dropdown"]} && !empty{$ditem['Plan']} && $ditem["dropdown"][$ditem['Plan']]|@count > "1" && !$block.DisableSwitcher} *}
  100. {* {if isset($ditem["dropdown"]) && isset($ditem['Plan']) && $ditem["dropdown"][$ditem['Plan']]|@count > "1" && !$block.DisableSwitcher} *}
  101. {* {if $ditem["dropdown"][$ditem['Plan']]|@count > "1" && !$block.DisableSwitcher} *}
  102. {* {if !{$ditem["dropdown"] ?? 'empty'} && !{$ditem['Plan'] ?? 'empty'} && $ditem["dropdown"][$ditem['Plan']]|@count > "1" && !$block.DisableSwitcher} *}
  103. {if $block.descp == ""}
  104. {if $block.bsco}
  105. {foreach $ditem["dropdown"] as $dropdownkey=>$dropdownprice}
  106. {$ditem["dropdown"][$dropdownkey] = $dropdownprice|@array_reverse}
  107. {/foreach}
  108. {/if}
  109. {assign var="dropdownprice" value=$ditem["dropdown"][$ditem['Plan']][0] nocache}
  110. {assign var="defaultbilling" value=$dropdownprice['cycle'] nocache}
  111. {assign var="taxtype" value=$dropdownprice['taxtype'] nocache}
  112. {assign var="hasconfigoptions" value=$dropdownprice['hasconfigoptions'] nocache}
  113. <!-- Assign Var {$defaultbilling} -->
  114. <!-- Assign Var $dropdownprice {$dropdownprice|print_r} -->
  115. <!-- Assign Var $block {$block|print_r} -->
  116. <div class="billing-cycle-pricing float{if $block.descp == "below"} desc_belwo{/if}">
  117. {if !$block.SbSwitcher}
  118. <div class="btn-group mb-2">
  119. <a class="btn dropdown-toggle" data-toggle="dropdown" href="#">
  120. <div class="pricing_wrapr">
  121. {$dropdownprice['billingcycle']}
  122. <!-- Save Text auskommentiert -->
  123. {* {if $dropdownprice['save']}<div class="save_text"><span class="badge badge-primary">{$dropdownprice['save']}</span></div>{/if} *}
  124. </div>
  125. <span class="fal fa-angle-down"></span>
  126. </a>
  127. <ul class="dropdown-menu">
  128. <!-- Dropdown Price {$defaultbilling} -->
  129. {if $ditem["dropdown"][$ditem['Plan']]}
  130. {foreach $ditem["dropdown"][$ditem['Plan']] as $dropdownprice}
  131. <li class="billinging_wrapr" data-ultn-bilcycle="{$dropdownprice['cycle']}">
  132. <div class="pricing_wrapr">
  133. {$dropdownprice['billingcycle']} @ {if $dropdownprice['save']}<div class="save_text"><span class="badge badge-primary">{$dropdownprice['save']}</span></div>{/if}
  134. </div>
  135. </li>
  136. {/foreach}
  137. {/if}
  138. </ul>
  139. </div>
  140. {/if}
  141. <!-- if $ditem["dropdown"][$ditem['Plan']] -->
  142. {if $ditem["dropdown"][$ditem['Plan']]}
  143. {/if}
  144. </div>
  145. {else}
  146. <div class="product_pricing_single">
  147. {if $block.DisableBrekdown}
  148. {if isset($ditem.dropdown) && is_array($ditem.dropdown)}
  149. {foreach from=$ditem.dropdown item=$dropdown key=$dropdownKey}
  150. {assign var="firstCycle" value=$dropdown|@end}
  151. {if $firstCycle.hasconfigoptions}
  152. <div class="regular_pricing">
  153. <span class="small text-muted">{$WLANG.from}</span>
  154. </div>
  155. {/if}
  156. <div class="price">
  157. <span class="cost">
  158. {$firstCycle.prefix}{$firstCycle.price}
  159. </span>
  160. <span class="suffix">
  161. {$firstCycle.suffix}
  162. </spn>
  163. </div>
  164. <div class="cycle small text-muted">
  165. {$firstCycle.cycle|capitalize}
  166. </div>
  167. {/foreach}
  168. {/if}
  169. {else}
  170. {if $ditem["price"] == 'FREE'}
  171. <span class="badge badge-secondary price-free">{$WLANG.orderfree}</span>
  172. {else}
  173. {if $ditem["productdetails"]['hasconfigoptions']}
  174. <div class="regular_pricing">
  175. <span class="small text-muted">{$WLANG.from}</span>
  176. </div>
  177. {/if}
  178. <div class="price">
  179. {assign var="ccurrency" value=$ditem["productdetails"]["price"]["price"]->getCurrency()}
  180. <span class="cost">{$ditem["productdetails"]["price"]['simple']}</span>
  181. {if $ccurrency["suffix"]}<span class="suffix">{$ccurrency["suffix"]}</span>{/if}
  182. </div>
  183. {if $ditem["billingcycle"] != ""}
  184. <div class="cycle small text-muted">{$ditem["billingcycle"]}</div>
  185. {elseif $ditem["productdetails"]["price"]["cycle"] == "onetime"}
  186. <div class="cycle small text-muted">{$WLANG.orderpaymenttermonetime}</div>
  187. {/if}
  188. {if $ditem["productdetails"]["price"]["setupFee"]}
  189. <div class="setup-fee small text-muted"><span><i class="fal fa-plus"></i></span> {$ditem["productdetails"]["price"]["setupFee"]} {$WLANG.ordersetupfee}</div>
  190. {/if}
  191. {/if}
  192. {/if}
  193. </div>
  194. {/if}
  195. {if $block.descp == "below" || $block.descp == "1"}
  196. {if count($ditem['productdetails']['description']['features']) > 0}
  197. {if $ditem['productdetails']['description']['featuresdesc']}
  198. <div class="desc mt-2">{$ditem['productdetails']['description']['featuresdesc']}</div>
  199. {/if}
  200. {/if}
  201. {/if}
  202. {*
  203. {if !$block.orderLinkinLast}
  204. <div class="product-actions w-100">
  205. <a href="{if $ditem['stockControlEnabled'] && !$ditem['quantityInStock']}javascript:void(0){else}{$WEB_ROOT}/{if $ditem["productdetails"]['isMarketConnect']}cart/order/{else}cart.php{/if}?a=add&pid={$ditem['Plan']}{if $ditem["dropdown"][$ditem['Plan']]|@count > "1" && !$block.DisableSwitcher}&billingcycle={$defaultbilling}{/if}{/if}" class="btn btn-primary{if $ditem['stockControlEnabled'] && !$ditem['quantityInStock']} disabled{/if}">
  206. {if $ditem['stockControlEnabled'] && !$ditem['quantityInStock']}{$WLANG.outofstock}{elseif $block.btntext}{$block.btntext}{else}{$WLANG.addtocart}{/if}
  207. </a>
  208. </div>
  209. {/if}
  210. *}
  211. {if $block.descp == "2"}
  212. {if count($ditem['productdetails']['description']['features']) > 0}
  213. {if $ditem['productdetails']['description']['featuresdesc']}
  214. <div class="desc_small mt-3 mb-1">{$ditem['productdetails']['description']['featuresdesc']}</div>
  215. {/if}
  216. {/if}
  217. {/if}
  218. <!-- Features / Eigenschaften -->
  219. {if $block.featurescollapsed}
  220. <!-- Features / Collapsed -->
  221. {if $ditem['productdetails']['description']}
  222. {if count($ditem['productdetails']['description']['features']) > 0}
  223. <ul class="plan-features">
  224. {foreach $ditem['productdetails']['description']['features'] as $feature => $value}
  225. <li><b>{$feature}</b>{$value}</li>
  226. {/foreach}
  227. </ul>
  228. {else}
  229. <div class="plan-features">
  230. {$ditem['productdetails']['description']['original']}
  231. </div>
  232. {/if}
  233. {/if}
  234. {else}
  235. <!-- Features / NOT Collapsed -->
  236. <p class="PriceList-toggle collapsed" data-toggle="collapse" data-target="#PlanLists{$kk + 1}">
  237. <span>{$WLANG.clientareaviewdetails}</span>
  238. </p>
  239. {if $ditem['productdetails']['description']}
  240. {if count($ditem['productdetails']['description']['features']) > 0}
  241. <ul class="plan-features collapse" id="PlanLists{$kk + 1}">
  242. <table border="0" style="display: inline-table; table-layout:fixed; width:100%; visibility:visible;" cellpadding="0" cellspacing="5">
  243. {foreach $ditem['productdetails']['description']['features'] as $feature => $value}
  244. <tr>
  245. <td><b>{$feature}</b></td>
  246. <td>
  247. {if $value == "Ja"}
  248. <i class="far fa-check-square" class="td-product-feature-icon"></i>
  249. {elseif $value == "Nein"}
  250. <i class="far fa-square" class="td-product-feature-icon"></i>
  251. {elseif $value == "Optional"}
  252. <i class="fas fa-plus" class="td-product-feature-icon"></i>
  253. {else}
  254. {$value}
  255. {/if}
  256. </td>
  257. </tr>
  258. {/foreach}
  259. </table>
  260. {*
  261. {foreach $ditem['productdetails']['description']['features'] as $feature => $value}
  262. <li><b>{$feature}: </b>{$value}</li>
  263. {/foreach}
  264. *}
  265. </ul>
  266. {else}
  267. <div class="plan-features collapse" id="PlanLists{$kk + 1}">
  268. {$ditem['productdetails']['description']['original']}
  269. </div>
  270. {/if}
  271. {/if}
  272. {/if}
  273. {if !$block.orderLinkinLast}
  274. <div class="product-actions w-100">
  275. <a href="{if $ditem['stockControlEnabled'] && !$ditem['quantityInStock']}javascript:void(0){else}{$WEB_ROOT}/{if $ditem["productdetails"]['isMarketConnect']}cart/order/{else}cart.php{/if}?a=add&pid={$ditem['Plan']}{if $ditem["dropdown"][$ditem['Plan']]|@count > "1" && !$block.DisableSwitcher}&billingcycle={$defaultbilling}{/if}{/if}" class="btn btn-primary{if $ditem['stockControlEnabled'] && !$ditem['quantityInStock']} disabled{/if}">
  276. {if $ditem['stockControlEnabled'] && !$ditem['quantityInStock']}{$WLANG.outofstock}{elseif $block.btntext}{$block.btntext}{else}{$WLANG.addtocart}{/if}
  277. </a>
  278. </div>
  279. {/if}
  280. {if $block.orderLinkinLast}
  281. <div class="product-actions mt-auto">
  282. <a href="{if $ditem['stockControlEnabled'] && !$ditem['quantityInStock']}javascript:void(0){else}{$WEB_ROOT}/{if $ditem["productdetails"]['isMarketConnect']}cart/order/{else}cart.php{/if}?a=add&pid={$ditem['Plan']}{if $ditem["dropdown"][$ditem['Plan']]|@count > "1" && !$block.DisableSwitcher}&billingcycle={$defaultbilling}{/if}{/if}" class="btn btn-primary my-3 w-auto{if $ditem['stockControlEnabled'] && !$ditem['quantityInStock']} disabled{/if}">
  283. {if $ditem['stockControlEnabled'] && !$ditem['quantityInStock']}{$WLANG.outofstock}{elseif $block.btntext}{$block.btntext}{else}{$WLANG.addtocart}{/if}
  284. </a>
  285. </div>
  286. {/if}
  287. </div>
  288. </div>
  289. {/foreach}
  290. {/if}
  291. </div>
  292. </div>
  293. </div>
  294. <!-- TD DisplayInGrid -->
  295. {if !$block.DisplayInGrid}
  296. {if !$block.slidertype}
  297. <div class="swiper-pagination pricing-tables_{$blockkey}"></div>
  298. {else}
  299. <div class="swiper-button-prev pricing-tables_{$blockkey}_prev">
  300. <span class="btn_icon_large"><i class="far fa-long-arrow-left"></i></span>
  301. </div>
  302. <div class="swiper-button-next pricing-tables_{$blockkey}_next">
  303. <span class="btn_icon_large"><i class="far fa-long-arrow-right"></i></span>
  304. </div>
  305. {/if}
  306. {/if}
  307. </div>
  308. </div>
  309. </div>
  310. <script>
  311. jQuery(document).ready(function () {
  312. {if !$block.DisplayInGrid}
  313. var swiper = new Swiper('#pricing-tables-{$blockkey}', {
  314. slidesPerView: 1,
  315. preventClicks: true,
  316. slideClass: 'products-slide',
  317. {if !$block.slidertype}
  318. pagination: {
  319. el: '.swiper-pagination.pricing-tables_{$blockkey}',
  320. clickable: true,
  321. },
  322. {else}
  323. navigation: {
  324. nextEl: '.pricing-tables_{$blockkey}_next',
  325. prevEl: '.pricing-tables_{$blockkey}_prev',
  326. },
  327. {/if}
  328. breakpoints: {
  329. 0: {
  330. slidesPerView: 1
  331. },
  332. 768: {
  333. slidesPerView: 2
  334. },
  335. 992: {
  336. slidesPerView:{if $block.itemcounts == "2"} 2{else} 3{/if}
  337. },
  338. 1200: {
  339. slidesPerView:{if $block.itemcounts == ""} 3{else} {$block.itemcounts}{/if}
  340. },
  341. }
  342. });
  343. {/if}
  344. {if $block.SbSwitcher && !$block.DisableSwitcher}
  345. jQuery("#sec-{$blockkey} .product-billing-switcher-{$blockkey} .dropdown-menu li").click(function(){
  346. var selText = jQuery(this).html();
  347. jQuery(this).parents('.btn-group').find('.dropdown-toggle').html(selText);
  348. });
  349. jQuery('#sec-{$blockkey} .product-billing-switcher-{$blockkey} .cycle-change').on('click', function() {
  350. var newCycle = jQuery(this).data('cycle');
  351. var disBtnBilCycle = jQuery(this).data('cycle');
  352. jQuery('.pricing-{$blockkey} .product_pricing .pricing_main').hide();
  353. jQuery('.pricing-{$blockkey} .' + newCycle).show();
  354. jQuery(this).addClass('active').siblings().removeClass('active');
  355. jQuery('.pricing-{$blockkey} .cros-pricing-table').each(function(index) {
  356. var disBtnUrlFetch = jQuery(this).closest('.pricing-{$blockkey} .cros-pricing-table').find('.btn-primary').attr('href');
  357. var disBtnUrlRemv = disBtnUrlFetch.indexOf('&billingcycle');
  358. var disBtnUrlFinal = disBtnUrlFetch.substring(0, disBtnUrlRemv);
  359. var disBtnUrlFinal = disBtnUrlFinal+'&billingcycle='+disBtnBilCycle;
  360. jQuery(this).find('.btn-primary').attr('href',disBtnUrlFinal);
  361. if (jQuery(this).find('.' + newCycle).length <= 0) {
  362. jQuery(this).find('.pricing_main_default').show();
  363. jQuery(this).find('.btn-primary').addClass('disabled');
  364. } else {
  365. jQuery(this).find('.pricing_main_default').hide();
  366. jQuery(this).find('.btn-primary').removeClass('disabled');
  367. }
  368. });
  369. });
  370. jQuery('#sec-{$blockkey} .product-billing-switcher-{$blockkey} .cycle-change').first().trigger('click');
  371. {else}
  372. {if !$block.DisableSwitcher}
  373. jQuery(".pricing-{$blockkey} .dropdown-menu li").click(function(){
  374. var selText = jQuery(this).html();
  375. jQuery(this).parents('.btn-group').find('.dropdown-toggle').html(selText+' <span class="fal fa-angle-down"></span>');
  376. });
  377. jQuery('.pricing-{$blockkey} .billinging_wrapr').click(function(){
  378. var disBtnBilCycle = jQuery(this).attr('data-ultn-bilcycle');
  379. var disBtnUrlFetch = jQuery(this).closest('.pricing-{$blockkey} .cros-pricing-table').find('.btn-primary').attr('href');
  380. var disBtnUrlRemv = disBtnUrlFetch.indexOf('&billingcycle');
  381. var disBtnUrlFinal = disBtnUrlFetch.substring(0, disBtnUrlRemv);
  382. var disBtnUrlFinal = disBtnUrlFinal+'&billingcycle='+disBtnBilCycle;
  383. jQuery(this).closest('.pricing-{$blockkey} .cros-pricing-table').find('.btn-primary').attr('href',disBtnUrlFinal);
  384. var crosPricingTable = jQuery(this).closest('.pricing-{$blockkey} .cros-pricing-table');
  385. crosPricingTable.find('.pricing_main').each(function() {
  386. var currentBilCycle = jQuery(this).attr('data-ultn-bilcycle');
  387. if (currentBilCycle === disBtnBilCycle) {
  388. jQuery(this).removeClass('w-hidden');
  389. } else {
  390. jQuery(this).addClass('w-hidden');
  391. }
  392. });
  393. });
  394. {/if}
  395. {/if}
  396. });
  397. </script>
  398. {elseif $block.ptstyle == 'pts_1'}
  399. <!-- TD pts_1 -->
  400. <div id="sec-{$blockkey}" class="sec products{if $block.bgcolor != ""} {$block.bgcolor}{/if}{if $block.borders != ""} {$block.borders}{/if}{if $block.toppadding == "1"} inner-t-60{elseif $block.toppadding == "2"} inner-t-30{elseif $block.toppadding == "3"} no-padding-top{/if}{if $block.bottompadding == "1"} inner-b-60{elseif $block.bottompadding == "2"} inner-b-30{elseif $block.bottompadding == "3"} no-padding-bottom{/if}">
  401. <div class="container">
  402. {if $block.caption || $block.sectitle || $block.subtitle}
  403. <div class="sec-description">
  404. {if $block.caption}
  405. <div class="sec-caption">
  406. <span class="rounded">{$block.caption}</span>
  407. </div>
  408. {/if}
  409. {if $block.sectitle}
  410. <h2 class="sec-title">{$block.sectitle}</h2>
  411. {/if}
  412. {if $block.subtitle}
  413. <div class="sec-subtitle">{$block.subtitle}</div>
  414. {/if}
  415. </div>
  416. {/if}
  417. <!-- Cross Pricing Container -->
  418. <div class="cros-pricing-container">
  419. {if $block.SbSwitcher && !$block.DisableSwitcher}
  420. {if $block.switcherCycles !== null && $block.switcherCycles|@count > 1}
  421. {assign var="cycles" value=$block.switcherCycles}
  422. {else}
  423. {assign var="cycles" value=$allCycles}
  424. {/if}
  425. {if !$block.bsco}
  426. {assign var="cycles" value=$cycles|@array_reverse}
  427. {/if}
  428. <div class="product-billing-switcher-{$blockkey}">
  429. <div class="btn-group white border d-none d-sm-inline-block" role="group">
  430. {foreach $cycles as $cycle}
  431. <button type="button" class="btn cycle-change" data-cycle="{$cycle}">
  432. <span class="btn-text">{lang key={'pricingCycleLong.'|cat:$cycle}}</span>
  433. </button>
  434. {/foreach}
  435. </div>
  436. <div class="btn-group white border d-inline-block d-sm-none">
  437. <span class="px-3 py-1 small text-muted border-right">{$WLANG.orderbillingcycle}</span>
  438. <button type="button" class="btn dropdown-toggle" data-toggle="dropdown">
  439. <span class="btn-text">{lang key={'pricingCycleLong.'|cat:$cycles[0]}}</span>
  440. </button>
  441. <ul class="dropdown-menu">
  442. {foreach $cycles as $cycle}
  443. <li class="dropdown-item cycle-change" data-cycle="{$cycle}">
  444. <span class="btn-text">{lang key={'pricingCycleLong.'|cat:$cycle}}</span>
  445. </li>
  446. {/foreach}
  447. </ul>
  448. </div>
  449. </div>
  450. {/if}
  451. <!-- TD:Pricing style 2 -->
  452. <div class="pricing_style_2 pricing-{$blockkey}" id="pricing-tables-{$blockkey}">
  453. {if count($block.table) > 0}
  454. {foreach from=$block.table item=$ditem key=$kk}
  455. <div class="cros-pricing-table{if $block.SbSwitcher} overflow-hidden{/if}{if $block.ststyle} {$block.ststyle}{/if}{if $block.noshadow} no-shadow{/if}{if $block.tablebg == "light"} light{elseif $block.tablebg == "primary"} bg-primary{elseif $block.tablebg == "dark"} dark{else} white{/if} pt_st_5{if $ditem['Featured']} active{/if}">
  456. <div class="row no-gutters">
  457. <div class="col-lg-8 col-xl-9">
  458. <div class="content align-items-lg-center">
  459. {if $ditem['Graphic']}
  460. {if !$ditem['Graphic']|strstr:"fa-"}
  461. <div class="graphics fix-width">
  462. <img src="{$WEB_ROOT}/{$ditem['Graphic']}" alt="{$ditem.title}" class="img-fluid">
  463. </div>
  464. {else}
  465. <div class="graphics">
  466. <span class="icon">
  467. <i class="{$ditem['Graphic']}"></i>
  468. </span>
  469. </div>
  470. {/if}
  471. {/if}
  472. <div class="plan-details">
  473. <div class="h4 plan-name">
  474. {$ditem['productdetails']['name']}
  475. {if $ditem['Featured']}
  476. {if $block.ststyle}
  477. <span class="st-sm ml-2 fw-400">
  478. {if $block.featured}{$block.featured}{else}{$WLANG.featuredProduct}{/if}
  479. </span>
  480. {/if}
  481. {/if}
  482. </div>
  483. {if count($ditem['productdetails']['description']['features']) > 0}
  484. {if strpos($ditem['productdetails']['description']['featuresdesc'], '<p>') !== false}
  485. {$ditem['productdetails']['description']['featuresdesc']}
  486. {else}
  487. <p>{$ditem['productdetails']['description']['featuresdesc']}</p>
  488. {/if}
  489. {/if}
  490. <!-- Eigenschaften 1 -->
  491. {if $ditem['productdetails']['description']}
  492. <!-- Eigenschaften 2 -->
  493. {if count($ditem['productdetails']['description']['features']) > 0}
  494. <!-- Eigenschaften 3 -->
  495. <ul class="plan-features">
  496. {foreach $ditem['productdetails']['description']['features'] as $feature => $value}
  497. <li><b>{$feature}</b>{$value}</li>
  498. {/foreach}
  499. </ul>
  500. {else}
  501. {$ditem['productdetails']['description']['original']}
  502. {/if}
  503. {/if}
  504. </div>
  505. </div>
  506. </div>
  507. <div class="col-lg-4 col-xl-3">
  508. <div class="content{if $block.SbSwitcher && $ditem['Featured'] && !$block.ststyle} mr-0 mr-lg-4{/if}">
  509. {if $ditem["dropdown"][$ditem['Plan']]|@count > "1" && !$block.DisableSwitcher}
  510. {if $block.bsco}
  511. {foreach $ditem["dropdown"] as $dropdownkey=>$dropdownprice}
  512. {$ditem["dropdown"][$dropdownkey] = $dropdownprice|@array_reverse}
  513. {/foreach}
  514. {/if}
  515. {assign var="dropdownprice" value=$ditem["dropdown"][$ditem['Plan']][0] nocache}
  516. {assign var="defaultbilling" value=$dropdownprice['cycle'] nocache}
  517. {assign var="taxtype" value=$dropdownprice['taxtype'] nocache}
  518. {assign var="hasconfigoptions" value=$dropdownprice['hasconfigoptions'] nocache}
  519. <div class="billing-cycle-pricing float{if $block.descp == "below"} desc_belwo{/if}">
  520. {if !$block.SbSwitcher}
  521. <div class="btn-group mb-2 mb-lg-0">
  522. <a class="btn dropdown-toggle" data-toggle="dropdown" href="#">
  523. <div class="pricing_wrapr">
  524. {$dropdownprice['billingcycle']}
  525. {* {if $dropdownprice['save']}<div class="save_text"><span class="badge badge-primary">{$dropdownprice['save']}</span></div>{/if} *}
  526. </div>
  527. <span class="fal fa-angle-down"></span>
  528. </a>
  529. <ul class="dropdown-menu">
  530. {if $ditem["dropdown"][$ditem['Plan']]}
  531. {foreach $ditem["dropdown"][$ditem['Plan']] as $dropdownprice}
  532. <li class="billinging_wrapr" data-ultn-bilcycle="{$dropdownprice['cycle']}">
  533. <div class="pricing_wrapr">
  534. {$dropdownprice['billingcycle']}
  535. {* {if $dropdownprice['save']}<div class="save_text"><span class="badge badge-primary">{$dropdownprice['save']}</span></div>{/if} *}
  536. </div>
  537. </li>
  538. {/foreach}
  539. {/if}
  540. </ul>
  541. </div>
  542. {/if}
  543. {if $ditem["dropdown"][$ditem['Plan']]}
  544. <div class="product_pricing">
  545. {if $block.SbSwitcher}
  546. <div class="pricing_main_default{if $defaultbilling eq "{$dropdownprice['cycle']}"} w-hidden{/if}">
  547. <div class="price">
  548. {if $dropdownprice['hasconfigoptions'] || $dropdownprice['save']}
  549. <span class="regular_pricing">
  550. {if $dropdownprice['hasconfigoptions']}
  551. <span class="small text-muted">{$WLANG.from}</span>
  552. {/if}
  553. {if $dropdownprice['save']}
  554. {if $dropdownprice['dollar'] && !$block.DisableBrekdown}
  555. <span class="savecut text-muted">
  556. {$dropdownprice['prefix']}{$dropdownprice['dollar']}.{$dropdownprice['cents']}{$dropdownprice['suffix']}
  557. </span>
  558. {/if}
  559. {* {if $block.SbSwitcher}<span class="badge badge-primary">{$dropdownprice['save']}</span>{/if} *}
  560. {/if}
  561. </span>
  562. {/if}
  563. <span class="cost">
  564. {$dropdownprice['prefix']}
  565. {if $block.DisableBrekdown}
  566. {$dropdownprice['price']}
  567. {else}
  568. {$dropdownprice['monthlydollar']}.{$dropdownprice['monthlycents']}
  569. {/if}
  570. </span>
  571. {if $dropdownprice['suffix']}
  572. <span class="suffix">
  573. {$dropdownprice['suffix']}
  574. </span>
  575. {/if}
  576. </div>
  577. <span class="cycle small text-muted">{if $block.DisableBrekdown}{$dropdownprice.cycle|capitalize}{else}{if $dropdownprice['monthlycycle']}{$dropdownprice['monthlycycle']}{else}{$dropdownprice['cycleTerm']}{/if}{/if}</span>
  578. {if $dropdownprice['setup'] > 0}
  579. <div class="small text-muted">
  580. <span><i class="fal fa-plus"></i></span>
  581. <span>{$dropdownprice['prefix']}</span>
  582. {$dropdownprice['setup']}
  583. <span>{$dropdownprice['suffix']}</span>
  584. {$WLANG.ordersetupfee}
  585. </div>
  586. {/if}
  587. </div>
  588. {/if}
  589. {foreach $ditem["dropdown"][$ditem['Plan']] as $dropdownprice}
  590. <div class="pricing_main {$dropdownprice['cycle']}{if $defaultbilling neq "{$dropdownprice['cycle']}"} w-hidden{/if}" data-ultn-bilcycle="{$dropdownprice['cycle']}">
  591. <div class="price">
  592. {if $dropdownprice['hasconfigoptions'] || $dropdownprice['save']}
  593. <span class="regular_pricing">
  594. {if $dropdownprice['hasconfigoptions']}
  595. <span class="small text-muted">{$WLANG.from}</span>
  596. {/if}
  597. {if $dropdownprice['save']}
  598. {if $dropdownprice['dollar'] && !$block.DisableBrekdown}
  599. <span class="savecut text-muted">{$dropdownprice['prefix']}{$dropdownprice['dollar']}.{$dropdownprice['cents']}{$dropdownprice['suffix']}</span>
  600. {/if}
  601. {if $block.SbSwitcher}<span class="badge badge-primary">{$dropdownprice['save']}</span>{/if}
  602. {/if}
  603. </span>
  604. {/if}
  605. <span class="cost">{$dropdownprice['prefix']}{if $block.DisableBrekdown}{$dropdownprice['price']}{else}{$dropdownprice['monthlydollar']}.{$dropdownprice['monthlycents']}{/if}</span>
  606. {if $dropdownprice['suffix']}<span class="suffix">{$dropdownprice['suffix']}</span>{/if}
  607. </div>
  608. <span class="cycle small text-muted">
  609. {if $block.DisableBrekdown}
  610. {$dropdownprice.cycle|capitalize}
  611. {else}
  612. {if $dropdownprice['monthlycycle']}
  613. {$dropdownprice['monthlycycle']}
  614. {else}
  615. {$dropdownprice['cycleTerm']}
  616. {/if}
  617. {/if}
  618. </span>
  619. {if $dropdownprice['setup'] > 0}
  620. <div class="small text-muted">
  621. <span><i class="fal fa-plus"></i></span>
  622. <span>{$dropdownprice['prefix']}</span>
  623. {$dropdownprice['setup']}
  624. <span>{$dropdownprice['suffix']}</span>
  625. {$WLANG.ordersetupfee}
  626. </div>
  627. {/if}
  628. </div>
  629. {/foreach}
  630. </div>
  631. {/if}
  632. </div>
  633. {else}
  634. <div class="product_pricing_single">
  635. {if $block.DisableBrekdown}
  636. {if isset($ditem.dropdown) && is_array($ditem.dropdown)}
  637. {foreach from=$ditem.dropdown item=$dropdown key=$dropdownKey}
  638. {assign var="firstCycle" value=$dropdown|@end}
  639. <div class="price">
  640. {if $firstCycle.hasconfigoptions}
  641. <span class="regular_pricing">
  642. <span class="small text-muted">{$WLANG.from}</span>
  643. </span>
  644. {/if}
  645. <span class="cost">
  646. {$firstCycle.prefix}{$firstCycle.price}
  647. </span>
  648. <span class="suffix">
  649. {$firstCycle.suffix}
  650. </spn>
  651. </div>
  652. <div class="cycle small text-muted">
  653. {$firstCycle.cycle|capitalize}
  654. </div>
  655. {/foreach}
  656. {/if}
  657. {else}
  658. {if $ditem["price"] == 'FREE'}
  659. <div class="d-flex align-items-center justify-content-end">
  660. <span class="badge badge-secondary price-free">{$WLANG.orderfree}</span>
  661. </div>
  662. {else}
  663. <div class="price">
  664. {if $ditem["productdetails"]['hasconfigoptions']}
  665. <span class="regular_pricing">
  666. <span class="small text-muted">{$WLANG.from}</span>
  667. </span>
  668. {/if}
  669. {assign var="ccurrency" value=$ditem["productdetails"]["price"]["price"]->getCurrency()}
  670. <span class="cost">{$ditem["productdetails"]["price"]['simple']}</span>
  671. {if $ccurrency["suffix"]}<span class="suffix">{$ccurrency["suffix"]}</span>{/if}
  672. </div>
  673. {if $ditem["billingcycle"] != ""}
  674. <div class="cycle small text-muted">{$ditem["billingcycle"]}</div>
  675. {elseif $ditem["productdetails"]["price"]["cycle"] == "onetime"}
  676. <div class="cycle small text-muted">{$WLANG.orderpaymenttermonetime}</div>
  677. {/if}
  678. {if $ditem["productdetails"]["price"]["setupFee"]}
  679. <div class="setup-fee small text-muted"><span><i class="fal fa-plus"></i></span> {$ditem["productdetails"]["price"]["setupFee"]} {$WLANG.ordersetupfee}</div>
  680. {/if}
  681. {/if}
  682. {/if}
  683. </div>
  684. {/if}
  685. <div class="plan-action mt-auto">
  686. <a href="{if $ditem['stockControlEnabled'] && !$ditem['quantityInStock']}javascript:void(0){else}{$WEB_ROOT}/{if $ditem["productdetails"]['isMarketConnect']}cart/order/{else}cart.php{/if}?a=add&pid={$ditem['Plan']}{if $ditem["dropdown"][$ditem['Plan']]|@count > "1" && !$block.DisableSwitcher}&billingcycle={$defaultbilling}{/if}{/if}" class="btn btn-sm btn-primary mt-2{if $ditem['stockControlEnabled'] && !$ditem['quantityInStock']} disabled{/if}">
  687. {if $ditem['stockControlEnabled'] && !$ditem['quantityInStock']}{$WLANG.outofstock}{elseif $block.btntext}{$block.btntext}{else}{$WLANG.addtocart}{/if}
  688. </a>
  689. </div>
  690. </div>
  691. </div>
  692. </div>
  693. {if $ditem['Featured']}
  694. {if $block.ststyle == ""}
  695. <div class="sticker-wrapper{if !$block.SbSwitcher} se{/if}">
  696. <div class="sticker">
  697. {if $block.featured}{$block.featured}{else}{$WLANG.featuredProduct}{/if}
  698. </div>
  699. </div>
  700. {/if}
  701. {/if}
  702. </div>
  703. {/foreach}
  704. {/if}
  705. </div>
  706. </div>
  707. </div>
  708. </div>
  709. <script>
  710. jQuery(document).ready(function () {
  711. {if $block.SbSwitcher && !$block.DisableSwitcher}
  712. jQuery("#sec-{$blockkey} .product-billing-switcher-{$blockkey} .dropdown-menu li").click(function(){
  713. var selText = jQuery(this).html();
  714. jQuery(this).parents('.btn-group').find('.dropdown-toggle').html(selText);
  715. });
  716. jQuery('#sec-{$blockkey} .product-billing-switcher-{$blockkey} .cycle-change').on('click', function() {
  717. var newCycle = jQuery(this).data('cycle');
  718. var disBtnBilCycle = jQuery(this).data('cycle');
  719. jQuery('.pricing-{$blockkey} .product_pricing .pricing_main').hide();
  720. jQuery('.pricing-{$blockkey} .' + newCycle).show();
  721. jQuery(this).addClass('active').siblings().removeClass('active');
  722. jQuery('.pricing-{$blockkey} .cros-pricing-table').each(function(index) {
  723. var disBtnUrlFetch = jQuery(this).closest('.pricing-{$blockkey} .cros-pricing-table').find('.btn-primary').attr('href');
  724. var disBtnUrlRemv = disBtnUrlFetch.indexOf('&billingcycle');
  725. var disBtnUrlFinal = disBtnUrlFetch.substring(0, disBtnUrlRemv);
  726. var disBtnUrlFinal = disBtnUrlFinal+'&billingcycle='+disBtnBilCycle;
  727. jQuery(this).find('.btn-primary').attr('href',disBtnUrlFinal);
  728. if (jQuery(this).find('.' + newCycle).length <= 0) {
  729. jQuery(this).find('.pricing_main_default').show();
  730. jQuery(this).find('.btn-primary').addClass('disabled');
  731. } else {
  732. jQuery(this).find('.pricing_main_default').hide();
  733. jQuery(this).find('.btn-primary').removeClass('disabled');
  734. }
  735. });
  736. });
  737. jQuery('#sec-{$blockkey} .product-billing-switcher-{$blockkey} .cycle-change').first().trigger('click');
  738. {else}
  739. {if !$block.DisableSwitcher}
  740. jQuery(".pricing-{$blockkey} .dropdown-menu li").click(function(){
  741. var selText = jQuery(this).html();
  742. jQuery(this).parents('.btn-group').find('.dropdown-toggle').html(selText+' <span class="fal fa-angle-down"></span>');
  743. });
  744. jQuery('.pricing-{$blockkey} .billinging_wrapr').click(function(){
  745. var disBtnBilCycle = jQuery(this).attr('data-ultn-bilcycle');
  746. var disBtnUrlFetch = jQuery(this).closest('.pricing-{$blockkey} .cros-pricing-table').find('.btn-primary').attr('href');
  747. var disBtnUrlRemv = disBtnUrlFetch.indexOf('&billingcycle');
  748. var disBtnUrlFinal = disBtnUrlFetch.substring(0, disBtnUrlRemv);
  749. var disBtnUrlFinal = disBtnUrlFinal+'&billingcycle='+disBtnBilCycle;
  750. jQuery(this).closest('.pricing-{$blockkey} .cros-pricing-table').find('.btn-primary').attr('href',disBtnUrlFinal);
  751. var crosPricingTable = jQuery(this).closest('.pricing-{$blockkey} .cros-pricing-table');
  752. crosPricingTable.find('.pricing_main').each(function() {
  753. var currentBilCycle = jQuery(this).attr('data-ultn-bilcycle');
  754. if (currentBilCycle === disBtnBilCycle) {
  755. jQuery(this).removeClass('w-hidden');
  756. } else {
  757. jQuery(this).addClass('w-hidden');
  758. }
  759. });
  760. });
  761. {/if}
  762. {/if}
  763. });
  764. </script>
  765. {elseif $block.ptstyle == 'pts_2'}
  766. <div id="sec-{$blockkey}" class="sec products{if $block.bgcolor != ""} {$block.bgcolor}{/if}{if $block.borders != ""} {$block.borders}{/if}{if $block.toppadding == "1"} inner-t-60{elseif $block.toppadding == "2"} inner-t-30{elseif $block.toppadding == "3"} no-padding-top{/if}{if $block.bottompadding == "1"} inner-b-60{elseif $block.bottompadding == "2"} inner-b-30{elseif $block.bottompadding == "3"} no-padding-bottom{/if}">
  767. <div class="section__plan_comparison">
  768. <div class="container">
  769. {if $block.caption || $block.sectitle || $block.subtitle}
  770. <div class="sec-description">
  771. {if $block.caption}
  772. <div class="sec-caption">
  773. <span class="rounded">{$block.caption}</span>
  774. </div>
  775. {/if}
  776. {if $block.sectitle}
  777. <h2 class="sec-title">{$block.sectitle}</h2>
  778. {/if}
  779. {if $block.subtitle}
  780. <div class="sec-subtitle">{$block.subtitle}</div>
  781. {/if}
  782. </div>
  783. {/if}
  784. <div class="cros-pricing-container">
  785. {if $block.SbSwitcher && !$block.DisableSwitcher}
  786. {if $block.switcherCycles !== null && $block.switcherCycles|@count > 1}
  787. {assign var="cycles" value=$block.switcherCycles}
  788. {else}
  789. {assign var="cycles" value=$allCycles}
  790. {/if}
  791. {if !$block.bsco}
  792. {assign var="cycles" value=$cycles|@array_reverse}
  793. {/if}
  794. <div class="product-billing-switcher-{$blockkey}">
  795. <div class="btn-group white border d-none d-sm-inline-block" role="group">
  796. {foreach $cycles as $cycle}
  797. <button type="button" class="btn cycle-change" data-cycle="{$cycle}">
  798. <span class="btn-text">{lang key={'pricingCycleLong.'|cat:$cycle}}</span>
  799. </button>
  800. {/foreach}
  801. </div>
  802. <div class="btn-group white border d-inline-block d-sm-none">
  803. <span class="px-3 py-1 small text-muted border-right">{$WLANG.orderbillingcycle}</span>
  804. <button type="button" class="btn dropdown-toggle" data-toggle="dropdown">
  805. <span class="btn-text">{lang key={'pricingCycleLong.'|cat:$cycles[0]}}</span>
  806. </button>
  807. <ul class="dropdown-menu">
  808. {foreach $cycles as $cycle}
  809. <li class="dropdown-item cycle-change" data-cycle="{$cycle}">
  810. <span class="btn-text">{lang key={'pricingCycleLong.'|cat:$cycle}}</span>
  811. </li>
  812. {/foreach}
  813. </ul>
  814. </div>
  815. </div>
  816. {/if}
  817. <div class="cros-pricing-table tables_{$blockkey} no-animation{if $block.noshadow} no-shadow{/if}{if $block.tablebg == "light"} light{elseif $block.tablebg == "primary"} bg-primary{elseif $block.tablebg == "dark"} dark{else} white{/if}">
  818. <div class="plans_slider__nav border-bottom">
  819. <div class="swiper-button-next tables_{$blockkey}_next">
  820. <span class="btn__text text-muted">{$WLANG.tablepagesnext}</span>
  821. <span class="btn__icon"><i class="far fa-long-arrow-right"></i></span>
  822. </div>
  823. <div class="swiper-button-prev tables_{$blockkey}_prev">
  824. <span class="btn__icon"><i class="far fa-long-arrow-left"></i></span>
  825. <span class="btn__text text-muted">{$WLANG.tablepagesprevious}</span>
  826. </div>
  827. </div>
  828. <div class="plan plan-{$blockkey}{if $block.centered} centered{/if}">
  829. <div class="plan__column plan__column--empty">
  830. <div class="plan__header d-flex align-items-center{if $block.table[0].Graphic|trim != ""} hg{/if}">
  831. <span class="h4">{$WLANG['store']['ox']['featuresHeadline']}</span>
  832. </div>
  833. <div class="plan__body plan__body--right">
  834. {foreach from=$block.table|@array_column:'featurelist'|@array_count_values item=count key=featurelist}
  835. {$featurelist}
  836. {/foreach}
  837. <div class="plan__cell plan__cell-last{if $block.SbSwitcher || $block.DisableSwitcher} sb{/if}"></div>
  838. </div>
  839. </div>
  840. <div class="swiper-container" id="plans-slider-{$blockkey}">
  841. <div class="swiper-wrapper">
  842. {if count($block.table) > 0}
  843. {foreach from=$block.table item=$ditem key=$kk}
  844. <div class="swiper-slide">
  845. <div class="plan__column">
  846. <div class="plan__header{if $ditem['Graphic']} hg{/if}">
  847. {if $ditem['Graphic']}
  848. <div class="graphics">
  849. {if !$ditem['Graphic']|strstr:"fa-"}
  850. <img src="{$WEB_ROOT}/{$ditem['Graphic']}" alt="{$ditem.title}" class="img-fluid">
  851. {else}
  852. <span class="icon">
  853. <i class="{$ditem['Graphic']}"></i>
  854. </span>
  855. {/if}
  856. </div>
  857. {/if}
  858. <span class="h4">{$ditem['productdetails']['name']}</span>
  859. </div>
  860. <div class="plan__body">
  861. {$ditem['featuresvalues']}
  862. <div class="plan__cell plan__cell-last{if $block.SbSwitcher || $block.DisableSwitcher} sb{/if}">
  863. {if $ditem["dropdown"][$ditem['Plan']]|@count > "1" && !$block.DisableSwitcher}
  864. {if $block.bsco}
  865. {foreach $ditem["dropdown"] as $dropdownkey=>$dropdownprice}
  866. {$ditem["dropdown"][$dropdownkey] = $dropdownprice|@array_reverse}
  867. {/foreach}
  868. {/if}
  869. {assign var="dropdownprice" value=$ditem["dropdown"][$ditem['Plan']][0] nocache}
  870. {assign var="defaultbilling" value=$dropdownprice['cycle'] nocache}
  871. {assign var="taxtype" value=$dropdownprice['taxtype'] nocache}
  872. {assign var="hasconfigoptions" value=$dropdownprice['hasconfigoptions'] nocache}
  873. <div class="billing-cycle-pricing float{if $block.descp == "below"} desc_belwo{/if}">
  874. {if !$block.SbSwitcher}
  875. <div class="btn-group mb-2 dropup">
  876. <a class="btn dropdown-toggle" data-toggle="dropdown" href="#">
  877. <div class="pricing_wrapr">
  878. {$dropdownprice['billingcycle']}
  879. {* {if $dropdownprice['save']}<div class="save_text"><span class="badge badge-primary">{$dropdownprice['save']}</span></div>{/if} *}
  880. </div>
  881. <span class="fal fa-angle-down"></span>
  882. </a>
  883. <ul class="dropdown-menu">
  884. {if $ditem["dropdown"][$ditem['Plan']]}
  885. {foreach $ditem["dropdown"][$ditem['Plan']] as $dropdownprice}
  886. <li class="billinging_wrapr" data-ultn-bilcycle="{$dropdownprice['cycle']}">
  887. <div class="pricing_wrapr">
  888. {$dropdownprice['billingcycle']}
  889. {* {if $dropdownprice['save']}<div class="save_text"><span class="badge badge-primary">{$dropdownprice['save']}</span></div>{/if} *}
  890. </div>
  891. </li>
  892. {/foreach}
  893. {/if}
  894. </ul>
  895. </div>
  896. {/if}
  897. {if $ditem["dropdown"][$ditem['Plan']]}
  898. <div class="product_pricing">
  899. {if $block.SbSwitcher}
  900. <div class="pricing_main_default{if $defaultbilling eq "{$dropdownprice['cycle']}"} w-hidden{/if}">
  901. {if $dropdownprice['hasconfigoptions'] || $dropdownprice['save']}
  902. <div class="regular_pricing">
  903. {if $dropdownprice['hasconfigoptions']}
  904. <span class="small text-muted">{$WLANG.from}</span>
  905. {/if}
  906. {if $dropdownprice['save']}
  907. {if $dropdownprice['dollar'] && !$block.DisableBrekdown}
  908. <span class="savecut text-muted">{$dropdownprice['prefix']}{$dropdownprice['dollar']}.{$dropdownprice['cents']}{$dropdownprice['suffix']}</span>
  909. {/if}
  910. {if $block.SbSwitcher}<span class="badge badge-primary">{$dropdownprice['save']}</span>{/if}
  911. {/if}
  912. </div>
  913. {/if}
  914. <div class="price">
  915. <span class="cost">{$dropdownprice['prefix']}{if $block.DisableBrekdown}{$dropdownprice['price']}{else}{$dropdownprice['monthlydollar']}.{$dropdownprice['monthlycents']}{/if}</span>
  916. {if $dropdownprice['suffix']}<span class="suffix">{$dropdownprice['suffix']}</span>{/if}
  917. </div>
  918. <div class="cycle small text-muted">{if $block.DisableBrekdown}{$dropdownprice.cycle|capitalize}{else}{if $dropdownprice['monthlycycle']}{$dropdownprice['monthlycycle']}{else}{$dropdownprice['cycleTerm']}{/if}{/if}</div>
  919. {if $dropdownprice['setup'] > 0}
  920. <div class="small text-muted">
  921. <span><i class="fal fa-plus"></i></span>
  922. <span>{$dropdownprice['prefix']}</span>
  923. {$dropdownprice['setup']}
  924. <span>{$dropdownprice['suffix']}</span>
  925. {$WLANG.ordersetupfee}
  926. </div>
  927. {/if}
  928. </div>
  929. {/if}
  930. {foreach $ditem["dropdown"][$ditem['Plan']] as $dropdownprice}
  931. <div class="pricing_main {$dropdownprice['cycle']}{if $defaultbilling neq "{$dropdownprice['cycle']}"} w-hidden{/if}" data-ultn-bilcycle="{$dropdownprice['cycle']}">
  932. {if $dropdownprice['hasconfigoptions'] || $dropdownprice['save']}
  933. <div class="regular_pricing">
  934. {if $dropdownprice['hasconfigoptions']}
  935. <span class="small text-muted">{$WLANG.from}</span>
  936. {/if}
  937. {if $dropdownprice['save']}
  938. {if $dropdownprice['dollar'] && !$block.DisableBrekdown}
  939. <span class="savecut text-muted">{$dropdownprice['prefix']}{$dropdownprice['dollar']}.{$dropdownprice['cents']}{$dropdownprice['suffix']}</span>
  940. {/if}
  941. {if $block.SbSwitcher}<span class="badge badge-primary">{$dropdownprice['save']}</span>{/if}
  942. {/if}
  943. </div>
  944. {/if}
  945. <div class="price">
  946. <span class="cost">{$dropdownprice['prefix']}{if $block.DisableBrekdown}{$dropdownprice['price']}{else}{$dropdownprice['monthlydollar']}.{$dropdownprice['monthlycents']}{/if}</span>
  947. {if $dropdownprice['suffix']}<span class="suffix">{$dropdownprice['suffix']}</span>{/if}
  948. </div>
  949. <div class="cycle small text-muted">{if $block.DisableBrekdown}{$dropdownprice.cycle|capitalize}{else}{if $dropdownprice['monthlycycle']}{$dropdownprice['monthlycycle']}{else}{$dropdownprice['cycleTerm']}{/if}{/if}</div>
  950. {if $dropdownprice['setup'] > 0}
  951. <div class="small text-muted">
  952. <span><i class="fal fa-plus"></i></span>
  953. <span>{$dropdownprice['prefix']}</span>
  954. {$dropdownprice['setup']}
  955. <span>{$dropdownprice['suffix']}</span>
  956. {$WLANG.ordersetupfee}
  957. </div>
  958. {/if}
  959. </div>
  960. {/foreach}
  961. </div>
  962. {/if}
  963. </div>
  964. <a href="{if $ditem['stockControlEnabled'] && !$ditem['quantityInStock']}javascript:void(0){else}{$WEB_ROOT}/{if $ditem["productdetails"]['isMarketConnect']}cart/order/{else}cart.php{/if}?a=add&pid={$ditem['Plan']}{if $ditem["dropdown"][$ditem['Plan']]|@count > "1" && !$block.DisableSwitcher}{if $ditem["billingcycle"] != ""}&billingcycle={$defaultbilling}{/if}{/if}{/if}" class="btn btn-block btn-primary{if $ditem['stockControlEnabled'] && !$ditem['quantityInStock']} disabled{/if}">
  965. {if $ditem['stockControlEnabled'] && !$ditem['quantityInStock']}{$WLANG.outofstock}{elseif $block.btntext}{$block.btntext}{else}{$WLANG.addtocart}{/if}
  966. </a>
  967. {else}
  968. <div class="product_pricing_single d-flex flex-column justify-content-center h-100">
  969. {if $block.DisableBrekdown}
  970. {if isset($ditem.dropdown) && is_array($ditem.dropdown)}
  971. {foreach from=$ditem.dropdown item=$dropdown key=$dropdownKey}
  972. {assign var="firstCycle" value=$dropdown|@end}
  973. {if $firstCycle.hasconfigoptions}
  974. <div class="regular_pricing">
  975. <span class="small text-muted">{$WLANG.from}</span>
  976. </div>
  977. {/if}
  978. <div class="price">
  979. <span class="cost">
  980. {$firstCycle.prefix}{$firstCycle.price}
  981. </span>
  982. <span class="suffix">
  983. {$firstCycle.suffix}
  984. </spn>
  985. </div>
  986. <div class="cycle small text-muted">
  987. {$firstCycle.cycle|capitalize}
  988. </div>
  989. {/foreach}
  990. {/if}
  991. {else}
  992. {if $ditem["price"] == 'FREE'}
  993. <span class="badge badge-secondary price-free">{$WLANG.orderfree}</span>
  994. {else}
  995. {if $ditem["productdetails"]['hasconfigoptions']}
  996. <div class="regular_pricing">
  997. <span class="small text-muted">{$WLANG.from}</span>
  998. </div>
  999. {/if}
  1000. <div class="price">
  1001. {assign var="ccurrency" value=$ditem["productdetails"]["price"]["price"]->getCurrency()}
  1002. <span class="cost">{$ditem["productdetails"]["price"]['simple']}</span>
  1003. {if $ccurrency["suffix"]}<span class="suffix">{$ccurrency["suffix"]}</span>{/if}
  1004. </div>
  1005. {if $ditem["billingcycle"] != ""}
  1006. <div class="cycle small text-muted">{$ditem["billingcycle"]}</div>
  1007. {elseif $ditem["productdetails"]["price"]["cycle"] == "onetime"}
  1008. <div class="cycle small text-muted">{$WLANG.orderpaymenttermonetime}</div>
  1009. {/if}
  1010. {if $ditem["productdetails"]["price"]["setupFee"]}
  1011. <div class="setup-fee small text-muted"><span><i class="fal fa-plus"></i></span> {$ditem["productdetails"]["price"]["setupFee"]} {$WLANG.ordersetupfee}</div>
  1012. {/if}
  1013. {/if}
  1014. {/if}
  1015. <a href="{if $ditem['stockControlEnabled'] && !$ditem['quantityInStock']}javascript:void(0){else}{$WEB_ROOT}/{if $ditem["productdetails"]['isMarketConnect']}cart/order/{else}cart.php{/if}?a=add&pid={$ditem['Plan']}{if $ditem["dropdown"][$ditem['Plan']]|@count > "1" && !$block.DisableSwitcher}{if $ditem["billingcycle"] != ""}&billingcycle={$defaultbilling}{/if}{/if}{/if}" class="btn btn-block btn-primary mt-2{if $ditem['stockControlEnabled'] && !$ditem['quantityInStock']} disabled{/if}">
  1016. {if $ditem['stockControlEnabled'] && !$ditem['quantityInStock']}{$WLANG.outofstock}{elseif $block.btntext}{$block.btntext}{else}{$WLANG.addtocart}{/if}
  1017. </a>
  1018. </div>
  1019. {/if}
  1020. </div>
  1021. </div>
  1022. {if $ditem['Featured']}
  1023. <div class="sticker-wrapper">
  1024. <div class="sticker">
  1025. {if $block.featured}{$block.featured}{else}{$WLANG.featuredProduct}{/if}
  1026. </div>
  1027. </div>
  1028. {/if}
  1029. </div>
  1030. </div>
  1031. {/foreach}
  1032. {/if}
  1033. </div>
  1034. </div>
  1035. </div>
  1036. </div>
  1037. </div>
  1038. </div>
  1039. </div>
  1040. </div>
  1041. <script>
  1042. jQuery(document).ready(function () {
  1043. var swiper = new Swiper('#plans-slider-{$blockkey}', {
  1044. slidesPerView: 1,
  1045. navigation: {
  1046. nextEl: '.tables_{$blockkey}_next',
  1047. prevEl: '.tables_{$blockkey}_prev',
  1048. },
  1049. breakpoints: {
  1050. 0: {
  1051. slidesPerView: 1,
  1052. },
  1053. 768: {
  1054. slidesPerView: 2,
  1055. },
  1056. 992: {
  1057. slidesPerView: {if $block.itemcounts == "2"} 2{else} 3{/if},
  1058. },
  1059. 1200: {
  1060. slidesPerView: {if $block.itemcounts == ""} 3{else} {$block.itemcounts}{/if},
  1061. },
  1062. },
  1063. on: {
  1064. init: function (swiper) {
  1065. toggleSliderNav(swiper);
  1066. },
  1067. slideChange: function (swiper) {
  1068. toggleSliderNav(swiper);
  1069. },
  1070. reachEnd: function (swiper) {
  1071. toggleSliderNav(swiper);
  1072. },
  1073. reachBeginning: function (swiper) {
  1074. toggleSliderNav(swiper);
  1075. },
  1076. resize: function (swiper) {
  1077. toggleSliderNav(swiper);
  1078. }
  1079. }
  1080. });
  1081. function toggleSliderNav(swiper) {
  1082. var nav = document.querySelector('.tables_{$blockkey} .plans_slider__nav');
  1083. if (swiper.isBeginning && swiper.isEnd) {
  1084. nav.style.display = 'none';
  1085. } else {
  1086. nav.style.display = 'flex';
  1087. }
  1088. }
  1089. {if $block.SbSwitcher && !$block.DisableSwitcher}
  1090. jQuery("#sec-{$blockkey} .product-billing-switcher-{$blockkey} .dropdown-menu li").click(function(){
  1091. var selText = jQuery(this).html();
  1092. jQuery(this).parents('.btn-group').find('.dropdown-toggle').html(selText);
  1093. });
  1094. jQuery('#sec-{$blockkey} .product-billing-switcher-{$blockkey} .cycle-change').on('click', function() {
  1095. var newCycle = jQuery(this).data('cycle');
  1096. var disBtnBilCycle = jQuery(this).data('cycle');
  1097. jQuery('.plan-{$blockkey} .pricing_main').hide();
  1098. jQuery('.plan-{$blockkey} .' + newCycle).show();
  1099. jQuery(this).addClass('active').siblings().removeClass('active');
  1100. jQuery('.plan-{$blockkey} .plan__body').each(function(index) {
  1101. var disBtnUrlFetch = jQuery(this).closest('.plan-{$blockkey}').find('.btn-primary').attr('href');
  1102. var disBtnUrlRemv = disBtnUrlFetch.indexOf('&billingcycle');
  1103. var disBtnUrlFinal = disBtnUrlFetch.substring(0, disBtnUrlRemv);
  1104. var disBtnUrlFinal = disBtnUrlFinal+'&billingcycle='+disBtnBilCycle;
  1105. jQuery(this).find('.btn-primary').attr('href',disBtnUrlFinal);
  1106. if (jQuery(this).find('.' + newCycle).length <= 0) {
  1107. jQuery(this).find('.pricing_main_default').show();
  1108. jQuery(this).find('.btn-primary').addClass('disabled');
  1109. } else {
  1110. jQuery(this).find('.pricing_main_default').hide();
  1111. jQuery(this).find('.btn-primary').removeClass('disabled');
  1112. }
  1113. });
  1114. });
  1115. jQuery('#sec-{$blockkey} .product-billing-switcher-{$blockkey} .cycle-change').first().trigger('click');
  1116. {else}
  1117. {if !$block.DisableSwitcher}
  1118. jQuery(".plan-{$blockkey} .dropdown-menu li").click(function(){
  1119. var selText = jQuery(this).html();
  1120. jQuery(this).parents('.btn-group').find('.dropdown-toggle').html(selText+' <span class="fal fa-angle-down"></span>');
  1121. });
  1122. jQuery('.plan-{$blockkey} .billinging_wrapr').click(function(){
  1123. var disBtnBilCycle = jQuery(this).attr('data-ultn-bilcycle');
  1124. var disBtnUrlFetch = jQuery(this).closest('.plan-{$blockkey} .plan__body').find('.btn-primary').attr('href');
  1125. var disBtnUrlRemv = disBtnUrlFetch.indexOf('&billingcycle');
  1126. var disBtnUrlFinal = disBtnUrlFetch.substring(0, disBtnUrlRemv);
  1127. var disBtnUrlFinal = disBtnUrlFinal+'&billingcycle='+disBtnBilCycle;
  1128. jQuery(this).closest('.plan-{$blockkey} .plan__body').find('.btn-primary').attr('href',disBtnUrlFinal);
  1129. var crosPricingTable = jQuery(this).closest('.plan-{$blockkey} .plan__body');
  1130. crosPricingTable.find('.pricing_main').each(function() {
  1131. var currentBilCycle = jQuery(this).attr('data-ultn-bilcycle');
  1132. if (currentBilCycle === disBtnBilCycle) {
  1133. jQuery(this).removeClass('w-hidden');
  1134. } else {
  1135. jQuery(this).addClass('w-hidden');
  1136. }
  1137. });
  1138. });
  1139. {/if}
  1140. {/if}
  1141. });
  1142. </script>
  1143. {elseif $block.ptstyle == 'pts_3'}
  1144. <div id="sec-{$blockkey}" class="sec products{if $block.bgcolor != ""} {$block.bgcolor}{/if}{if $block.borders != ""} {$block.borders}{/if}{if $block.toppadding == "1"} inner-t-60{elseif $block.toppadding == "2"} inner-t-30{elseif $block.toppadding == "3"} no-padding-top{/if}{if $block.bottompadding == "1"} inner-b-60{elseif $block.bottompadding == "2"} inner-b-30{elseif $block.bottompadding == "3"} no-padding-bottom{/if}">
  1145. <div class="container">
  1146. {if $block.caption || $block.sectitle || $block.subtitle}
  1147. <div class="sec-description">
  1148. {if $block.caption}
  1149. <div class="sec-caption">
  1150. <span class="rounded">{$block.caption}</span>
  1151. </div>
  1152. {/if}
  1153. {if $block.sectitle}
  1154. <h2 class="sec-title">{$block.sectitle}</h2>
  1155. {/if}
  1156. {if $block.subtitle}
  1157. <div class="sec-subtitle">{$block.subtitle}</div>
  1158. {/if}
  1159. </div>
  1160. {/if}
  1161. <div class="cros-pricing-container">
  1162. {if $block.SbSwitcher && !$block.DisableSwitcher}
  1163. {if $block.switcherCycles !== null && $block.switcherCycles|@count > 1}
  1164. {assign var="cycles" value=$block.switcherCycles}
  1165. {else}
  1166. {assign var="cycles" value=$allCycles}
  1167. {/if}
  1168. {if !$block.bsco}
  1169. {assign var="cycles" value=$cycles|@array_reverse}
  1170. {/if}
  1171. <div class="product-billing-switcher-{$blockkey}">
  1172. <div class="btn-group white border d-none d-sm-inline-block" role="group">
  1173. {foreach $cycles as $cycle}
  1174. <button type="button" class="btn cycle-change" data-cycle="{$cycle}">
  1175. <span class="btn-text">{lang key={'pricingCycleLong.'|cat:$cycle}}</span>
  1176. </button>
  1177. {/foreach}
  1178. </div>
  1179. <div class="btn-group white border d-inline-block d-sm-none">
  1180. <span class="px-3 py-1 small text-muted border-right">{$WLANG.orderbillingcycle}</span>
  1181. <button type="button" class="btn dropdown-toggle" data-toggle="dropdown">
  1182. <span class="btn-text">{lang key={'pricingCycleLong.'|cat:$cycles[0]}}</span>
  1183. </button>
  1184. <ul class="dropdown-menu">
  1185. {foreach $cycles as $cycle}
  1186. <li class="dropdown-item cycle-change" data-cycle="{$cycle}">
  1187. <span class="btn-text">{lang key={'pricingCycleLong.'|cat:$cycle}}</span>
  1188. </li>
  1189. {/foreach}
  1190. </ul>
  1191. </div>
  1192. </div>
  1193. {/if}
  1194. <div class="pricing_style_2">
  1195. <div class="swiper" id="pricing-tables-{$blockkey}">
  1196. <div class="row row-eq-height{if !$block.DisplayInGrid} flex-nowrap{/if} pricing-slider swiper-wrapper pricing-{$blockkey}">
  1197. {if count($block.table) > 0}
  1198. {foreach from=$block.table item=$ditem key=$kk}
  1199. <div class="col-12{if $block.itemcounts == "2"} col-md-6{elseif $block.itemcounts == "3"} col-md-6 col-lg-4 col-xl-4{elseif $block.itemcounts == "4"} col-md-6 col-lg-4 col-xl-3{/if} products-slide">
  1200. <div class="cros-pricing-table overflow-hidden mt-0 mb-4 border-0 p-0{if $block.ststyle} {$block.ststyle}{/if}{if $block.noshadow} no-shadow{/if}{if $block.tablebg == "light"} light{elseif $block.tablebg == "primary"} bg-primary{elseif $block.tablebg == "dark"} dark{else} white{/if}{if $ditem['Featured']} active{/if}">
  1201. {if $ditem['Graphic']}
  1202. <div class="graphics">
  1203. {if !$ditem['Graphic']|strstr:"fa-"}
  1204. <img src="{$WEB_ROOT}/{$ditem['Graphic']}" alt="{$ditem.title}" class="h-rounded img-fluid">
  1205. {/if}
  1206. <div class="d-flex flex-column p-3{if $block.centered} align-items-center{/if}">
  1207. <div class="h4 mb-2">{$ditem['productdetails']['name']}</div>
  1208. {if $ditem['Featured']}
  1209. {if $block.ststyle}
  1210. <div class="feature-sticker mb-2">
  1211. <span class="st-sm">
  1212. {if $block.featured}{$block.featured}{else}{$WLANG.featuredProduct}{/if}
  1213. </span>
  1214. </div>
  1215. {else}
  1216. <div class="sticker-wrapper">
  1217. <div class="sticker">
  1218. {if $block.featured}{$block.featured}{else}{$WLANG.featuredProduct}{/if}
  1219. </div>
  1220. </div>
  1221. {/if}
  1222. {/if}
  1223. {if $ditem["dropdown"][$ditem['Plan']]|@count > "1" && !$block.DisableSwitcher}
  1224. {if $block.bsco}
  1225. {foreach $ditem["dropdown"] as $dropdownkey=>$dropdownprice}
  1226. {$ditem["dropdown"][$dropdownkey] = $dropdownprice|@array_reverse}
  1227. {/foreach}
  1228. {/if}
  1229. {assign var="dropdownprice" value=$ditem["dropdown"][$ditem['Plan']][0] nocache}
  1230. {assign var="defaultbilling" value=$dropdownprice['cycle'] nocache}
  1231. {assign var="taxtype" value=$dropdownprice['taxtype'] nocache}
  1232. {assign var="hasconfigoptions" value=$dropdownprice['hasconfigoptions'] nocache}
  1233. <div class="billing-cycle-pricing mt-0 mb-2 float{if $block.descp == "below"} desc_belwo{/if}">
  1234. {if !$block.SbSwitcher}
  1235. <div class="btn-group dropup">
  1236. <a class="btn dropdown-toggle" data-toggle="dropdown" href="#">
  1237. <div class="pricing_wrapr">
  1238. {$dropdownprice['billingcycle']}
  1239. {* {if $dropdownprice['save']}<div class="save_text"><span class="badge badge-primary">{$dropdownprice['save']}</span></div>{/if} *}
  1240. </div>
  1241. <span class="fal fa-angle-down"></span>
  1242. </a>
  1243. <ul class="dropdown-menu">
  1244. {if $ditem["dropdown"][$ditem['Plan']]}
  1245. {foreach $ditem["dropdown"][$ditem['Plan']] as $dropdownprice}
  1246. <li class="billinging_wrapr" data-ultn-bilcycle="{$dropdownprice['cycle']}">
  1247. <div class="pricing_wrapr">
  1248. {$dropdownprice['billingcycle']}
  1249. {* {if $dropdownprice['save']}<div class="save_text"><span class="badge badge-primary">{$dropdownprice['save']}</span></div>{/if} *}
  1250. </div>
  1251. </li>
  1252. {/foreach}
  1253. {/if}
  1254. </ul>
  1255. </div>
  1256. {/if}
  1257. </div>
  1258. {/if}
  1259. <div class="d-flex align-items-center mt-auto">
  1260. <div class="mr-auto">
  1261. {if $ditem["dropdown"][$ditem['Plan']]|@count > "1" && !$block.DisableSwitcher}
  1262. <div class="billing-cycle-pricing m-0 float{if $block.descp == "below"} desc_belwo{/if}">
  1263. {if $ditem["dropdown"][$ditem['Plan']]}
  1264. <div class="product_pricing">
  1265. {if $block.SbSwitcher}
  1266. <div class="pricing_main_default{if $defaultbilling eq "{$dropdownprice['cycle']}"} w-hidden{/if}">
  1267. {if $dropdownprice['hasconfigoptions'] || $dropdownprice['save']}
  1268. <div class="regular_pricing">
  1269. {if $dropdownprice['hasconfigoptions']}
  1270. <span class="small text-muted">{$WLANG.from}</span>
  1271. {/if}
  1272. {if $dropdownprice['save']}
  1273. {if $dropdownprice['dollar'] && !$block.DisableBrekdown}
  1274. <span class="savecut text-muted">{$dropdownprice['prefix']}{$dropdownprice['dollar']}.{$dropdownprice['cents']}{$dropdownprice['suffix']}</span>
  1275. {/if}
  1276. {if $block.SbSwitcher}<span class="badge badge-primary">{$dropdownprice['save']}</span>{/if}
  1277. {/if}
  1278. </div>
  1279. {/if}
  1280. <div class="price">
  1281. <span class="cost cost-small">{$dropdownprice['prefix']}{if $block.DisableBrekdown}{$dropdownprice['price']}{else}{$dropdownprice['monthlydollar']}.{$dropdownprice['monthlycents']}{/if}</span>
  1282. {if $dropdownprice['suffix']}<span class="suffix">{$dropdownprice['suffix']}</span>{/if}
  1283. </div>
  1284. <div class="cycle small text-muted">{if $block.DisableBrekdown}{$dropdownprice.cycle|capitalize}{else}{if $dropdownprice['monthlycycle']}{$dropdownprice['monthlycycle']}{else}{$dropdownprice['cycleTerm']}{/if}{/if}</div>
  1285. {if $dropdownprice['setup'] > 0}
  1286. <div class="small text-muted">
  1287. <span><i class="fal fa-plus"></i></span>
  1288. <span>{$dropdownprice['prefix']}</span>
  1289. {$dropdownprice['setup']}
  1290. <span>{$dropdownprice['suffix']}</span>
  1291. {$WLANG.ordersetupfee}
  1292. </div>
  1293. {/if}
  1294. </div>
  1295. {/if}
  1296. {foreach $ditem["dropdown"][$ditem['Plan']] as $dropdownprice}
  1297. <div class="pricing_main {$dropdownprice['cycle']}{if $defaultbilling neq "{$dropdownprice['cycle']}"} w-hidden{/if}" data-ultn-bilcycle="{$dropdownprice['cycle']}">
  1298. {if $dropdownprice['hasconfigoptions'] || $dropdownprice['save']}
  1299. <div class="regular_pricing">
  1300. {if $dropdownprice['hasconfigoptions']}
  1301. <span class="small text-muted">{$WLANG.from}</span>
  1302. {/if}
  1303. {if $dropdownprice['save']}
  1304. {if $dropdownprice['dollar'] && !$block.DisableBrekdown}
  1305. <span class="savecut text-muted">{$dropdownprice['prefix']}{$dropdownprice['dollar']}.{$dropdownprice['cents']}{$dropdownprice['suffix']}</span>
  1306. {/if}
  1307. {if $block.SbSwitcher}<span class="badge badge-primary">{$dropdownprice['save']}</span>{/if}
  1308. {/if}
  1309. </div>
  1310. {/if}
  1311. <div class="price">
  1312. <span class="cost cost-small">{$dropdownprice['prefix']}{if $block.DisableBrekdown}{$dropdownprice['price']}{else}{$dropdownprice['monthlydollar']}.{$dropdownprice['monthlycents']}{/if}</span>
  1313. {if $dropdownprice['suffix']}<span class="suffix">{$dropdownprice['suffix']}</span>{/if}
  1314. </div>
  1315. <div class="cycle small text-muted">{if $block.DisableBrekdown}{$dropdownprice.cycle|capitalize}{else}{if $dropdownprice['monthlycycle']}{$dropdownprice['monthlycycle']}{else}{$dropdownprice['cycleTerm']}{/if}{/if}</div>
  1316. {if $dropdownprice['setup'] > 0}
  1317. <div class="small text-muted">
  1318. <span><i class="fal fa-plus"></i></span>
  1319. <span>{$dropdownprice['prefix']}</span>
  1320. {$dropdownprice['setup']}
  1321. <span>{$dropdownprice['suffix']}</span>
  1322. {$WLANG.ordersetupfee}
  1323. </div>
  1324. {/if}
  1325. </div>
  1326. {/foreach}
  1327. </div>
  1328. {/if}
  1329. </div>
  1330. {else}
  1331. <div class="product_pricing_single m-0">
  1332. {if $block.DisableBrekdown}
  1333. {if isset($ditem.dropdown) && is_array($ditem.dropdown)}
  1334. {foreach from=$ditem.dropdown item=$dropdown key=$dropdownKey}
  1335. {assign var="firstCycle" value=$dropdown|@end}
  1336. {if $firstCycle.hasconfigoptions}
  1337. <div class="regular_pricing">
  1338. <span class="small text-muted">{$WLANG.from}</span>
  1339. </div>
  1340. {/if}
  1341. <div class="price">
  1342. <span class="cost cost-small">
  1343. {$firstCycle.prefix}{$firstCycle.price}
  1344. </span>
  1345. <span class="suffix">
  1346. {$firstCycle.suffix}
  1347. </spn>
  1348. </div>
  1349. <div class="cycle small text-muted">
  1350. {$firstCycle.cycle|capitalize}
  1351. </div>
  1352. {/foreach}
  1353. {/if}
  1354. {else}
  1355. {if $ditem["price"] == 'FREE'}
  1356. <span class="badge badge-secondary price-free">{$WLANG.orderfree}</span>
  1357. {else}
  1358. {if $ditem["productdetails"]['hasconfigoptions']}
  1359. <div class="regular_pricing">
  1360. <span class="small text-muted">{$WLANG.from}</span>
  1361. </div>
  1362. {/if}
  1363. <div class="price">
  1364. {assign var="ccurrency" value=$ditem["productdetails"]["price"]["price"]->getCurrency()}
  1365. <span class="cost cost-small">{$ditem["productdetails"]["price"]['simple']}</span>
  1366. {if $ccurrency["suffix"]}<span class="suffix">{$ccurrency["suffix"]}</span>{/if}
  1367. </div>
  1368. {if $ditem["billingcycle"] != ""}
  1369. <div class="cycle small text-muted">{$ditem["billingcycle"]}</div>
  1370. {elseif $ditem["productdetails"]["price"]["cycle"] == "onetime"}
  1371. <div class="cycle small text-muted">{$WLANG.orderpaymenttermonetime}</div>
  1372. {/if}
  1373. {if $ditem["productdetails"]["price"]["setupFee"]}
  1374. <div class="setup-fee small text-muted"><span><i class="fal fa-plus"></i></span> {$ditem["productdetails"]["price"]["setupFee"]} {$WLANG.ordersetupfee}</div>
  1375. {/if}
  1376. {/if}
  1377. {/if}
  1378. </div>
  1379. {/if}
  1380. </div>
  1381. {if $ditem['ProductLink']}
  1382. <a href="{if $ditem['link'] == 'domainregister'}{$WEB_ROOT}/{if $ditem["productdetails"]['isMarketConnect']}cart/order/{else}cart.php{/if}?a=add&domain=register{elseif $ditem['link'] == 'domaintransfer'}{$WEB_ROOT}/{if $ditem["productdetails"]['isMarketConnect']}cart/order/{else}cart.php{/if}?a=add&domain=transfer{else}{$WEB_ROOT}/{$ditem['link']}{/if}" class="btn btn-sm w-auto mt-0 btn-primary">
  1383. {if $ditem['ProductbtnText']}{$ditem['ProductbtnText']}{else}{$WLANG.learnmore}{/if}
  1384. </a>
  1385. {else}
  1386. <a href="{if $ditem['stockControlEnabled'] && !$ditem['quantityInStock']}javascript:void(0){else}{$WEB_ROOT}/{if $ditem["productdetails"]['isMarketConnect']}cart/order/{else}cart.php{/if}?a=add&pid={$ditem['Plan']}{if $ditem["dropdown"][$ditem['Plan']]|@count > "1" && !$block.DisableSwitcher}&billingcycle={$defaultbilling}{/if}{/if}" class="btn btn-sm w-auto mt-0 btn-order-link btn-primary{if $ditem['stockControlEnabled'] && !$ditem['quantityInStock']} disabled{/if}">
  1387. {if $ditem['stockControlEnabled'] && !$ditem['quantityInStock']}{$WLANG.outofstock}{elseif $block.btntext}{$block.btntext}{else}{$WLANG.addtocart}{/if}
  1388. </a>
  1389. {/if}
  1390. </div>
  1391. </div>
  1392. </div>
  1393. {else}
  1394. <div class="d-flex align-items-center justify-content-center p-3 h-100">
  1395. <div class="alert alert-danger text-center">
  1396. Must required graphic for this type of product section.
  1397. </div>
  1398. </div>
  1399. {/if}
  1400. </div>
  1401. </div>
  1402. {/foreach}
  1403. {/if}
  1404. </div>
  1405. </div>
  1406. {if !$block.DisplayInGrid}
  1407. {if !$block.slidertype}
  1408. <div class="swiper-pagination pricing-tables_{$blockkey}"></div>
  1409. {else}
  1410. <div class="swiper-button-prev pricing-tables_{$blockkey}_prev">
  1411. <span class="btn_icon_large"><i class="far fa-long-arrow-left"></i></span>
  1412. </div>
  1413. <div class="swiper-button-next pricing-tables_{$blockkey}_next">
  1414. <span class="btn_icon_large"><i class="far fa-long-arrow-right"></i></span>
  1415. </div>
  1416. {/if}
  1417. {/if}
  1418. </div>
  1419. </div>
  1420. </div>
  1421. </div>
  1422. <script>
  1423. jQuery(document).ready(function () {
  1424. {if !$block.DisplayInGrid}
  1425. var swiper = new Swiper('#pricing-tables-{$blockkey}', {
  1426. slidesPerView: 1,
  1427. preventClicks: true,
  1428. slideClass: 'products-slide',
  1429. {if !$block.slidertype}
  1430. pagination: {
  1431. el: '.swiper-pagination.pricing-tables_{$blockkey}',
  1432. clickable: true,
  1433. },
  1434. {else}
  1435. navigation: {
  1436. nextEl: '.pricing-tables_{$blockkey}_next',
  1437. prevEl: '.pricing-tables_{$blockkey}_prev',
  1438. },
  1439. {/if}
  1440. breakpoints: {
  1441. 0: {
  1442. slidesPerView: 1
  1443. },
  1444. 768: {
  1445. slidesPerView: 2
  1446. },
  1447. 992: {
  1448. slidesPerView:{if $block.itemcounts == "2"} 2{else} 3{/if}
  1449. },
  1450. 1200: {
  1451. slidesPerView:{if $block.itemcounts == ""} 3{else} {$block.itemcounts}{/if}
  1452. },
  1453. }
  1454. });
  1455. {/if}
  1456. {if $block.SbSwitcher && !$block.DisableSwitcher}
  1457. jQuery("#sec-{$blockkey} .product-billing-switcher-{$blockkey} .dropdown-menu li").click(function(){
  1458. var selText = jQuery(this).html();
  1459. jQuery(this).parents('.btn-group').find('.dropdown-toggle').html(selText);
  1460. });
  1461. jQuery('#sec-{$blockkey} .product-billing-switcher-{$blockkey} .cycle-change').on('click', function() {
  1462. var newCycle = jQuery(this).data('cycle');
  1463. var disBtnBilCycle = jQuery(this).data('cycle');
  1464. jQuery('.pricing-{$blockkey} .product_pricing .pricing_main').hide();
  1465. jQuery('.pricing-{$blockkey} .' + newCycle).show();
  1466. jQuery(this).addClass('active').siblings().removeClass('active');
  1467. jQuery('.pricing-{$blockkey} .cros-pricing-table').each(function(index) {
  1468. var btnOrder = jQuery(this).find('.btn-order-link');
  1469. if (btnOrder.length) {
  1470. var disBtnUrlFetch = btnOrder.attr('href');
  1471. var disBtnUrlRemv = disBtnUrlFetch.indexOf('&billingcycle');
  1472. var disBtnUrlFinal = disBtnUrlFetch.substring(0, disBtnUrlRemv) + '&billingcycle=' + disBtnBilCycle;
  1473. btnOrder.attr('href', disBtnUrlFinal);
  1474. }
  1475. if (jQuery(this).find('.' + newCycle).length <= 0) {
  1476. jQuery(this).find('.pricing_main_default').show();
  1477. btnOrder.addClass('disabled');
  1478. } else {
  1479. jQuery(this).find('.pricing_main_default').hide();
  1480. btnOrder.removeClass('disabled');
  1481. }
  1482. });
  1483. });
  1484. jQuery('#sec-{$blockkey} .product-billing-switcher-{$blockkey} .cycle-change').first().trigger('click');
  1485. {else}
  1486. {if !$block.DisableSwitcher}
  1487. jQuery(".pricing-{$blockkey} .dropdown-menu li").click(function(){
  1488. var selText = jQuery(this).html();
  1489. jQuery(this).parents('.btn-group').find('.dropdown-toggle').html(selText+' <span class="fal fa-angle-down"></span>');
  1490. });
  1491. jQuery('.pricing-{$blockkey} .billinging_wrapr').click(function(){
  1492. var disBtnBilCycle = jQuery(this).attr('data-ultn-bilcycle');
  1493. var btnOrder = jQuery(this).closest('.pricing-{$blockkey} .cros-pricing-table').find('.btn-order-link');
  1494. if (btnOrder.length) {
  1495. var disBtnUrlFetch = btnOrder.attr('href');
  1496. var disBtnUrlRemv = disBtnUrlFetch.indexOf('&billingcycle');
  1497. var disBtnUrlFinal = disBtnUrlFetch.substring(0, disBtnUrlRemv) + '&billingcycle=' + disBtnBilCycle;
  1498. btnOrder.attr('href', disBtnUrlFinal);
  1499. }
  1500. var crosPricingTable = jQuery(this).closest('.pricing-{$blockkey} .cros-pricing-table');
  1501. crosPricingTable.find('.pricing_main').each(function() {
  1502. var currentBilCycle = jQuery(this).attr('data-ultn-bilcycle');
  1503. if (currentBilCycle === disBtnBilCycle) {
  1504. jQuery(this).removeClass('w-hidden');
  1505. } else {
  1506. jQuery(this).addClass('w-hidden');
  1507. }
  1508. });
  1509. });
  1510. {/if}
  1511. {/if}
  1512. });
  1513. </script>
  1514. {/if}
  1515. {/if}