products.tpl.corrupt 82 KB

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