clientregister.tpl 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308
  1. {*
  2. **********************************************************
  3. * Developed by: Team Theme Metro
  4. * Website: http://www.thememetro.com
  5. **********************************************************
  6. *}
  7. {if in_array('state', $optionalFields)}
  8. <script>
  9. var statesTab = 10;
  10. var stateNotRequired = true;
  11. </script>
  12. {/if}
  13. <script type="text/javascript" src="{$BASE_PATH_JS}/StatesDropdown.js"></script>
  14. <script type="text/javascript" src="{$BASE_PATH_JS}/PasswordStrength.js"></script>
  15. <script>
  16. window.langPasswordStrength = "{lang key='pwstrength'}";
  17. window.langPasswordWeak = "{lang key='pwstrengthweak'}";
  18. window.langPasswordModerate = "{lang key='pwstrengthmoderate'}";
  19. window.langPasswordStrong = "{lang key='pwstrengthstrong'}";
  20. jQuery(document).ready(function() {
  21. jQuery("#inputNewPassword1").keyup(registerFormPasswordStrengthFeedback);
  22. });
  23. </script>
  24. {if $registrationDisabled}
  25. {include file="$template/includes/alert.tpl" type="error" msg="{lang key='registerCreateAccount'}"|cat:' <strong><a href="'|cat:"$WEB_ROOT"|cat:'/cart.php" class="alert-link">'|cat:"{lang key='registerCreateAccountOrder'}"|cat:'</a></strong>'}
  26. {/if}
  27. {if $errormessage}
  28. {include file="$template/includes/alert.tpl" type="error" errorshtml=$errormessage}
  29. {/if}
  30. {if !$registrationDisabled}
  31. <div id="registration">
  32. <form method="post" class="using-password-strength" action="{$smarty.server.PHP_SELF}" role="form" name="orderfrm" id="frmCheckout">
  33. <input type="hidden" name="register" value="true"/>
  34. <div id="containerNewUserSignup">
  35. {include file="$template/includes/linkedaccounts.tpl" linkContext="registration"}
  36. <h4>{$LANG.orderForm.personalInformation}</h4>
  37. <div class="TM-card">
  38. <div class="row">
  39. <div class="col-sm-6">
  40. <div class="form-group prepend-icon">
  41. <label for="inputFirstName" class="field-icon">
  42. <i class="fa fa-user"></i>
  43. </label>
  44. <input type="text" name="firstname" id="inputFirstName" class="field form-control" placeholder="{$LANG.orderForm.firstName}" value="{$clientfirstname}" {if !in_array('firstname', $optionalFields)}required{/if} autofocus>
  45. </div>
  46. </div>
  47. <div class="col-sm-6">
  48. <div class="form-group prepend-icon">
  49. <label for="inputLastName" class="field-icon">
  50. <i class="fa fa-user"></i>
  51. </label>
  52. <input type="text" name="lastname" id="inputLastName" class="field form-control" placeholder="{$LANG.orderForm.lastName}" value="{$clientlastname}" {if !in_array('lastname', $optionalFields)}required{/if}>
  53. </div>
  54. </div>
  55. <div class="col-sm-6">
  56. <div class="form-group prepend-icon">
  57. <label for="inputEmail" class="field-icon">
  58. <i class="fa fa-envelope"></i>
  59. </label>
  60. <input type="email" name="email" id="inputEmail" class="field form-control" placeholder="{$LANG.orderForm.emailAddress}" value="{$clientemail}">
  61. </div>
  62. </div>
  63. <div class="col-sm-6">
  64. <div class="form-group prepend-icon">
  65. <label for="inputPhone" class="field-icon">
  66. <i class="fa fa-phone"></i>
  67. </label>
  68. <input type="tel" name="phonenumber" id="inputPhone" class="field form-control" placeholder="{$LANG.orderForm.phoneNumber}" value="{$clientphonenumber}">
  69. </div>
  70. </div>
  71. </div>
  72. </div>
  73. <h4>{$LANG.orderForm.billingAddress}</h4>
  74. <div class="TM-card">
  75. <div class="row">
  76. <div class="col-sm-12">
  77. <div class="form-group prepend-icon">
  78. <label for="inputCompanyName" class="field-icon">
  79. <i class="fa fa-building"></i>
  80. </label>
  81. <input type="text" name="companyname" id="inputCompanyName" class="field form-control" placeholder="{$LANG.orderForm.companyName} ({$LANG.orderForm.optional})" value="{$clientcompanyname}">
  82. </div>
  83. </div>
  84. <div class="col-sm-12">
  85. <div class="form-group prepend-icon">
  86. <label for="inputAddress1" class="field-icon">
  87. <i class="far fa-building"></i>
  88. </label>
  89. <input type="text" name="address1" id="inputAddress1" class="field form-control" placeholder="{$LANG.orderForm.streetAddress}" value="{$clientaddress1}" {if !in_array('address1', $optionalFields)}required{/if}>
  90. </div>
  91. </div>
  92. <div class="col-sm-12">
  93. <div class="form-group prepend-icon">
  94. <label for="inputAddress2" class="field-icon">
  95. <i class="fa fa-map-marker"></i>
  96. </label>
  97. <input type="text" name="address2" id="inputAddress2" class="field form-control" placeholder="{$LANG.orderForm.streetAddress2}" value="{$clientaddress2}">
  98. </div>
  99. </div>
  100. <div class="col-sm-4">
  101. <div class="form-group prepend-icon">
  102. <label for="inputCity" class="field-icon">
  103. <i class="far fa-building"></i>
  104. </label>
  105. <input type="text" name="city" id="inputCity" class="field form-control" placeholder="{$LANG.orderForm.city}" value="{$clientcity}" {if !in_array('city', $optionalFields)}required{/if}>
  106. </div>
  107. </div>
  108. <div class="col-sm-5">
  109. <div class="form-group prepend-icon">
  110. <label for="state" class="field-icon" id="inputStateIcon">
  111. <i class="fa fa-map-signs"></i>
  112. </label>
  113. <label for="stateinput" class="field-icon" id="inputStateIcon">
  114. <i class="fa fa-map-signs"></i>
  115. </label>
  116. <input type="text" name="state" id="state" class="field form-control" placeholder="{$LANG.orderForm.state}" value="{$clientstate}" {if !in_array('state', $optionalFields)}required{/if}>
  117. </div>
  118. </div>
  119. <div class="col-sm-3">
  120. <div class="form-group prepend-icon">
  121. <label for="inputPostcode" class="field-icon">
  122. <i class="fa fa-certificate"></i>
  123. </label>
  124. <input type="text" name="postcode" id="inputPostcode" class="field form-control" placeholder="{$LANG.orderForm.postcode}" value="{$clientpostcode}" {if !in_array('postcode', $optionalFields)}required{/if}>
  125. </div>
  126. </div>
  127. <div class="col-sm-12">
  128. <div class="form-group prepend-icon">
  129. <label for="inputCountry" class="field-icon" id="inputCountryIcon">
  130. <i class="fa fa-globe"></i>
  131. </label>
  132. <select name="country" id="inputCountry" class="field form-control">
  133. {foreach $clientcountries as $countryCode => $countryName}
  134. <option value="{$countryCode}"{if (!$clientcountry && $countryCode eq $defaultCountry) || ($countryCode eq $clientcountry)} selected="selected"{/if}>
  135. {$countryName}
  136. </option>
  137. {/foreach}
  138. </select>
  139. </div>
  140. </div>
  141. {if $showTaxIdField}
  142. <div class="col-sm-{if $currencies}6{else}12{/if}">
  143. <div class="form-group prepend-icon">
  144. <label for="inputTaxId" class="field-icon">
  145. <i class="fas fa-building"></i>
  146. </label>
  147. <input type="text" name="tax_id" id="inputTaxId" class="field form-control" placeholder="{lang key=\WHMCS\Billing\Tax\Vat::getLabel()} ({$LANG.orderForm.optional})" value="{$clientTaxId}">
  148. </div>
  149. </div>
  150. {/if}
  151. {if $currencies}
  152. <div class="col-sm-{if $showTaxIdField}6{else}12{/if}">
  153. <div class="form-group prepend-icon">
  154. <label for="inputCurrency" class="field-icon">
  155. <i class="far fa-money-bill-alt"></i>
  156. </label>
  157. <select id="inputCurrency" name="currency" class="field form-control">
  158. {foreach from=$currencies item=curr}
  159. <option value="{$curr.id}"{if !$smarty.post.currency && $curr.default || $smarty.post.currency eq $curr.id } selected{/if}>{$curr.code}</option>
  160. {/foreach}
  161. </select>
  162. </div>
  163. </div>
  164. {/if}
  165. </div>
  166. </div>
  167. {if $customfields}
  168. <h4>{$LANG.orderadditionalrequiredinfo}</h4>
  169. <div class="TM-card">
  170. <p class="small text-muted">{lang key='orderForm.requiredField'}</p><hr />
  171. <div class="row">
  172. {if $customfields}
  173. {foreach $customfields as $customfield}
  174. <div class="col-sm-12">
  175. <div class="form-group">
  176. {if $customfield.type eq 'tickbox'}
  177. <label class=checkbox-inline" for="customfield{$customfield.id}">
  178. {$customfield.input}
  179. {$customfield.name} {$customfield.required}
  180. </lable>
  181. {if $customfield.description}<span class="field-help-text">{$customfield.description}</span>{/if}
  182. {else}
  183. <label for="customfield{$customfield.id}">{if $customfield.type eq "link"}<i class="fas fa-link"></i> {/if}{$customfield.name} {$customfield.required}</label>
  184. {$customfield.input}
  185. {if $customfield.description}<span class="field-help-text">{$customfield.description}</span>{/if}
  186. {/if}
  187. </div>
  188. </div>
  189. {/foreach}
  190. {/if}
  191. {if $customfields && count($customfields)%2 > 0 }
  192. <div class="clearfix"></div>
  193. {/if}
  194. </div>
  195. </div>
  196. {/if}
  197. </div>
  198. <div id="containerNewUserSecurity" {if $remote_auth_prelinked && !$securityquestions } class="hidden"{/if}>
  199. <h4>{$LANG.orderForm.accountSecurity}</h4>
  200. <div class="TM-card">
  201. <div id="containerPassword" class="row{if $remote_auth_prelinked && $securityquestions} hidden{/if}">
  202. <div id="passwdFeedback" style="display: none;" class="alert alert-info text-center col-sm-12"></div>
  203. <div class="col-sm-6">
  204. <div class="form-group prepend-icon">
  205. <label for="inputNewPassword1" class="field-icon">
  206. <i class="fa fa-lock"></i>
  207. </label>
  208. <input type="password" name="password" id="inputNewPassword1" data-error-threshold="{$pwStrengthErrorThreshold}" data-warning-threshold="{$pwStrengthWarningThreshold}" class="field form-control" placeholder="{$LANG.clientareapassword}" autocomplete="off"{if $remote_auth_prelinked} value="{$password}"{/if}>
  209. </div>
  210. </div>
  211. <div class="col-sm-6">
  212. <div class="form-group prepend-icon">
  213. <label for="inputNewPassword2" class="field-icon">
  214. <i class="fa fa-lock"></i>
  215. </label>
  216. <input type="password" name="password2" id="inputNewPassword2" class="field form-control" placeholder="{$LANG.clientareaconfirmpassword}" autocomplete="off"{if $remote_auth_prelinked} value="{$password}"{/if}>
  217. </div>
  218. </div>
  219. <div class="col-sm-6">
  220. <div class="form-group">
  221. <button type="button" class="btn btn-default btn-sm btn-xs-block generate-password" data-targetfields="inputNewPassword1,inputNewPassword2">
  222. {$LANG.generatePassword.btnLabel}
  223. </button>
  224. </div>
  225. </div>
  226. <div class="col-sm-6">
  227. <div class="password-strength-meter">
  228. <div class="progress">
  229. <div class="progress-bar bg-success bg-striped" role="progressbar" aria-valuenow="0" aria-valuemin="0" aria-valuemax="100" id="passwordStrengthMeterBar">
  230. </div>
  231. </div>
  232. <p class="text-center small text-muted" id="passwordStrengthTextLabel">{lang key='pwstrength'}: {lang key='pwstrengthenter'}</p>
  233. </div>
  234. </div>
  235. </div>
  236. </div>
  237. {if $securityquestions}
  238. <div class="TM-card">
  239. <div class="row">
  240. <div class="form-group col-sm-12">
  241. <select name="securityqid" id="inputSecurityQId" class="field form-control">
  242. <option value="">{$LANG.clientareasecurityquestion}</option>
  243. {foreach $securityquestions as $question}
  244. <option value="{$question.id}"{if $question.id eq $securityqid} selected{/if}>
  245. {$question.question}
  246. </option>
  247. {/foreach}
  248. </select>
  249. </div>
  250. <div class="col-sm-6">
  251. <div class="form-group prepend-icon">
  252. <label for="inputSecurityQAns" class="field-icon">
  253. <i class="fa fa-lock"></i>
  254. </label>
  255. <input type="password" name="securityqans" id="inputSecurityQAns" class="field form-control" placeholder="{$LANG.clientareasecurityanswer}" autocomplete="off">
  256. </div>
  257. </div>
  258. </div>
  259. </div>
  260. {/if}
  261. </div>
  262. {if $showMarketingEmailOptIn}
  263. <h4>{lang key='emailMarketing.joinOurMailingList'}</h4>
  264. <div class="TM-card">
  265. <p>{$marketingEmailOptInMessage}</p>
  266. <div class="panel panel-switch {if $marketingEmailOptIn} checked{/if}">
  267. <div class="panel-body">
  268. <span class="switch-label">{lang key='emailMarketing.joinOurMailingList'}: </span>
  269. <label class="switch switch--text">
  270. <input class="switch__checkbox" type="checkbox" name="marketingoptin" value="1"{if $marketingEmailOptIn} checked{/if}>
  271. <span class="switch__container"><span class="switch__handle"></span></span>
  272. </label>
  273. </div>
  274. </div>
  275. </div>
  276. {/if}
  277. {include file="$template/includes/captcha.tpl"}
  278. <br/>
  279. {if $accepttos}
  280. <div>
  281. <label class="form-check">
  282. <input type="checkbox" name="accepttos" class="form-check-input accepttos">
  283. {lang key='ordertosagreement'} <a href="{$tosurl}" target="_blank">{lang key='ordertos'}</a>
  284. </label>
  285. </div>
  286. {/if}
  287. <div class="form-actions">
  288. <input class="btn btn-lg btn-primary{$captcha->getButtonClass($captchaForm)}" type="submit" value="{$LANG.clientregistertitle}"/>
  289. </div>
  290. </form>
  291. </div>
  292. {/if}