addpart of postreg checking
This commit is contained in:
parent
910aa28c4f
commit
3610fdf1f9
6 changed files with 468 additions and 338 deletions
|
@ -2,6 +2,8 @@
|
|||
|
||||
use Intaro\RetailCrm\Component\ServiceLocator;
|
||||
use Intaro\RetailCrm\Service\CollectorCookieExtractor;
|
||||
use Intaro\RetailCrm\Service\LoyaltyService;
|
||||
use Intaro\RetailCrm\Service\UserAccountService;
|
||||
use Intaro\RetailCrm\Service\UserVerificationService;
|
||||
use Intaro\RetailCrm\Vendor\Doctrine\Common\Annotations\AnnotationReader;
|
||||
use Intaro\RetailCrm\Vendor\Doctrine\Common\Annotations\AnnotationRegistry;
|
||||
|
@ -29,5 +31,7 @@ ServiceLocator::registerServices([
|
|||
Logger::class,
|
||||
AnnotationReader::class,
|
||||
CollectorCookieExtractor::class,
|
||||
UserVerificationService::class
|
||||
UserVerificationService::class,
|
||||
UserAccountService::class,
|
||||
LoyaltyService::class
|
||||
]);
|
||||
|
|
|
@ -15,7 +15,7 @@ $arResult['LOYALTY_STATUS'] = ConfigProvider::getLoyaltyProgramStatus();
|
|||
global $USER;
|
||||
//Активна ПЛ ?
|
||||
if ($arResult['LOYALTY_STATUS'] === 'Y' && $USER->IsAuthorized()) {
|
||||
$service = new LoyaltyService();
|
||||
$service = new LoyaltyService();
|
||||
$arResult['LP_REGISTER'] = $service->checkRegInLp();
|
||||
}
|
||||
|
||||
|
|
|
@ -1,37 +1,37 @@
|
|||
<?
|
||||
/**
|
||||
* Bitrix Framework
|
||||
* @package bitrix
|
||||
* @package bitrix
|
||||
* @subpackage main
|
||||
* @copyright 2001-2014 Bitrix
|
||||
* @copyright 2001-2014 Bitrix
|
||||
*/
|
||||
|
||||
/**
|
||||
* Bitrix vars
|
||||
* @global CMain $APPLICATION
|
||||
* @global CUser $USER
|
||||
* @param array $arParams
|
||||
* @param array $arResult
|
||||
* @param array $arParams
|
||||
* @param array $arResult
|
||||
* @param CBitrixComponentTemplate $this
|
||||
* @global CUser $USER
|
||||
* @global CMain $APPLICATION
|
||||
*/
|
||||
|
||||
if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)
|
||||
die();
|
||||
if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED !== true) {
|
||||
die();
|
||||
}
|
||||
|
||||
if($arResult["SHOW_SMS_FIELD"] == true)
|
||||
{
|
||||
CJSCore::Init('phone_auth');
|
||||
if ($arResult["SHOW_SMS_FIELD"] == true) {
|
||||
CJSCore::Init('phone_auth');
|
||||
}
|
||||
?>
|
||||
<?php CUtil::InitJSCore( array('ajax' , 'jquery' , 'popup' )); ?>
|
||||
<?php CUtil::InitJSCore(['ajax', 'jquery', 'popup']); ?>
|
||||
<div id="uf_agree_pl_intaro_popup" style="display:none;">
|
||||
<?= $arResult['AGREEMENT_LOYALTY_PROGRAM']?>
|
||||
<?=$arResult['AGREEMENT_LOYALTY_PROGRAM']?>
|
||||
</div>
|
||||
<div id="uf_pd_proc_pl_intaro_popup" style="display:none;">
|
||||
<?= $arResult['AGREEMENT_PERSONAL_DATA']?>
|
||||
<?=$arResult['AGREEMENT_PERSONAL_DATA']?>
|
||||
</div>
|
||||
<script>
|
||||
BX.ready(function(){
|
||||
BX.ready(function() {
|
||||
const lpAgreementPopup = new BX.PopupWindow('lp_agreement_popup', window.body, {
|
||||
autoHide: true,
|
||||
offsetTop: 1,
|
||||
|
@ -45,15 +45,15 @@ if($arResult["SHOW_SMS_FIELD"] == true)
|
|||
});
|
||||
lpAgreementPopup.setContent(BX('uf_agree_pl_intaro_popup'));
|
||||
BX.bindDelegate(
|
||||
document.body, 'click', {className: 'lp_agreement_link' },
|
||||
BX.proxy(function(e){
|
||||
if(!e)
|
||||
document.body, 'click', {className: 'lp_agreement_link'},
|
||||
BX.proxy(function(e) {
|
||||
if (!e)
|
||||
e = window.event;
|
||||
lpAgreementPopup.show();
|
||||
return BX.PreventDefault(e);
|
||||
}, lpAgreementPopup)
|
||||
);
|
||||
|
||||
|
||||
const personalDataAgreementPopup = new BX.PopupWindow('personal_data_agreement_popup', window.body, {
|
||||
autoHide: true,
|
||||
offsetTop: 1,
|
||||
|
@ -68,8 +68,8 @@ if($arResult["SHOW_SMS_FIELD"] == true)
|
|||
personalDataAgreementPopup.setContent(BX('uf_pd_proc_pl_intaro_popup'));
|
||||
BX.bindDelegate(
|
||||
document.body, 'click', {className: 'personal_data_agreement_link'},
|
||||
BX.proxy(function(e){
|
||||
if(!e)
|
||||
BX.proxy(function(e) {
|
||||
if (!e)
|
||||
e = window.event;
|
||||
personalDataAgreementPopup.show();
|
||||
return BX.PreventDefault(e);
|
||||
|
@ -79,332 +79,339 @@ if($arResult["SHOW_SMS_FIELD"] == true)
|
|||
</script>
|
||||
|
||||
<div class="bx-auth-reg">
|
||||
|
||||
<?if($USER->IsAuthorized()):?>
|
||||
|
||||
<p><?php echo GetMessage("MAIN_REGISTER_AUTH") ?></p>
|
||||
|
||||
<?php if ($arResult['LOYALTY_STATUS'] === 'Y'): ?>
|
||||
<?php $this->addExternalJs(SITE_TEMPLATE_PATH . '/script.js'); ?>
|
||||
<?php if ($USER->IsAuthorized()): ?>
|
||||
|
||||
<?php if ($arResult['LP_ERRORS']): ?>
|
||||
<p><?php echo GetMessage("MAIN_REGISTER_AUTH") ?></p>
|
||||
|
||||
<?php if ($arResult['LOYALTY_STATUS'] === 'Y'): ?>
|
||||
<?php $this->addExternalJs(SITE_TEMPLATE_PATH . '/script.js'); ?>
|
||||
|
||||
<?php if (isset($arResult['LP_REGISTER']['msg'])) { ?>
|
||||
<div id="lpRegMsg"><?=$arResult['LP_REGISTER']['msg']?></div>
|
||||
<?php } ?>
|
||||
|
||||
<?php if (isset($arResult['LP_REGISTER']['form']['fields'])) { ?>
|
||||
<div id="lpRegForm">
|
||||
<div id="lpRegFormInputs">
|
||||
<?php
|
||||
foreach ($arResult['LP_REGISTER']['form']['fields'] as $key => $field){
|
||||
?>
|
||||
<label>
|
||||
<input
|
||||
name="<?=$key?>"
|
||||
type="<?=$field['type']?>"
|
||||
<?php if (isset($field['value'])) { ?>
|
||||
value="<?=$field['value']?>"
|
||||
<?php } ?>
|
||||
>
|
||||
</label>
|
||||
</div>
|
||||
<?php } ?>
|
||||
<input type="button" onclick="<?=$arResult['LP_REGISTER']['button']['action']?>()">
|
||||
|
||||
<?=GetMessage('REG_LP_ERROR')?>
|
||||
<?php else: ?>
|
||||
<!--елси регистрация в программе лояльности прошла успешно-->
|
||||
<?php if (isset($arResult['USER_FIELDS']['UF_EXT_REG_PL_INTARO']) && $arResult['USER_FIELDS']['UF_EXT_REG_PL_INTARO'] === 1): ?>
|
||||
<b><?=GetMessage('SUCCESS_PL_REG')?></b>
|
||||
<?php elseif ((int)$arResult['USER_FIELDS']['UF_EXT_REG_PL_INTARO'] === 0): ?>
|
||||
<div id="regbody">
|
||||
<b><?=GetMessage('REG_LP_MESSAGE')?></b><br>
|
||||
<input type="tel" id="loyaltyRegPhone" placeholder="+7 (900) 000-00-00">
|
||||
<br>
|
||||
<input type="text" id="loyaltyRegCard" placeholder="<?=GetMessage('LP_CARD_NUMBER')?>">
|
||||
<input type="button" onclick="addTelNumber(<?=$USER->GetID()?>)" value="<?=GetMessage('SEND')?>"/>
|
||||
<br>
|
||||
<div id="verificationCodeBlock" style="display: none;">
|
||||
<b><?=GetMessage('SEND_VERIFICATION_CODE')?></b><br>
|
||||
<input type="text" id="verificationCode" placeholder="<?=GetMessage('VERIFICATION_CODE')?>">
|
||||
<input type="button" onclick="sendVerificationCode()" value="<?=GetMessage('SEND')?>"/>
|
||||
</div>
|
||||
<div id="msg"></div>
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
<?php } ?>
|
||||
|
||||
<?php endif; ?>
|
||||
|
||||
<?php endif; ?>
|
||||
<?php else: ?>
|
||||
<?
|
||||
if (count($arResult["ERRORS"]) > 0):
|
||||
foreach ($arResult["ERRORS"] as $key => $error) {
|
||||
if (intval($key) == 0 && $key !== 0) {
|
||||
$arResult["ERRORS"][$key] = str_replace("#FIELD_NAME#", """ . GetMessage("REGISTER_FIELD_" . $key) . """, $error);
|
||||
}
|
||||
}
|
||||
|
||||
ShowError(implode("<br />", $arResult["ERRORS"]));
|
||||
|
||||
<?php else:?>
|
||||
<?
|
||||
if (count($arResult["ERRORS"]) > 0):
|
||||
foreach ($arResult["ERRORS"] as $key => $error)
|
||||
if (intval($key) == 0 && $key !== 0)
|
||||
$arResult["ERRORS"][$key] = str_replace("#FIELD_NAME#", """.GetMessage("REGISTER_FIELD_".$key).""", $error);
|
||||
elseif ($arResult["USE_EMAIL_CONFIRMATION"] === "Y"):
|
||||
?>
|
||||
<p><? echo GetMessage("REGISTER_EMAIL_WILL_BE_SENT") ?></p>
|
||||
<? endif ?>
|
||||
|
||||
<? if ($arResult["SHOW_SMS_FIELD"] == true): ?>
|
||||
|
||||
ShowError(implode("<br />", $arResult["ERRORS"]));
|
||||
<form method="post" action="<?=POST_FORM_ACTION_URI?>" name="regform">
|
||||
<?
|
||||
if ($arResult["BACKURL"] <> ''):
|
||||
?>
|
||||
<input type="hidden" name="backurl" value="<?=$arResult["BACKURL"]?>"/>
|
||||
<?
|
||||
endif;
|
||||
?>
|
||||
<input type="hidden" name="SIGNED_DATA" value="<?=htmlspecialcharsbx($arResult["SIGNED_DATA"])?>"/>
|
||||
<table>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td><? echo GetMessage("main_register_sms") ?><span class="starrequired">*</span></td>
|
||||
<td><input size="30" type="text" name="SMS_CODE" value="<?=htmlspecialcharsbx($arResult["SMS_CODE"])?>" autocomplete="off"/></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
<tfoot>
|
||||
<tr>
|
||||
<td></td>
|
||||
<td><input type="submit" name="code_submit_button" value="<? echo GetMessage("main_register_sms_send") ?>"/></td>
|
||||
</tr>
|
||||
</tfoot>
|
||||
</table>
|
||||
</form>
|
||||
|
||||
elseif($arResult["USE_EMAIL_CONFIRMATION"] === "Y"):
|
||||
?>
|
||||
<p><?echo GetMessage("REGISTER_EMAIL_WILL_BE_SENT")?></p>
|
||||
<?endif?>
|
||||
<script>
|
||||
new BX.PhoneAuth({
|
||||
containerId: 'bx_register_resend',
|
||||
errorContainerId: 'bx_register_error',
|
||||
interval: <?=$arResult["PHONE_CODE_RESEND_INTERVAL"]?>,
|
||||
data:
|
||||
<?=CUtil::PhpToJSObject([
|
||||
'signedData' => $arResult["SIGNED_DATA"],
|
||||
])?>,
|
||||
onError:
|
||||
function(response) {
|
||||
var errorDiv = BX('bx_register_error');
|
||||
var errorNode = BX.findChildByClassName(errorDiv, 'errortext');
|
||||
errorNode.innerHTML = '';
|
||||
for (var i = 0; i < response.errors.length; i++) {
|
||||
errorNode.innerHTML = errorNode.innerHTML + BX.util.htmlspecialchars(response.errors[i].message) + '<br>';
|
||||
}
|
||||
errorDiv.style.display = '';
|
||||
}
|
||||
});
|
||||
</script>
|
||||
|
||||
<?if($arResult["SHOW_SMS_FIELD"] == true):?>
|
||||
<div id="bx_register_error" style="display:none"><? ShowError("error") ?></div>
|
||||
|
||||
<form method="post" action="<?=POST_FORM_ACTION_URI?>" name="regform">
|
||||
<?
|
||||
if($arResult["BACKURL"] <> ''):
|
||||
?>
|
||||
<input type="hidden" name="backurl" value="<?=$arResult["BACKURL"]?>" />
|
||||
<?
|
||||
endif;
|
||||
?>
|
||||
<input type="hidden" name="SIGNED_DATA" value="<?=htmlspecialcharsbx($arResult["SIGNED_DATA"])?>" />
|
||||
<table>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td><?echo GetMessage("main_register_sms")?><span class="starrequired">*</span></td>
|
||||
<td><input size="30" type="text" name="SMS_CODE" value="<?=htmlspecialcharsbx($arResult["SMS_CODE"])?>" autocomplete="off" /></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
<tfoot>
|
||||
<tr>
|
||||
<td></td>
|
||||
<td><input type="submit" name="code_submit_button" value="<?echo GetMessage("main_register_sms_send")?>" /></td>
|
||||
</tr>
|
||||
</tfoot>
|
||||
</table>
|
||||
</form>
|
||||
<div id="bx_register_resend"></div>
|
||||
|
||||
<? else: ?>
|
||||
|
||||
<script>
|
||||
new BX.PhoneAuth({
|
||||
containerId: 'bx_register_resend',
|
||||
errorContainerId: 'bx_register_error',
|
||||
interval: <?=$arResult["PHONE_CODE_RESEND_INTERVAL"]?>,
|
||||
data:
|
||||
<?=CUtil::PhpToJSObject([
|
||||
'signedData' => $arResult["SIGNED_DATA"],
|
||||
])?>,
|
||||
onError:
|
||||
function(response)
|
||||
{
|
||||
var errorDiv = BX('bx_register_error');
|
||||
var errorNode = BX.findChildByClassName(errorDiv, 'errortext');
|
||||
errorNode.innerHTML = '';
|
||||
for(var i = 0; i < response.errors.length; i++)
|
||||
{
|
||||
errorNode.innerHTML = errorNode.innerHTML + BX.util.htmlspecialchars(response.errors[i].message) + '<br>';
|
||||
}
|
||||
errorDiv.style.display = '';
|
||||
}
|
||||
});
|
||||
</script>
|
||||
<form method="post" action="<?=POST_FORM_ACTION_URI?>" name="regform" enctype="multipart/form-data">
|
||||
<?
|
||||
if ($arResult["BACKURL"] <> ''):
|
||||
?>
|
||||
<input type="hidden" name="backurl" value="<?=$arResult["BACKURL"]?>"/>
|
||||
<?
|
||||
endif;
|
||||
?>
|
||||
|
||||
<div id="bx_register_error" style="display:none"><?ShowError("error")?></div>
|
||||
|
||||
<div id="bx_register_resend"></div>
|
||||
|
||||
<?else:?>
|
||||
|
||||
<form method="post" action="<?=POST_FORM_ACTION_URI?>" name="regform" enctype="multipart/form-data">
|
||||
<?
|
||||
if($arResult["BACKURL"] <> ''):
|
||||
?>
|
||||
<input type="hidden" name="backurl" value="<?=$arResult["BACKURL"]?>" />
|
||||
<?
|
||||
endif;
|
||||
?>
|
||||
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<td colspan="2"><b><?=GetMessage("AUTH_REGISTER")?></b></td>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<?foreach ($arResult["SHOW_FIELDS"] as $FIELD):?>
|
||||
<?if($FIELD == "AUTO_TIME_ZONE" && $arResult["TIME_ZONE_ENABLED"] == true):?>
|
||||
<tr>
|
||||
<td><?echo GetMessage("main_profile_time_zones_auto")?><?if ($arResult["REQUIRED_FIELDS_FLAGS"][$FIELD] == "Y"):?><span class="starrequired">*</span><?endif?></td>
|
||||
<td>
|
||||
<select name="REGISTER[AUTO_TIME_ZONE]" onchange="this.form.elements['REGISTER[TIME_ZONE]'].disabled=(this.value != 'N')">
|
||||
<option value=""><?echo GetMessage("main_profile_time_zones_auto_def")?></option>
|
||||
<option value="Y"<?=$arResult["VALUES"][$FIELD] == "Y" ? " selected=\"selected\"" : ""?>><?echo GetMessage("main_profile_time_zones_auto_yes")?></option>
|
||||
<option value="N"<?=$arResult["VALUES"][$FIELD] == "N" ? " selected=\"selected\"" : ""?>><?echo GetMessage("main_profile_time_zones_auto_no")?></option>
|
||||
</select>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><?echo GetMessage("main_profile_time_zones_zones")?></td>
|
||||
<td>
|
||||
<select name="REGISTER[TIME_ZONE]"<?if(!isset($_REQUEST["REGISTER"]["TIME_ZONE"])) echo 'disabled="disabled"'?>>
|
||||
<?foreach($arResult["TIME_ZONE_LIST"] as $tz=>$tz_name):?>
|
||||
<option value="<?=htmlspecialcharsbx($tz)?>"<?=$arResult["VALUES"]["TIME_ZONE"] == $tz ? " selected=\"selected\"" : ""?>><?=htmlspecialcharsbx($tz_name)?></option>
|
||||
<?endforeach?>
|
||||
</select>
|
||||
</td>
|
||||
</tr>
|
||||
<?else:?>
|
||||
<tr>
|
||||
<td><?=GetMessage("REGISTER_FIELD_".$FIELD)?>:<?if ($arResult["REQUIRED_FIELDS_FLAGS"][$FIELD] == "Y"):?><span class="starrequired">*</span><?endif?></td>
|
||||
<td><?
|
||||
switch ($FIELD)
|
||||
{
|
||||
case "PASSWORD":
|
||||
?><input size="30" type="password" name="REGISTER[<?=$FIELD?>]" value="<?=$arResult["VALUES"][$FIELD]?>" autocomplete="off" class="bx-auth-input" />
|
||||
<?if($arResult["SECURE_AUTH"]):?>
|
||||
<span class="bx-auth-secure" id="bx_auth_secure" title="<?echo GetMessage("AUTH_SECURE_NOTE")?>" style="display:none">
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<td colspan="2"><b><?=GetMessage("AUTH_REGISTER")?></b></td>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<? foreach ($arResult["SHOW_FIELDS"] as $FIELD): ?>
|
||||
<? if ($FIELD == "AUTO_TIME_ZONE" && $arResult["TIME_ZONE_ENABLED"] == true): ?>
|
||||
<tr>
|
||||
<td><? echo GetMessage("main_profile_time_zones_auto") ?><? if ($arResult["REQUIRED_FIELDS_FLAGS"][$FIELD] == "Y"): ?><span class="starrequired">*</span><? endif ?></td>
|
||||
<td>
|
||||
<select name="REGISTER[AUTO_TIME_ZONE]" onchange="this.form.elements['REGISTER[TIME_ZONE]'].disabled=(this.value != 'N')">
|
||||
<option value=""><? echo GetMessage("main_profile_time_zones_auto_def") ?></option>
|
||||
<option value="Y"<?=$arResult["VALUES"][$FIELD] == "Y" ? " selected=\"selected\"" : ""?>><? echo GetMessage("main_profile_time_zones_auto_yes") ?></option>
|
||||
<option value="N"<?=$arResult["VALUES"][$FIELD] == "N" ? " selected=\"selected\"" : ""?>><? echo GetMessage("main_profile_time_zones_auto_no") ?></option>
|
||||
</select>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><? echo GetMessage("main_profile_time_zones_zones") ?></td>
|
||||
<td>
|
||||
<select name="REGISTER[TIME_ZONE]"<? if (!isset($_REQUEST["REGISTER"]["TIME_ZONE"])) echo 'disabled="disabled"' ?>>
|
||||
<? foreach ($arResult["TIME_ZONE_LIST"] as $tz => $tz_name): ?>
|
||||
<option value="<?=htmlspecialcharsbx($tz)?>"<?=$arResult["VALUES"]["TIME_ZONE"]
|
||||
== $tz ? " selected=\"selected\"" : ""?>><?=htmlspecialcharsbx($tz_name)?></option>
|
||||
<? endforeach ?>
|
||||
</select>
|
||||
</td>
|
||||
</tr>
|
||||
<? else: ?>
|
||||
<tr>
|
||||
<td><?=GetMessage("REGISTER_FIELD_" . $FIELD)?>:<? if ($arResult["REQUIRED_FIELDS_FLAGS"][$FIELD] == "Y"): ?><span class="starrequired">*</span><? endif ?></td>
|
||||
<td><?
|
||||
switch ($FIELD) {
|
||||
case "PASSWORD":
|
||||
?><input size="30" type="password" name="REGISTER[<?=$FIELD?>]" value="<?=$arResult["VALUES"][$FIELD]?>" autocomplete="off" class="bx-auth-input"/>
|
||||
<? if ($arResult["SECURE_AUTH"]): ?>
|
||||
<span class="bx-auth-secure" id="bx_auth_secure" title="<? echo GetMessage("AUTH_SECURE_NOTE") ?>" style="display:none">
|
||||
<div class="bx-auth-secure-icon"></div>
|
||||
</span>
|
||||
<noscript>
|
||||
<span class="bx-auth-secure" title="<?echo GetMessage("AUTH_NONSECURE_NOTE")?>">
|
||||
<noscript>
|
||||
<span class="bx-auth-secure" title="<? echo GetMessage("AUTH_NONSECURE_NOTE") ?>">
|
||||
<div class="bx-auth-secure-icon bx-auth-secure-unlock"></div>
|
||||
</span>
|
||||
</noscript>
|
||||
<script type="text/javascript">
|
||||
document.getElementById('bx_auth_secure').style.display = 'inline-block';
|
||||
</script>
|
||||
<?endif?>
|
||||
<?
|
||||
break;
|
||||
case "CONFIRM_PASSWORD":
|
||||
?><input size="30" type="password" name="REGISTER[<?=$FIELD?>]" value="<?=$arResult["VALUES"][$FIELD]?>" autocomplete="off" /><?
|
||||
break;
|
||||
</noscript>
|
||||
<script type="text/javascript">
|
||||
document.getElementById('bx_auth_secure').style.display = 'inline-block';
|
||||
</script>
|
||||
<? endif ?>
|
||||
<?
|
||||
break;
|
||||
case "CONFIRM_PASSWORD":
|
||||
?><input size="30" type="password" name="REGISTER[<?=$FIELD?>]" value="<?=$arResult["VALUES"][$FIELD]?>" autocomplete="off" /><?
|
||||
break;
|
||||
|
||||
case "PERSONAL_GENDER":
|
||||
?><select name="REGISTER[<?=$FIELD?>]">
|
||||
<option value=""><?=GetMessage("USER_DONT_KNOW")?></option>
|
||||
<option value="M"<?=$arResult["VALUES"][$FIELD] == "M" ? " selected=\"selected\"" : ""?>><?=GetMessage("USER_MALE")?></option>
|
||||
<option value="F"<?=$arResult["VALUES"][$FIELD] == "F" ? " selected=\"selected\"" : ""?>><?=GetMessage("USER_FEMALE")?></option>
|
||||
</select><?
|
||||
break;
|
||||
|
||||
case "PERSONAL_COUNTRY":
|
||||
case "WORK_COUNTRY":
|
||||
?><select name="REGISTER[<?=$FIELD?>]"><?
|
||||
foreach ($arResult["COUNTRIES"]["reference_id"] as $key => $value) {
|
||||
?>
|
||||
<option value="<?=$value?>"<? if ($value
|
||||
== $arResult["VALUES"][$FIELD]): ?> selected="selected"<? endif ?>><?=$arResult["COUNTRIES"]["reference"][$key]?></option>
|
||||
<?
|
||||
}
|
||||
?></select><?
|
||||
break;
|
||||
|
||||
case "PERSONAL_PHOTO":
|
||||
case "WORK_LOGO":
|
||||
?><input size="30" type="file" name="REGISTER_FILES_<?=$FIELD?>" /><?
|
||||
break;
|
||||
|
||||
case "PERSONAL_NOTES":
|
||||
case "WORK_NOTES":
|
||||
?><textarea cols="30" rows="5" name="REGISTER[<?=$FIELD?>]"><?=$arResult["VALUES"][$FIELD]?></textarea><?
|
||||
break;
|
||||
default:
|
||||
if ($FIELD == "PERSONAL_BIRTHDAY"):?><small><?=$arResult["DATE_FORMAT"]?></small><br/><?endif;
|
||||
?><input size="30" type="text" name="REGISTER[<?=$FIELD?>]" value="<?=$arResult["VALUES"][$FIELD]?>" /><?
|
||||
if ($FIELD == "PERSONAL_BIRTHDAY") {
|
||||
$APPLICATION->IncludeComponent(
|
||||
'bitrix:main.calendar',
|
||||
'',
|
||||
[
|
||||
'SHOW_INPUT' => 'N',
|
||||
'FORM_NAME' => 'regform',
|
||||
'INPUT_NAME' => 'REGISTER[PERSONAL_BIRTHDAY]',
|
||||
'SHOW_TIME' => 'N',
|
||||
],
|
||||
null,
|
||||
["HIDE_ICONS" => "Y"]
|
||||
);
|
||||
}
|
||||
?><?
|
||||
} ?></td>
|
||||
</tr>
|
||||
<? endif ?>
|
||||
<? endforeach ?>
|
||||
<? // ********************* User properties ***************************************************?>
|
||||
<? if ($arResult["USER_PROPERTIES"]["SHOW"] == "Y"): ?>
|
||||
<tr>
|
||||
<td colspan="2"><?=strlen(trim($arParams["USER_PROPERTY_NAME"])) > 0 ? $arParams["USER_PROPERTY_NAME"] : GetMessage("USER_TYPE_EDIT_TAB")?></td>
|
||||
</tr>
|
||||
<? foreach ($arResult["USER_PROPERTIES"]["DATA"] as $FIELD_NAME => $arUserField): ?>
|
||||
<tr>
|
||||
<td><?=$arUserField["EDIT_FORM_LABEL"]?>:<? if ($arUserField["MANDATORY"] == "Y"): ?><span class="starrequired">*</span><? endif; ?></td>
|
||||
<td>
|
||||
<? $APPLICATION->IncludeComponent(
|
||||
"bitrix:system.field.edit",
|
||||
$arUserField["USER_TYPE"]["USER_TYPE_ID"],
|
||||
["bVarsFromForm" => $arResult["bVarsFromForm"], "arUserField" => $arUserField, "form_name" => "regform"], null, ["HIDE_ICONS" => "Y"]); ?></td>
|
||||
</tr>
|
||||
<? endforeach; ?>
|
||||
<? endif; ?>
|
||||
<?php if ($arResult['LOYALTY_STATUS'] === 'Y'): ?>
|
||||
<tr>
|
||||
<td></td>
|
||||
<td>
|
||||
<div class="fields boolean" id="main_UF_REG_IN_PL_INTARO">
|
||||
<div class="fields boolean">
|
||||
<input type="hidden" value="0" name="UF_REG_IN_PL_INTARO">
|
||||
<label>
|
||||
<input type="checkbox" value="1" name="UF_REG_IN_PL_INTARO" onchange="lpFieldToggle()" id="checkbox_UF_REG_IN_PL_INTARO"> <?=GetMessage("UF_REG_IN_PL_INTARO")?>
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="lp_toggled_block" style="display: none">
|
||||
<td><?=GetMessage("BONUS_CARD_NUMBER")?></td>
|
||||
<td><input size="30" type="text" name="UF_CARD_NUM_INTARO" value=""></td>
|
||||
</tr>
|
||||
<tr class="lp_toggled_block" style="display: none">
|
||||
<td>
|
||||
<?=GetMessage("REGISTER_FIELD_PERSONAL_PHONE")?>
|
||||
</td>
|
||||
<td>
|
||||
<input size="30" type="text" name="REGISTER[PERSONAL_PHONE]" value>
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="lp_toggled_block" style="display: none">
|
||||
<td>
|
||||
<div class="fields boolean" id="main_UF_AGREE_PL_INTARO">
|
||||
<div class="fields boolean">
|
||||
<input type="hidden" value="0" name="UF_AGREE_PL_INTARO">
|
||||
<label>
|
||||
<input class="lp_agree_checkbox" type="checkbox" value="1" name="UF_AGREE_PL_INTARO"> <?=GetMessage("YES")?>
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
</td>
|
||||
<td>
|
||||
<?=GetMessage("I_AM_AGREE")?> <a class="lp_agreement_link" href="javascript:void(0)"><?=GetMessage("UF_AGREE_PL_INTARO")?></a>
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="lp_toggled_block" style="display: none">
|
||||
<td>
|
||||
<div class="fields boolean" id="main_UF_PD_PROC_PL_INTARO">
|
||||
<div class="fields boolean"><input type="hidden" value="0" name="UF_PD_PROC_PL_INTARO">
|
||||
<label>
|
||||
<input class="lp_agree_checkbox" type="checkbox" value="1" name="UF_PD_PROC_PL_INTARO"> <?=GetMessage("YES")?>
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
</td>
|
||||
<td>
|
||||
<?=GetMessage("I_AM_AGREE")?> <a class="personal_data_agreement_link" href="javascript:void(0)"><?=GetMessage("UF_PD_PROC_PL_INTARO")?></a>
|
||||
</td>
|
||||
</tr>
|
||||
<?php endif; ?>
|
||||
<? // ******************** /User properties ***************************************************?>
|
||||
<?
|
||||
/* CAPTCHA */
|
||||
if ($arResult["USE_CAPTCHA"] == "Y") {
|
||||
?>
|
||||
<tr>
|
||||
<td colspan="2"><b><?=GetMessage("REGISTER_CAPTCHA_TITLE")?></b></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td>
|
||||
<td>
|
||||
<input type="hidden" name="captcha_sid" value="<?=$arResult["CAPTCHA_CODE"]?>"/>
|
||||
<img src="/bitrix/tools/captcha.php?captcha_sid=<?=$arResult["CAPTCHA_CODE"]?>" width="180" height="40" alt="CAPTCHA"/>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><?=GetMessage("REGISTER_CAPTCHA_PROMT")?>:<span class="starrequired">*</span></td>
|
||||
<td><input type="text" name="captcha_word" maxlength="50" value="" autocomplete="off"/></td>
|
||||
</tr>
|
||||
<?
|
||||
}
|
||||
/* !CAPTCHA */
|
||||
?>
|
||||
</tbody>
|
||||
<tfoot>
|
||||
<tr>
|
||||
<td></td>
|
||||
<td><input type="submit" name="register_submit_button" value="<?=GetMessage("AUTH_REGISTER")?>"/></td>
|
||||
</tr>
|
||||
</tfoot>
|
||||
</table>
|
||||
</form>
|
||||
|
||||
case "PERSONAL_GENDER":
|
||||
?><select name="REGISTER[<?=$FIELD?>]">
|
||||
<option value=""><?=GetMessage("USER_DONT_KNOW")?></option>
|
||||
<option value="M"<?=$arResult["VALUES"][$FIELD] == "M" ? " selected=\"selected\"" : ""?>><?=GetMessage("USER_MALE")?></option>
|
||||
<option value="F"<?=$arResult["VALUES"][$FIELD] == "F" ? " selected=\"selected\"" : ""?>><?=GetMessage("USER_FEMALE")?></option>
|
||||
</select><?
|
||||
break;
|
||||
<p><? echo $arResult["GROUP_POLICY"]["PASSWORD_REQUIREMENTS"]; ?></p>
|
||||
|
||||
<? endif //$arResult["SHOW_SMS_FIELD"] == true ?>
|
||||
|
||||
case "PERSONAL_COUNTRY":
|
||||
case "WORK_COUNTRY":
|
||||
?><select name="REGISTER[<?=$FIELD?>]"><?
|
||||
foreach ($arResult["COUNTRIES"]["reference_id"] as $key => $value)
|
||||
{
|
||||
?><option value="<?=$value?>"<?if ($value == $arResult["VALUES"][$FIELD]):?> selected="selected"<?endif?>><?=$arResult["COUNTRIES"]["reference"][$key]?></option>
|
||||
<?
|
||||
}
|
||||
?></select><?
|
||||
break;
|
||||
|
||||
case "PERSONAL_PHOTO":
|
||||
case "WORK_LOGO":
|
||||
?><input size="30" type="file" name="REGISTER_FILES_<?=$FIELD?>" /><?
|
||||
break;
|
||||
|
||||
case "PERSONAL_NOTES":
|
||||
case "WORK_NOTES":
|
||||
?><textarea cols="30" rows="5" name="REGISTER[<?=$FIELD?>]"><?=$arResult["VALUES"][$FIELD]?></textarea><?
|
||||
break;
|
||||
default:
|
||||
if ($FIELD == "PERSONAL_BIRTHDAY"):?><small><?=$arResult["DATE_FORMAT"]?></small><br /><?endif;
|
||||
?><input size="30" type="text" name="REGISTER[<?=$FIELD?>]" value="<?=$arResult["VALUES"][$FIELD]?>" /><?
|
||||
if ($FIELD == "PERSONAL_BIRTHDAY")
|
||||
$APPLICATION->IncludeComponent(
|
||||
'bitrix:main.calendar',
|
||||
'',
|
||||
array(
|
||||
'SHOW_INPUT' => 'N',
|
||||
'FORM_NAME' => 'regform',
|
||||
'INPUT_NAME' => 'REGISTER[PERSONAL_BIRTHDAY]',
|
||||
'SHOW_TIME' => 'N'
|
||||
),
|
||||
null,
|
||||
array("HIDE_ICONS"=>"Y")
|
||||
);
|
||||
?><?
|
||||
}?></td>
|
||||
</tr>
|
||||
<?endif?>
|
||||
<?endforeach?>
|
||||
<?// ********************* User properties ***************************************************?>
|
||||
<?if($arResult["USER_PROPERTIES"]["SHOW"] == "Y"):?>
|
||||
<tr><td colspan="2"><?=strlen(trim($arParams["USER_PROPERTY_NAME"])) > 0 ? $arParams["USER_PROPERTY_NAME"] : GetMessage("USER_TYPE_EDIT_TAB")?></td></tr>
|
||||
<?foreach ($arResult["USER_PROPERTIES"]["DATA"] as $FIELD_NAME => $arUserField):?>
|
||||
<tr><td><?=$arUserField["EDIT_FORM_LABEL"]?>:<?if ($arUserField["MANDATORY"]=="Y"):?><span class="starrequired">*</span><?endif;?></td><td>
|
||||
<?$APPLICATION->IncludeComponent(
|
||||
"bitrix:system.field.edit",
|
||||
$arUserField["USER_TYPE"]["USER_TYPE_ID"],
|
||||
array("bVarsFromForm" => $arResult["bVarsFromForm"], "arUserField" => $arUserField, "form_name" => "regform"), null, array("HIDE_ICONS"=>"Y"));?></td></tr>
|
||||
<?endforeach;?>
|
||||
<?endif;?>
|
||||
<?php if ($arResult['LOYALTY_STATUS'] === 'Y'): ?>
|
||||
<tr>
|
||||
<td></td>
|
||||
<td>
|
||||
<div class="fields boolean" id="main_UF_REG_IN_PL_INTARO">
|
||||
<div class="fields boolean">
|
||||
<input type="hidden" value="0" name="UF_REG_IN_PL_INTARO">
|
||||
<label>
|
||||
<input type="checkbox" value="1" name="UF_REG_IN_PL_INTARO" onchange="lpFieldToggle()" id="checkbox_UF_REG_IN_PL_INTARO"> <?=GetMessage("UF_REG_IN_PL_INTARO")?>
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="lp_toggled_block" style="display: none">
|
||||
<td><?=GetMessage("BONUS_CARD_NUMBER")?></td>
|
||||
<td><input size="30" type="text" name="UF_CARD_NUM_INTARO" value=""></td>
|
||||
</tr>
|
||||
<tr class="lp_toggled_block" style="display: none">
|
||||
<td>
|
||||
<?=GetMessage("REGISTER_FIELD_PERSONAL_PHONE")?>
|
||||
</td>
|
||||
<td>
|
||||
<input size="30" type="text" name="REGISTER[PERSONAL_PHONE]" value>
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="lp_toggled_block" style="display: none">
|
||||
<td>
|
||||
<div class="fields boolean" id="main_UF_AGREE_PL_INTARO">
|
||||
<div class="fields boolean">
|
||||
<input type="hidden" value="0" name="UF_AGREE_PL_INTARO">
|
||||
<label>
|
||||
<input class="lp_agree_checkbox" type="checkbox" value="1" name="UF_AGREE_PL_INTARO"> <?=GetMessage("YES")?>
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
</td>
|
||||
<td>
|
||||
<?=GetMessage("I_AM_AGREE")?> <a class="lp_agreement_link" href="javascript:void(0)"><?=GetMessage("UF_AGREE_PL_INTARO")?></a>
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="lp_toggled_block" style="display: none">
|
||||
<td>
|
||||
<div class="fields boolean" id="main_UF_PD_PROC_PL_INTARO">
|
||||
<div class="fields boolean"><input type="hidden" value="0" name="UF_PD_PROC_PL_INTARO">
|
||||
<label>
|
||||
<input class="lp_agree_checkbox" type="checkbox" value="1" name="UF_PD_PROC_PL_INTARO"> <?=GetMessage("YES")?>
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
</td>
|
||||
<td>
|
||||
<?=GetMessage("I_AM_AGREE")?> <a class="personal_data_agreement_link" href="javascript:void(0)"><?=GetMessage("UF_PD_PROC_PL_INTARO")?></a>
|
||||
</td>
|
||||
</tr>
|
||||
<?php endif; ?>
|
||||
<?// ******************** /User properties ***************************************************?>
|
||||
<?
|
||||
/* CAPTCHA */
|
||||
if ($arResult["USE_CAPTCHA"] == "Y")
|
||||
{
|
||||
?>
|
||||
<tr>
|
||||
<td colspan="2"><b><?=GetMessage("REGISTER_CAPTCHA_TITLE")?></b></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td>
|
||||
<td>
|
||||
<input type="hidden" name="captcha_sid" value="<?=$arResult["CAPTCHA_CODE"]?>" />
|
||||
<img src="/bitrix/tools/captcha.php?captcha_sid=<?=$arResult["CAPTCHA_CODE"]?>" width="180" height="40" alt="CAPTCHA" />
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><?=GetMessage("REGISTER_CAPTCHA_PROMT")?>:<span class="starrequired">*</span></td>
|
||||
<td><input type="text" name="captcha_word" maxlength="50" value="" autocomplete="off" /></td>
|
||||
</tr>
|
||||
<?
|
||||
}
|
||||
/* !CAPTCHA */
|
||||
?>
|
||||
</tbody>
|
||||
<tfoot>
|
||||
<tr>
|
||||
<td></td>
|
||||
<td><input type="submit" name="register_submit_button" value="<?=GetMessage("AUTH_REGISTER")?>" /></td>
|
||||
</tr>
|
||||
</tfoot>
|
||||
</table>
|
||||
</form>
|
||||
|
||||
<p><?echo $arResult["GROUP_POLICY"]["PASSWORD_REQUIREMENTS"];?></p>
|
||||
|
||||
<?endif //$arResult["SHOW_SMS_FIELD"] == true ?>
|
||||
|
||||
<p><span class="starrequired">*</span><?=GetMessage("AUTH_REQ")?></p>
|
||||
|
||||
<?endif?>
|
||||
<p><span class="starrequired">*</span><?=GetMessage("AUTH_REQ")?></p>
|
||||
|
||||
<? endif ?>
|
||||
</div>
|
6
intaro.retailcrm/lib/lang/ru/service/loyaltyservice.php
Normal file
6
intaro.retailcrm/lib/lang/ru/service/loyaltyservice.php
Normal file
|
@ -0,0 +1,6 @@
|
|||
<?php
|
||||
$MESS["REG_COMPLETE"] = 'Аккаунт в программе лояльности создан и активирован';
|
||||
$MESS["ACTIVATE_YOUR_ACCOUNT"] = 'Аккаунт в программе лояльности создан, но не активирован. Для активации заполните форму.';
|
||||
$MESS["ACTIVATE"] = 'Активировать';
|
||||
$MESS["SMS_VERIFICATION"] = 'Для активации аккаунта необходимо ввести код верификации, который был отправлен на ваш телефон';
|
||||
$MESS["SEND"] = 'Отправить';
|
|
@ -24,6 +24,8 @@ use Bitrix\Sale\Order;
|
|||
use CUser;
|
||||
use Exception;
|
||||
use Intaro\RetailCrm\Component\Factory\ClientFactory;
|
||||
use Intaro\RetailCrm\Component\ServiceLocator;
|
||||
use Intaro\RetailCrm\Model\Api\Request\Loyalty\Account\LoyaltyAccountActivateRequest;
|
||||
use Intaro\RetailCrm\Model\Api\Request\Loyalty\LoyaltyCalculateRequest;
|
||||
use Intaro\RetailCrm\Model\Api\Request\Order\Loyalty\OrderLoyaltyApplyRequest;
|
||||
use Intaro\RetailCrm\Model\Api\SerializedOrderProduct;
|
||||
|
@ -36,6 +38,14 @@ use Intaro\RetailCrm\Repository\PaySystemActionRepository;
|
|||
*/
|
||||
class LoyaltyService
|
||||
{
|
||||
const STANDART_FIELDS = [
|
||||
'UF_REG_IN_PL_INTARO_TITLE' => 'checkbox',
|
||||
'UF_AGREE_PL_INTARO_TITLE' => 'checkbox',
|
||||
'UF_PD_PROC_PL_INTARO_TITLE' => 'checkbox',
|
||||
'UF_CARD_NUM_INTARO' => 'text',
|
||||
'PERSONAL_PHONE' => 'text',
|
||||
];
|
||||
|
||||
/**
|
||||
* @var \Intaro\RetailCrm\Component\ApiClient\ClientAdapter
|
||||
*/
|
||||
|
@ -160,7 +170,11 @@ class LoyaltyService
|
|||
global $USER;
|
||||
$rsUser = CUser::GetByID($USER->GetID());
|
||||
$userFields = $rsUser->Fetch();
|
||||
$regInLp = [];
|
||||
$regInLp = [];
|
||||
|
||||
if (!$userFields) {
|
||||
return [];
|
||||
}
|
||||
|
||||
//Изъявлял ли ранее пользователь желание участвовать в ПЛ?
|
||||
if (isset($userFields['UF_REG_IN_PL_INTARO'])
|
||||
|
@ -168,7 +182,7 @@ class LoyaltyService
|
|||
) {
|
||||
//ДА. Существует ли у него аккаунт?
|
||||
if (isset($userFields['UF_LP_ID_INTARO'])
|
||||
&& $userFields['UF_LP_ID_INTARO'] === '1'
|
||||
&& !empty($userFields['UF_LP_ID_INTARO'])
|
||||
) {
|
||||
//ДА. Активен ли его аккаунт?
|
||||
if (isset($userFields['UF_EXT_REG_PL_INTARO'])
|
||||
|
@ -177,18 +191,106 @@ class LoyaltyService
|
|||
//ДА. Отображаем сообщение "Вы зарегистрированы в Программе лояльности"
|
||||
$regInLp['msg'] = GetMessage('REG_COMPLETE');
|
||||
} else {
|
||||
//НЕТ. Отображаем форму для активации
|
||||
$regInLp['msg'] = GetMessage('ACTIVATE_YOUR_ACCOUNT');
|
||||
//НЕТ. Акаунт не активен
|
||||
/** @var \Intaro\RetailCrm\Service\UserAccountService $userService */
|
||||
$userService = ServiceLocator::get(UserAccountService::class);
|
||||
$extFields = $userService->getExtFields($userFields['UF_EXT_REG_PL_INTARO']);
|
||||
|
||||
//Есть ли обязательные поля, которые нужно заполнить для завершения активации?
|
||||
if (!empty($extFields)) {
|
||||
//Да, есть незаполненные обязательные поля
|
||||
$regInLp = [
|
||||
'msg' => GetMessage('ACTIVATE_YOUR_ACCOUNT'),
|
||||
'form' => [
|
||||
'button' => [
|
||||
'name' => GetMessage('ACTIVATE'),
|
||||
'action' => 'activateAccount',
|
||||
],
|
||||
'fields' => $extFields,
|
||||
],
|
||||
];
|
||||
} else {
|
||||
//НЕТ. Обязательных незаполненных полей нет. Тогда пробуем активировать аккаунт
|
||||
|
||||
$activateResponse = $userService->activateLoyaltyAccount($userFields['UF_EXT_REG_PL_INTARO']);
|
||||
|
||||
if ($activateResponse !== null
|
||||
&& isset($activateResponse->loyaltyAccount->active)
|
||||
&& $activateResponse->loyaltyAccount->active === true) {
|
||||
$regInLp['msg'] = GetMessage('REG_COMPLETE');
|
||||
}
|
||||
|
||||
//нужна смс верификация
|
||||
if (isset($activateResponse->verification, $activateResponse->verification->checkId)
|
||||
&& $activateResponse !== null
|
||||
&& !isset($activateResponse->verification->verifiedAt)
|
||||
) {
|
||||
$regInLp = [
|
||||
'msg' => GetMessage('SMS_VERIFICATION'),
|
||||
'form' => [
|
||||
'button' => [
|
||||
'name' => GetMessage('SEND'),
|
||||
'action' => 'sendSmsCode',
|
||||
],
|
||||
'fields' => [
|
||||
'smsVerificationCode' => [
|
||||
'type' => 'text',
|
||||
],
|
||||
'checkId' => [
|
||||
'type' => 'hidden',
|
||||
'value' => $activateResponse->verification->checkId,
|
||||
],
|
||||
],
|
||||
],
|
||||
];
|
||||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
//НЕТ. Выясняем, каких полей не хватает для СОЗДАНИЯ аккаунта, выводим форму
|
||||
$regInLp['msg'] = GetMessage('COMPLETE_YOUR_REGISTRATION');
|
||||
$regInLp['msg'] = GetMessage('COMPLETE_YOUR_REGISTRATION');
|
||||
$regInLp['form'] = [
|
||||
'button' => [
|
||||
'name' => GetMessage('CREATE'),
|
||||
'action' => 'createAccount',
|
||||
],
|
||||
'fields' => $userFields,
|
||||
];
|
||||
}
|
||||
|
||||
} else {
|
||||
//НЕТ. Отображаем форму на создание новой регистрации в ПЛ
|
||||
$regInLp['msg'] = GetMessage('INVITATION_TO_REGISTER');
|
||||
$regInLp['msg'] = GetMessage('INVITATION_TO_REGISTER');
|
||||
$regInLp['form'] = [
|
||||
'button' => [
|
||||
'name' => GetMessage('CREATE'),
|
||||
'action' => 'createAccount',
|
||||
],
|
||||
'fields' => $this->getStandartFields(),
|
||||
];
|
||||
}
|
||||
return $regInLp;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param bool $userFields
|
||||
* @return array
|
||||
*/
|
||||
private function getStandartFields(bool $userFields)
|
||||
{
|
||||
$resultFields = [];
|
||||
foreach (self::STANDART_FIELDS as $key => $value) {
|
||||
if ($value === 'text' && empty($userFields[$key])) {
|
||||
$resultFields[$key] = [
|
||||
'value' => $value,
|
||||
];
|
||||
}
|
||||
if ($value === 'checkbox' && $userFields[$key] !== '1') {
|
||||
$resultFields[$key] = [
|
||||
'value' => $value,
|
||||
];
|
||||
}
|
||||
}
|
||||
return $resultFields;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -119,6 +119,17 @@ class UserAccountService
|
|||
return $this->client->createLoyaltyAccount($createRequest);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param $ufExtRegPlIntaro
|
||||
* @return array
|
||||
*/
|
||||
public function getExtFields($ufExtRegPlIntaro): array
|
||||
{
|
||||
//узнаем, какие поля не заполненые у этого пользователя
|
||||
//если все заполнено, то пытаемся активировать
|
||||
//если в ответ получаем номер кода подтверждения, то отдаем два поля: скрытое с номером отправки и инпут для ввода кода проверки
|
||||
}
|
||||
|
||||
/**
|
||||
* @throws \Exception
|
||||
*/
|
||||
|
|
Loading…
Add table
Reference in a new issue