diff --git a/intaro.retailcrm/classes/general/config/retailcrm.json b/intaro.retailcrm/classes/general/config/retailcrm.json index 147d3d10..af57234e 100644 --- a/intaro.retailcrm/classes/general/config/retailcrm.json +++ b/intaro.retailcrm/classes/general/config/retailcrm.json @@ -81,8 +81,7 @@ "default": false }, "subscribed": { - "type": "bool", - "default": false + "type": "string" }, "commentary": { "type": "string" diff --git a/intaro.retailcrm/classes/general/events/RetailCrmEvent.php b/intaro.retailcrm/classes/general/events/RetailCrmEvent.php index 0453b0c0..383a7551 100644 --- a/intaro.retailcrm/classes/general/events/RetailCrmEvent.php +++ b/intaro.retailcrm/classes/general/events/RetailCrmEvent.php @@ -68,25 +68,6 @@ class RetailCrmEvent return true; } - /** - * @param $arFields - * - * @return bool - * @throws InvalidArgumentException - */ - public static function OnBeforeUserUpdate(&$arFields) - { - if (isset($GLOBALS['RETAIL_CRM_HISTORY']) && $GLOBALS['RETAIL_CRM_HISTORY']) { - return true; - } - - if (empty($arFields['UF_SUBSCRIBE_USER_EMAIL'])) { - $arFields['UF_SUBSCRIBE_USER_EMAIL'] = false; - } - - return true; - } - /** * onUpdateOrder * diff --git a/intaro.retailcrm/classes/general/user/RetailCrmUser.php b/intaro.retailcrm/classes/general/user/RetailCrmUser.php index 668ff8bb..01f09069 100644 --- a/intaro.retailcrm/classes/general/user/RetailCrmUser.php +++ b/intaro.retailcrm/classes/general/user/RetailCrmUser.php @@ -90,7 +90,7 @@ class RetailCrmUser if ($found) { $normalizer = new RestNormalizer(); $customer = $normalizer->normalize($customer, 'customers'); - $customer = self::getBooleanFields($customer); + $customer = self::getBooleanFields($customer, $arFields); if (function_exists('retailCrmBeforeCustomerSend')) { $newResCustomer = retailCrmBeforeCustomerSend($customer); @@ -128,10 +128,6 @@ class RetailCrmUser $customer['address']['text'] = $arFields['PERSONAL_STREET'] ?? null; $customer['address']['index'] = $arFields['PERSONAL_ZIP'] ?? null; - if (!empty($arFields['UF_SUBSCRIBE_USER_EMAIL']) && $arFields['UF_SUBSCRIBE_USER_EMAIL'] == true) { - $customer['subscribed'] = true; - } - if (mb_strlen($arFields['EMAIL']) < 100) { $customer['email'] = $arFields['EMAIL']; } @@ -139,10 +135,14 @@ class RetailCrmUser return $customer; } - private static function getBooleanFields($customer) + private static function getBooleanFields($customer, $arFields) { - if (empty($customer['subscribed'])) { - $customer['subscribed'] = false; + if (isset($arFields['UF_SUBSCRIBE_USER_EMAIL'])) { + if ($arFields['UF_SUBSCRIBE_USER_EMAIL'] === "1") { + $customer['subscribed'] = true; + } else { + $customer['subscribed'] = false; + } } return $customer; diff --git a/intaro.retailcrm/install/export/local/components/intaro/sale.personal.section/templates/.default/bitrix/main.profile/.default/template.php b/intaro.retailcrm/install/export/local/components/intaro/sale.personal.section/templates/.default/bitrix/main.profile/.default/template.php index a1bcf7e3..e0ccf207 100644 --- a/intaro.retailcrm/install/export/local/components/intaro/sale.personal.section/templates/.default/bitrix/main.profile/.default/template.php +++ b/intaro.retailcrm/install/export/local/components/intaro/sale.personal.section/templates/.default/bitrix/main.profile/.default/template.php @@ -117,7 +117,8 @@ use Bitrix\Main\Localization\Loc;
- /> + + />
diff --git a/intaro.retailcrm/install/index.php b/intaro.retailcrm/install/index.php index 67518d3e..5f962a4c 100644 --- a/intaro.retailcrm/install/index.php +++ b/intaro.retailcrm/install/index.php @@ -1066,7 +1066,6 @@ class intaro_retailcrm extends CModule RegisterModule($this->MODULE_ID); RegisterModuleDependences('sale', 'OnOrderUpdate', $this->MODULE_ID, 'RetailCrmEvent', 'onUpdateOrder'); RegisterModuleDependences('main', 'OnAfterUserUpdate', $this->MODULE_ID, 'RetailCrmEvent', 'OnAfterUserUpdate'); - RegisterModuleDependences('main', 'OnBeforeUserUpdate', $this->MODULE_ID, 'RetailCrmEvent', 'OnBeforeUserUpdate'); RegisterModuleDependences('sale', 'OnSaleOrderDeleted', $this->MODULE_ID, 'RetailCrmEvent', 'orderDelete'); RegisterModuleDependences('sale', 'OnSalePaymentEntitySaved', $this->MODULE_ID, 'RetailCrmEvent', 'paymentSave'); RegisterModuleDependences('sale', 'OnSalePaymentEntityDeleted', $this->MODULE_ID, 'RetailCrmEvent', 'paymentDelete'); @@ -1265,7 +1264,6 @@ class intaro_retailcrm extends CModule UnRegisterModuleDependences('sale', 'OnOrderUpdate', $this->MODULE_ID, 'RetailCrmEvent', 'onUpdateOrder'); UnRegisterModuleDependences('main', 'OnAfterUserUpdate', $this->MODULE_ID, 'RetailCrmEvent', 'OnAfterUserUpdate'); - UnRegisterModuleDependences('main', 'OnBeforeUserUpdate', $this->MODULE_ID, 'RetailCrmEvent', 'OnBeforeUserUpdate'); UnRegisterModuleDependences('sale', 'OnSaleOrderDeleted', $this->MODULE_ID, 'RetailCrmEvent', 'orderDelete'); UnRegisterModuleDependences('main', 'OnBeforeProlog', $this->MODULE_ID, 'RetailCrmCollector', 'add'); UnRegisterModuleDependences('main', 'OnBeforeProlog', $this->MODULE_ID, 'RetailCrmUa', 'add'); diff --git a/intaro.retailcrm/updater.php b/intaro.retailcrm/updater.php index dd05ef60..fe387d0c 100644 --- a/intaro.retailcrm/updater.php +++ b/intaro.retailcrm/updater.php @@ -1140,7 +1140,6 @@ class UpdateSubscribe RegisterModuleDependences('main', 'OnAfterUserRegister', 'intaro.retailcrm', 'RetailCrmEvent', 'OnAfterUserRegister'); RegisterModuleDependences('main', 'OnAfterUserAdd', 'intaro.retailcrm', 'RetailCrmEvent', 'OnAfterUserAdd'); - RegisterModuleDependences('main', 'OnBeforeUserUpdate', 'intaro.retailcrm', 'RetailCrmEvent', 'OnBeforeUserUpdate'); return $this; }