Individual Passes 3A - Banner
Breadcrumb
Individual Passes 3A - Team Training
Young woman using laptop computer with blank white screen at cafe. Business woman working in modern office. Freelance lifestyle, e-learning, studying, web site, technology and online shopping concept

Team Training

Tailored training solutions designed to address the unique needs of your firm or organization.

Equip your team with flexible training solutions that drive professional growth. Choose Annual Passes for unlimited course access for teams of five or more, or opt for our Seats option, offering targeted courses customized to align with your firm or organization’s educational goals.

Contact Sales
Pass Options
An error occurred while processing the template.
The following has evaluated to null or missing:
==> barbriRedisCacheAPI.get("barbripass", productId)  [in template "20096#20121#2876169" at line 40, column 77]

----
Tip: If the failing expression is known to legally refer to something that's sometimes null or missing, either specify a default value like myOptionalVar!myDefault, or use <#if myOptionalVar??>when-present<#else>when-missing</#if>. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)??
----

----
FTL stack trace ("~" means nesting-related):
	- Failed at: response = barbriRedisCacheAPI.get("b...  [in template "20096#20121#2876169" at line 40, column 66]
----
1<section class="section pass_options pt-0"> 
2	<div class="container"> 
3		<div class="default-heading subtitle_h2"> 
4			<#if (heading.getData())?? && heading.getData()?has_content> 
5				<h2>${heading.getData()}</h2> 
6			</#if> 
7			<#if (description.getData())??> 
8				${description.getData()} 
9			</#if> 
10		</div> 
11		<div class="row owl-carousel s-01 justify-content-between mt-md-3 mt-lg-4"> 
12			<#if productCard.getSiblings()?has_content> 
13				<#list productCard.getSiblings() as cur_productCard> 
14					<div class="item"> 
15						<div class="card full_time"> 
16							<div class="card-body"> 
17								<#if (cur_productCard.productTitle.getData())??> 
18									<div class="sub_heading">${cur_productCard.productTitle.getData()}</div> 
19								</#if>  
20								<ul class="list-group-default"> 
21									<li> 
22										<#if (cur_productCard.productDescription.getData())??> 
23											${cur_productCard.productDescription.getData()} 
24										</#if> 
25									</li> 
26									<li> 
27										<#if (cur_productCard.benefitsHeader.getData())??> 
28											<div class="list_title">${cur_productCard.benefitsHeader.getData()}</div> 
29										</#if> 
30										<#if (cur_productCard.benefits.getData())??> 
31											${cur_productCard.benefits.getData()} 
32										</#if> 
33									</li> 
34								</ul> 
35							</div> 
36							<#assign productId = ''/> 
37							<#if (cur_productCard.productID.getData())?? && cur_productCard.productID.getData()?has_content> 
38								<#assign productId = cur_productCard.productID.getData() /> 
39							</#if> 
40							<#assign response = barbriRedisCacheAPI.get("barbripass", productId)  
41								json = jsonFactoryUtil.createJSONObject(response) 
42							/> 
43							<div class="monthly_price cart-item"> 
44								<div class="price_list"> 
45									<input type="hidden" class="product-id" value="${productId}"> 
46                  <input type="hidden" class="product-name" value="${json.name}"> 
47                  <input type="hidden" class="product-price" value="${json.pricebook}"> 
48				          <#assign passValue = cur_productCard.productTitle.getData() /> 
49 
50<#if passValue == "Professional Skills"> 
51  <input type="hidden" class="pass-value" value="PS"> 
52<#elseif passValue == "All-Access"> 
53  <input type="hidden" class="pass-value" value="ALL"> 
54<#else> 
55  <input type="hidden" class="pass-value" value="${passValue}"> 
56</#if> 
57									<input type="hidden" class="product-pass" value="family"> 
58									<input type="hidden" class="product-expireDate" value=""> 
59									<#assign priceStr = json.pricebook?replace(",", "")> 
60									<#assign priceNum = priceStr?number> 
61									<#if priceStr?matches("^[0-9]+(\\.0+)?$")> 
62									<span class="sale-price"> $${priceNum?string("#,##0")} </span> 
63									<#else> 
64									<span class="sale-price"> $${priceNum?string("#,##0.00")} </span> 
65									</#if> 
66								</div> 
67								<a href="javascript:void(0);" class="btn pc_theme_btn btn-primary btn_maxwidth add-to-cart"> <span class="material-symbols-rounded"> shopping_cart </span> Add to Cart </a>                         
68							</div> 
69						</div> 
70					</div> 
71				</#list> 
72			</#if> 
73		</div> 
74	</div> 
75</section> 
76 
77 
78 <script> 
79   $(document).ready(function () { 
80		  let currentDate = new Date(); 
81      let futureDate = new Date(currentDate); 
82      futureDate.setFullYear(futureDate.getFullYear() + 1); 
83         
84				// Format as MM/DD/YYYY 
85      function formatDateMMDDYYYY(date) { 
86      let mm = String(date.getMonth() + 1).padStart(2, '0'); 
87      let dd = String(date.getDate()).padStart(2, '0'); 
88      let yyyy = date.getFullYear(); 
89      return mm + '/' + dd + '/' + yyyy; 
90
91    $(".product-expireDate").val(formatDateMMDDYYYY(futureDate)); 
92		 
93		// Then close the modal 
94    $('.single_option').modal('hide'); 
95		 
96    });    
97</script> 
Individual Passes 3A - Compare Passes
An error occurred while processing the template.
The following has evaluated to null or missing:
==> barbriRedisCacheAPI.get("barbripass", productId)  [in template "20096#20121#2805694" at line 106, column 77]

----
Tip: If the failing expression is known to legally refer to something that's sometimes null or missing, either specify a default value like myOptionalVar!myDefault, or use <#if myOptionalVar??>when-present<#else>when-missing</#if>. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)??
----

----
FTL stack trace ("~" means nesting-related):
	- Failed at: response = barbriRedisCacheAPI.get("b...  [in template "20096#20121#2805694" at line 106, column 66]
----
1<section class="section premium_price_table campare_passes active_none pt-0"> 
2	<div class="container"> 
3		<#if title.getData()?has_content> 
4			<div class="default-heading subtitle_h2"> 
5				<h2>${title.getData()}</h2> 
6				<#if (description.getData())??> 
7					<p>${description.getData()}</p> 
8				</#if> 
9			</div> 
10		</#if> 
11		<div class="table-responsive"> 
12			<table class="table table-bordered moblie_brdr_none"> 
13				<thead> 
14					<tr> 
15						<th class="hide_first_row hide_mobile" scope="col"></th> 
16						<#assign recommendedIndex = 0 /> 
17						<#if tableHeader.getSiblings()?has_content> 
18							<#list tableHeader.getSiblings() as cur_tableHeader> 
19								<#if getterUtil.getBoolean(cur_tableHeader.recommended.getData())> 
20									<#assign recommendedIndex = cur_tableHeader?counter /> 
21									<th scope="col">  
22										<div class="top_title_area blue_bg">  
23										<span> Monthly Subscription </span> ${cur_tableHeader.headerText.getData()}</div> 
24									</th> 
25								<#else> 
26									<th scope="col"> 
27										<div class="top_title_area"> 
28										<div class="table_head_name"> 
29											${cur_tableHeader.headerText.getData()} 
30											<#if cur_tableHeader.headerSecondayText.getData()?has_content> 
31												<div class="month_count">${cur_tableHeader.headerSecondayText.getData()}</div> 
32											</#if> 
33											</div> 
34										</div> 
35									</th> 
36								</#if> 
37							</#list> 
38						</#if> 
39					</tr> 
40				</thead> 
41				<tbody> 
42					 
43					<#if benefits.getSiblings()?has_content> 
44						<#list benefits.getSiblings() as cur_benefits> 
45							<#assign greyCSS = ""> 
46							<#if cur_benefits?index % 2 == 1> 
47								<#assign greyCSS = "light_grey_bg"> 
48							</#if> 
49							<tr class="row_light hide_desktop"> 
50								<th scope="row" colspan="5"> 
51									<div class="cource_compare_name"> ${cur_benefits.benefitName.getData()}  
52										<#if cur_benefits.tooltip.getData()?has_content> 
53											<a class="lfr-portal-tooltip" title="${cur_benefits.tooltip.getData()}"><span class="material-symbols-rounded"> info </span></a> 
54										</#if> 
55									</div> 
56								</th> 
57							</tr> 
58							<tr class="row_light"> 
59								<th class="hide_first_row hide_mobile" scope="row"> 
60									<div class="cource_compare_name"> ${cur_benefits.benefitName.getData()}  
61										<#if cur_benefits.tooltip.getData()?has_content> 
62											<a class="lfr-portal-tooltip" title="${cur_benefits.tooltip.getData()}"><span class="material-symbols-rounded"> info </span></a> 
63										</#if> 
64									</div> 
65								</th> 
66								<#if cur_benefits.Table.getSiblings()?has_content> 
67									<#list cur_benefits.Table.getSiblings() as cur_benefits_Table> 
68										<#assign borderClass = ""> 
69										<#if cur_benefits_Table?counter == recommendedIndex> 
70											<#assign borderClass = "highlighted_cell"> 
71										</#if> 
72										<#if getterUtil.getBoolean(cur_benefits_Table.yes.getData())> 
73											<td class="${greyCSS} ${borderClass}"> 
74												<#if cur_benefits_Table.textVal.getData()?has_content> 
75													<div class="grade">${cur_benefits_Table.textVal.getData()}</div> 
76													<#else> 
77													<i class="web-check-success"><span class="path1"></span><span class="path2"></span></i> 
78												</#if> 
79											</td> 
80										<#else> 
81											<td class="${greyCSS} ${borderClass}"> 
82												<#if cur_benefits_Table.textVal.getData()?has_content> 
83													<div class="grade">${cur_benefits_Table.textVal.getData()}</div> 
84													<#else> 
85													<i class="web-close03"></i> 
86												</#if> 
87											</td> 
88										</#if> 
89									</#list> 
90								</#if> 
91							</tr> 
92						</#list> 
93					</#if> 
94					 
95					<tr class="row_light align_area"> 
96						<th class="hide_first_row br_none hide_mobile" scope="row"> </th> 
97						<#if tableHeader.getSiblings()?has_content> 
98							<#list tableHeader.getSiblings() as cur_tableHeader> 
99						<#--<@liferay_portlet["runtime"] portletName="com_barbri_sf_pass_BarbriSFPassDisplayPortlet_INSTANCE_cleFirstCardTable" /> 
100						<@liferay_portlet["runtime"] portletName="com_barbri_sf_pass_BarbriSFPassDisplayPortlet_INSTANCE_cpeSecondCardTable" /> 
101						<@liferay_portlet["runtime"] portletName="com_barbri_sf_pass_BarbriSFPassDisplayPortlet_INSTANCE_allThirdCardTable" />--> 
102						<#assign productId = ''/> 
103							<#if (cur_tableHeader.productID.getData())?? && cur_tableHeader.productID.getData()?has_content> 
104								<#assign productId = cur_tableHeader.productID.getData() /> 
105							</#if> 
106							<#assign response = barbriRedisCacheAPI.get("barbripass", productId)  
107								json = jsonFactoryUtil.createJSONObject(response) 
108							/> 
109						<td class="light_grey_bg bor_radius"> 
110                    <div class="monthly_price cart-item"> 
111                        <div class="price_list"> 
112                            <#assign priceStr = json.pricebook?replace(",", "")> 
113														<#assign priceNum = priceStr?number> 
114														<#if priceStr?matches("^[0-9]+(\\.0+)?$")> 
115														<span class="sale-price"> $${priceNum?string("#,##0")} </span> 
116														<#else> 
117														<span class="sale-price"> $${priceNum?string("#,##0.00")} </span> 
118														</#if> 
119                        </div> 
120                        <input type="hidden" class="product-id" value="${productId}"> 
121                  			<input type="hidden" class="product-name" value="${json.name}"> 
122                  			<input type="hidden" class="product-price" value="${json.pricebook}"> 
123												 
124												<#if cur_tableHeader.headerText.getData()??> 
125                             <#assign passValue = cur_tableHeader.headerText.getData() /> 
126                             <#if passValue == "Professional Skills"> 
127                                   <input type="hidden" class="pass-value" value="PS"> 
128                             <#elseif passValue == "All-Access"> 
129                                   <input type="hidden" class="pass-value" value="ALL"> 
130                            <#else> 
131                                <input type="hidden" class="pass-value" value="${passValue}"> 
132                           </#if> 
133                         </#if> 
134                         <input type="hidden" class="product-pass" value="family"> 
135												 	<input type="hidden" class="product-expireDate" value=""> 
136												  
137                        <a href="javascript:void(0);" class="btn pc_theme_btn btn-primary btn_maxwidth add-to-cart"> <span class="material-symbols-rounded"> 
138                                shopping_cart </span> Add to Cart </a> 
139                    </div> 
140                </td> 
141						</#list> 
142					</#if> 
143					</tr> 
144				</tbody> 
145			</table> 
146		</div> 
147	</div> 
148</section> 
149<style> 
150body .min-vh-100 section.portlet { 
151    margin: 0; 
152
153body .min-vh-100 .portlet-content.custom-portlet-class { 
154    padding: 0; 
155
156</style> 
157<script> 
158$(document).ready(function() { 
159	let recIndex = ${recommendedIndex} + 1; 
160	$(".align_area td:nth-child("+recIndex+")").addClass("highlighted_cell"); 
161}); 
162 
163 
164</script>