From 5245ef56b89d92c4b8e4a3ed2041a2f2aad9bfd5 Mon Sep 17 00:00:00 2001 From: Ivan Chaplygin Date: Thu, 16 May 2024 16:57:40 +0300 Subject: [PATCH] ref #72069 coupon code format change Adding text translations Code corrections legal entity check has been corrected --- resources/pot/retailcrm-es_ES.pot | 114 ++++++++++++++++-- resources/pot/retailcrm-ru_RU.pot | 4 +- src/include/class-wc-retailcrm-base.php | 10 +- src/include/class-wc-retailcrm-loyalty.php | 47 ++++---- src/include/class-wc-retailcrm-orders.php | 9 +- src/include/functions.php | 5 + .../class-wc-retailcrm-loyalty-validator.php | 12 +- src/languages/retailcrm-es_ES.l10n.php | 49 +++++++- src/languages/retailcrm-es_ES.mo | Bin 15486 -> 18277 bytes src/languages/retailcrm-ru_RU.l10n.php | 49 +++++++- src/languages/retailcrm-ru_RU.mo | Bin 22336 -> 22511 bytes tests/datasets/data-loyalty-retailcrm.php | 27 +++-- tests/test-wc-retailcrm-loyalty.php | 17 ++- .../test-wc-retailcrm-loyalty-validator.php | 2 +- 14 files changed, 273 insertions(+), 72 deletions(-) diff --git a/resources/pot/retailcrm-es_ES.pot b/resources/pot/retailcrm-es_ES.pot index b794686..2dc4ce0 100644 --- a/resources/pot/retailcrm-es_ES.pot +++ b/resources/pot/retailcrm-es_ES.pot @@ -449,31 +449,112 @@ msgid "Loyalty program" msgstr "Programa de fidelización" msgid "Activate program loyalty" -msgstr "Activar el programa de fidelización" +msgstr "Activar programa de fidelización" msgid "Enable this setting for activate program loyalty on site" -msgstr "Active esta opción para activar el programa de fidelización en el sitio web" +msgstr "Activa esta configuración para activar programa de fidelización en la página web" msgid "Terms of loyalty program" -msgstr "Condiciones del programa de fidelidad" +msgstr "Condiciones del programa de fidelización" msgid "Insert the terms and conditions of the loyalty program" -msgstr "Inserte las condiciones de participación en el programa de fidelidad" +msgstr "Introduce las condiciones del programa de fidelización" msgid "Conditions of personal data processing" -msgstr "Condiciones del tratamiento de datos personales" +msgstr "Condiciones de procesamiento de datos personales" msgid "Insert the terms and conditions for processing personal data" -msgstr "Inserte las condiciones para el tratamiento de datos personales" +msgstr "Introduce las condiciones para el procesamiento de datos personales" msgid "To activate the loyalty program it is necessary to activate the 'enable use of coupons option'" -msgstr "Para activar el programa de fidelización es necesario activar la opción 'habilitar uso de cupones'." +msgstr "Para activar el programa de fidelización es necesario activar la opción 'habilitar el uso de cupones'" + +msgid "Bonus account" +msgstr "Cuenta de bonos" + +msgid "Participation ID: " +msgstr "ID de participación: " + +msgid "Current level: " +msgstr "Nivel actual: " + +msgid "Bonuses on the account: " +msgstr "Bonos en la cuenta: " + +msgid "Bonus card number: " +msgstr "Número de tarjeta de bonos: " + +msgid "Date of registration: " +msgstr "Fecha de registro: " + +msgid "Current level rules" +msgstr "Reglas del nivel actual" + +msgid "Required amount of purchases to move to the next level: " +msgstr "Cantidad de compras necesarias para pasar al siguiente nivel: " + +msgid "Activate participation in the loyalty program" +msgstr "Activar participación en el programa de fidelización" + +msgid "Send" +msgstr "Enviar" + +msgid "To register in the loyalty program, fill in the form:" +msgstr "Para registrarse en el programa de fidelización, rellena el formulario:" + +msgid " I agree with " +msgstr " Estoy de acuerdo con " + +msgid "loyalty program terms" +msgstr "términos del programa de fidelización" + +msgid "terms of personal data processing" +msgstr "términos de procesamiento de datos personales" + +msgid "Phone" +msgstr "Teléfono" + +msgid "Error while registering in the loyalty program. Try again later" +msgstr "Error al registrarse en el programa de fidelización. Inténtalo de nuevo más tarde" + +msgid "The card is not linked" +msgstr "La tarjeta no está vinculada" + +msgid "Error while retrieving data. Try again later" +msgstr "Error al recuperar los datos. Inténtalo de nuevo más tarde" + +msgid "Error when activating the loyalty program. Try again later" +msgstr "Error al activar el programa de fidelización. Inténtalo de nuevo más tarde" + +msgid "Enter the correct phone number" +msgstr "Introduce el número de teléfono correcto" + +msgid "Close" +msgstr "Cerrar" + +msgid "Ordinary products: accrual of 1 bonus for each %s %s" +msgstr "Productos ordinarios: acumulación de 1 bono por cada %s %s" + +msgid "Promotional products: accrual of 1 bonus for each %s %s" +msgstr "Productos promocionales: acumulación de 1 bono por cada %s %s" + +msgid "Ordinary products: bonus accrual in the amount of %s%% of the purchase amount" +msgstr "Productos ordinarios: acumulación de bonos en la cantidad de %s%% de la suma de la compra" + +msgid "Promotional products: bonus accrual in the amount of %s%% of the purchase amount" +msgstr "Productos promocionales: acumulación de bonos en la cantidad de %s%% de la suma de la compra" + +msgid "Ordinary products: %s%% discount" +msgstr "Productos ordinarios: %s%% de descuento" + +msgid "Promotional products: %s%% discount" +msgstr "Productos promocionales: %s%% de descuento" msgid "Uploading services" -msgstr "Descarga de servicios" +msgstr "Subida de servicios" msgid "Goods with the 'virtual' option enabled will be uploaded to Simla as services" -msgstr "Los bienes con la opción 'virtual' activada se cargarán en Simla como servicios" +msgstr "Los productos con la opción 'virtual' activada se subirán a Simla como servicios" msgid "User not found in the system" msgstr "Usuario no encontrado en el sistema" @@ -482,19 +563,28 @@ msgid "Error when searching for participation in loyalty programs" msgstr "Error al buscar la participación en programas de fidelización" msgid "No active participation in the loyalty program was detected" -msgstr "No se detectó ninguna participación activa en el programa de fidelización" +msgstr "No se detectó la participación activa en el programa de fidelización" msgid "No bonuses for debiting" -msgstr "Sin bonificaciones por adeudo" +msgstr "No hay bonos para debitar" msgid "Loyalty program not found" msgstr "Programa de fidelización no encontrado" msgid "Loyalty program is not active" -msgstr "El programa de fidelización no está activo" +msgstr "Programa de fidelización no está activo" msgid "Loyalty program blocked" msgstr "Programa de fidelización bloqueado" msgid "This user is a corporate person" msgstr "Este usuario es una persona jurídica" + +msgid "It is possible to write off" +msgstr "Es posible debitar" + +msgid "bonuses" +msgstr "bonos" + +msgid "Your coupon:" +msgstr "Tu cupón:" diff --git a/resources/pot/retailcrm-ru_RU.pot b/resources/pot/retailcrm-ru_RU.pot index f61caa8..40d8bd7 100644 --- a/resources/pot/retailcrm-ru_RU.pot +++ b/resources/pot/retailcrm-ru_RU.pot @@ -572,10 +572,10 @@ msgid "Error when searching for participation in loyalty programs" msgstr "Ошибка при поиске участия в программах лояльности" msgid "No active participation in the loyalty program was detected" -msgstr "Активного участия в программе лояльности не обнаружено" +msgstr "Не обнаружено активного участия в программе лояльности" msgid "No bonuses for debiting" -msgstr "Бонусы на списание отсутствуют" +msgstr "Нет бонусов для списания" msgid "Loyalty program not found" msgstr "Программа лояльности не найдена" diff --git a/src/include/class-wc-retailcrm-base.php b/src/include/class-wc-retailcrm-base.php index 3f3b734..710a813 100644 --- a/src/include/class-wc-retailcrm-base.php +++ b/src/include/class-wc-retailcrm-base.php @@ -104,7 +104,7 @@ if (!class_exists('WC_Retailcrm_Base')) { add_action('woocommerce_new_order', [$this, 'create_order'], 11, 1); - if (isset($this->settings['loyalty']) && $this->settings['loyalty'] === static::YES) { + if (isLoyaltyActivate($this->settings)) { add_action('wp_ajax_register_customer_loyalty', [$this, 'register_customer_loyalty']); add_action('wp_ajax_activate_customer_loyalty', [$this, 'activate_customer_loyalty']); add_action('init', [$this, 'add_loyalty_endpoint'], 11, 1); @@ -118,8 +118,8 @@ if (!class_exists('WC_Retailcrm_Base')) { add_action('woocommerce_after_cart_item_quantity_update', [$this, 'refresh_loyalty_coupon'], 11, 1); add_action('woocommerce_cart_item_removed', [$this, 'refresh_loyalty_coupon'], 11, 1); add_action('woocommerce_before_cart_empted', [$this, 'clear_loyalty_coupon'], 11, 1); - add_action('woocommerce_removed_coupon', [$this, 'removed_coupon'], 11, 1); - add_action('woocommerce_applied_coupon', [$this, 'applied_coupon'], 11, 1); + add_action('woocommerce_removed_coupon', [$this, 'remove_coupon'], 11, 1); + add_action('woocommerce_applied_coupon', [$this, 'apply_coupon'], 11, 1); } // Subscribed hooks @@ -721,7 +721,7 @@ if (!class_exists('WC_Retailcrm_Base')) { } } - public function removed_coupon($couponCode) + public function remove_coupon($couponCode) { try { if (!$this->loyalty->deleteLoyaltyCoupon($couponCode)) { @@ -732,7 +732,7 @@ if (!class_exists('WC_Retailcrm_Base')) { } } - public function applied_coupon($couponCode) + public function apply_coupon($couponCode) { try { if (!$this->loyalty->isLoyaltyCoupon($couponCode)) { diff --git a/src/include/class-wc-retailcrm-loyalty.php b/src/include/class-wc-retailcrm-loyalty.php index 618209f..b3dfce5 100644 --- a/src/include/class-wc-retailcrm-loyalty.php +++ b/src/include/class-wc-retailcrm-loyalty.php @@ -111,7 +111,7 @@ if (!class_exists('WC_Retailcrm_Loyalty')) : } } - private function getDiscountLp($cartItems, $site, $customerId) + private function getDiscountLoyalty($cartItems, $site, $customerId) { $order = [ 'site' => $site, @@ -235,7 +235,7 @@ if (!class_exists('WC_Retailcrm_Loyalty')) : return null; } - $lpDiscountSum = $this->getDiscountLp($woocommerce->cart->get_cart(), $site, $customerId); + $lpDiscountSum = $this->getDiscountLoyalty($woocommerce->cart->get_cart(), $site, $customerId); if ($lpDiscountSum === 0) { return null; @@ -256,7 +256,7 @@ if (!class_exists('WC_Retailcrm_Loyalty')) : $coupon->set_usage_limit(0); $coupon->set_amount($lpDiscountSum); $coupon->set_email_restrictions($woocommerce->customer->get_email()); - $coupon->set_code('pl' . mt_rand());//TODO pl to loyalty + $coupon->set_code('loyalty' . mt_rand()); $coupon->save(); if ($refreshCoupon) { @@ -307,7 +307,7 @@ if (!class_exists('WC_Retailcrm_Loyalty')) : public function isLoyaltyCoupon($couponCode): bool { - return preg_match('/^pl\d+$/m', $couponCode) === 1; + return preg_match('/^loyalty\d+$/m', $couponCode) === 1; } public function getCouponLoyalty($email) @@ -318,7 +318,7 @@ if (!class_exists('WC_Retailcrm_Loyalty')) : $wpdb->prepare( "SELECT posts.post_name code FROM {$wpdb->prefix}posts AS posts LEFT JOIN {$wpdb->prefix}postmeta AS postmeta ON posts.ID = postmeta.post_id - WHERE posts.post_type = 'shop_coupon' AND posts.post_name LIKE 'pl%' + WHERE posts.post_type = 'shop_coupon' AND posts.post_name LIKE 'loyalty%' AND postmeta.meta_key = 'customer_email' AND postmeta.meta_value LIKE %s", '%' . $email . '%' ), ARRAY_A @@ -333,35 +333,32 @@ if (!class_exists('WC_Retailcrm_Loyalty')) : foreach ($coupons as $coupon) { $code = $coupon->get_code(); - if (preg_match('/^pl\d+$/m', $code) !== 1) { - continue; + if ($this->isLoyaltyCoupon($code)) { + $discountLp = $coupon->get_discount(); + $wcOrder->remove_coupon($code); + $objectCoupon = new WC_Coupon($code); + $objectCoupon->delete(true); + + $wcOrder->recalculate_coupons(); + break; } - - $discountLp = $coupon->get_discount(); - $wcOrder->remove_coupon($code); - $objectCoupon = new WC_Coupon($code); - $objectCoupon->delete(true); - - $wcOrder->recalculate_coupons(); - break; } return $discountLp; } - public function isValidUser($wcUser) + public function isValidOrder($wcUser, $wcOrder) { - if (!$wcUser + return !(!$wcUser || ( isset($this->settings['corporate_enabled']) && $this->settings['corporate_enabled'] === WC_Retailcrm_Base::YES - && !empty($wcUser->get_shipping_company()) - ) - ) { - return false; - } - - return true; + && ( + !empty($wcUser->get_billing_company()) + || !empty($wcOrder->get_billing_company()) + ) + )) + ; } public function applyLoyaltyDiscount($wcOrder, $discountLp, $createdOrder) @@ -395,7 +392,7 @@ if (!class_exists('WC_Retailcrm_Loyalty')) : foreach ($items as $item) { $externalId = $item['externalIds'][0]['value']; - $externalId = preg_replace('/^\d+\_/m', '', $externalId);//TODO проверить типы товаров + $externalId = preg_replace('/^\d+\_/m', '', $externalId); if (isset($wcItems[(int) $externalId])) { $discountLoyaltyTotal = 0; diff --git a/src/include/class-wc-retailcrm-orders.php b/src/include/class-wc-retailcrm-orders.php index 0847079..d1b6ea7 100644 --- a/src/include/class-wc-retailcrm-orders.php +++ b/src/include/class-wc-retailcrm-orders.php @@ -67,9 +67,7 @@ if (!class_exists('WC_Retailcrm_Orders')) : $this->orders = $orders; $this->order_payment = $order_payment; - if (isset($this->retailcrm_settings['loyalty']) - && $this->retailcrm_settings['loyalty'] === WC_Retailcrm_Base::YES - ) { + if (isLoyaltyActivate($retailcrm_settings)) { $this->loyalty = new WC_Retailcrm_Loyalty($retailcrm, $retailcrm_settings); } @@ -102,9 +100,10 @@ if (!class_exists('WC_Retailcrm_Orders')) : $discountLp = $this->loyalty->deleteLoyaltyCouponInOrder($wcOrder); $wcUser = $wcOrder->get_user(); - if (!$this->loyalty->isValidUser($wcUser) && $discountLp > 0) { + if (!$this->loyalty->isValidOrder($wcUser, $wcOrder) && $discountLp > 0) { writeBaseLogs('The user does not meet the requirements for working with the loyalty program. Order Id: ' . $orderId); - wp_die();//TODO удаление скидки вместо отмены заказа. + + $discountLp = 0; } else { $privilegeType = 'loyalty_level'; } diff --git a/src/include/functions.php b/src/include/functions.php index 4f82f5b..87f1fa8 100644 --- a/src/include/functions.php +++ b/src/include/functions.php @@ -202,3 +202,8 @@ function useHpos() return class_exists(Automattic\WooCommerce\Utilities\OrderUtil::class) && Automattic\WooCommerce\Utilities\OrderUtil::custom_orders_table_usage_is_enabled(); } + +function isLoyaltyActivate($settings) +{ + return isset($settings['loyalty']) && $settings['loyalty'] === WC_Retailcrm_Base::YES; +} diff --git a/src/include/validators/loyalty-validator/class-wc-retailcrm-loyalty-validator.php b/src/include/validators/loyalty-validator/class-wc-retailcrm-loyalty-validator.php index 755e3b0..17a8731 100644 --- a/src/include/validators/loyalty-validator/class-wc-retailcrm-loyalty-validator.php +++ b/src/include/validators/loyalty-validator/class-wc-retailcrm-loyalty-validator.php @@ -19,7 +19,7 @@ if (!class_exists('WC_Retailcrm_Loyalty_Validator')) : protected $isActiveCorp; - public $crmUser; + public $customer; public $loyaltyAccount; @@ -33,7 +33,7 @@ if (!class_exists('WC_Retailcrm_Loyalty_Validator')) : { try { $this->checkUser($userId); - $this->checkLoyaltyAccount($this->crmUser['id']); + $this->checkLoyaltyAccount($this->customer['id']); $this->checkActiveLoyalty($this->loyaltyAccount['loyalty']['id']); return true; @@ -59,19 +59,19 @@ if (!class_exists('WC_Retailcrm_Loyalty_Validator')) : $customer = new WC_Customer($userId); - if ($this->isActiveCorp === WC_Retailcrm_Base::YES && !empty($customer->get_shipping_company())) { + if ($this->isActiveCorp === WC_Retailcrm_Base::YES && !empty($customer->get_billing_company())) { throw new ValidatorException($this->isCorporateUser, 400); } - $this->crmUser = $responseUser['customer']; + $this->customer = $responseUser['customer']; } /** * @throws ValidatorException */ - private function checkLoyaltyAccount($crmUserId) + private function checkLoyaltyAccount($customerId) { - $filter['customerId'] = $crmUserId; + $filter['customerId'] = $customerId; $responseLoyalty = $this->apiClient->getLoyaltyAccountList($filter); if (!$responseLoyalty->isSuccessful() || !$responseLoyalty->offsetExists('loyaltyAccounts')) { diff --git a/src/languages/retailcrm-es_ES.l10n.php b/src/languages/retailcrm-es_ES.l10n.php index e3fb869..ad61403 100644 --- a/src/languages/retailcrm-es_ES.l10n.php +++ b/src/languages/retailcrm-es_ES.l10n.php @@ -199,7 +199,54 @@ return [ "La moneda del sitio web es distinto a la tienda del CRM. Para el funcionamiento correcto de la integración, las monedas del CMS y CRM deben coincid", "Uploading services" => "Descarga de servicios", "Goods with the 'virtual' option enabled will be uploaded to Simla as services" => - "Los bienes con la opción 'virtual' activada se cargarán en Simla como servicios" + "Los bienes con la opción 'virtual' activada se cargarán en Simla como servicios", + "Loyalty program" => "Programa de fidelización", + "Activate program loyalty" => "Activar programa de fidelización", + "Enable this setting for activate program loyalty on site" => "Activa esta configuración para activar el programa de fidelización en la página web", + "Terms of loyalty program" => "Condiciones del programa de fidelización", + "Insert the terms and conditions of the loyalty program" => "Inserte las condiciones del programa de fidelización", + "Conditions of personal data processing" => "Condiciones de procesamiento de datos personales", + "Insert the terms and conditions for processing personal data" => "Inserte las condiciones para el procesamiento de datos personales", + "To activate the loyalty program it is necessary to activate the 'enable use of coupons option'" => + "Para activar el programa de fidelización es necesario activar la opción 'habilitar el uso de cupones'", + "Bonus account" => "Cuenta de bonificación", + "Participation ID: " => "ID de participación: ", + "Current level: " => "Nivel actual: ", + "Bonuses on the account: " => "Bonificaciones en la cuenta: ", + "Bonus card number: " => "Número de tarjeta de bonificación: ", + "Date of registration: " => "Fecha de registro: ", + "Current level rules" => "Reglas del nivel actual", + "Required amount of purchases to move to the next level: " => "Cantidad de compras necesarias para pasar al siguiente nivel: ", + "Activate participation in the loyalty program" => "Activar participación en el programa de fidelización", + "Send" => "Enviar", + "To register in the loyalty program, fill in the form:" => "Para registrarse en el programa de fidelización, rellene el formulario:", + " I agree with " => " Acepto ", + "loyalty program terms" => "términos del programa de fidelización", + "terms of personal data processing" => "términos de procesamiento de datos personales", + "Phone" => "Teléfono", + "Error while registering in the loyalty program. Try again later" => "Error al registrarse en el programa de fidelización. Inténtalo de nuevo más tarde", + "The card is not linked" => "La tarjeta no está vinculada", + "Error while retrieving data. Try again later" => "Error al recuperar los datos. Inténtalo de nuevo más tarde", + "Error when activating the loyalty program. Try again later" => "Error al activar el programa de fidelización. Inténtalo de nuevo más tarde", + "Enter the correct phone number" => "Introduce el número de teléfono correcto", + "Close" => "Cerrar", + "Ordinary products: accrual of 1 bonus for each %s %s" => "Productos ordinarios: acumulación de 1 bonificación por cada %s %s", + "Promotional products: accrual of 1 bonus for each %s %s" => "Productos promocionales: acumulación de 1 bonificación por cada %s %s", + "Ordinary products: bonus accrual in the amount of %s%% of the purchase amount" => "Productos ordinarios: acumulación de bonificación en la cantidad de %s%% del monto de la compra", + "Promotional products: bonus accrual in the amount of %s%% of the purchase amount" => "Productos promocionales: acumulación de bonificación en la cantidad de %s%% del monto de la compra", + "Ordinary products: %s%% discount" => "Productos ordinarios: descuento del %s%%", + "Promotional products: %s%% discount" => "Productos promocionales: descuento del %s%%", + "User not found in the system" => "Usuario no encontrado en el sistema", + "Error when searching for participation in loyalty programs" => "Error al buscar la participación en programas de fidelización", + "No active participation in the loyalty program was detected" => "No se detectó participación activa en el programa de fidelización", + "No bonuses for debiting" => "No hay bonificaciones para debitar", + "Loyalty program not found" => "Programa de fidelización no encontrado", + "Loyalty program is not active" => "El programa de fidelización no está activo", + "Loyalty program blocked" => "Programa de fidelización bloqueado", + "This user is a corporate person" => "Este usuario es una persona jurídica", + "It is possible to write off" => "Es posible debitar", + "bonuses" => "bonificaciones", + "Your coupon:" => "Tu cupón:", ], "language" => "es", "x-generator" => "GlotPress/2.4.0-alpha", diff --git a/src/languages/retailcrm-es_ES.mo b/src/languages/retailcrm-es_ES.mo index 3ba889666ffdf2741e5eb96e07736c4d79a53ec8..3da7bc5c9abe5b7abc6dfa39098e3517beb72e6e 100644 GIT binary patch delta 6481 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 delta 4032 zcmZwJ3v89;9mnzKJ-w~86=+KfEtEqoP^& zI4T!KE>&MDUI3vR5fif*PmID?HpZ4ULnASBGcYuBxS2)WhQ>KFx_y7=eMwxhC;h*l z=Y7umKKJK^j}KWR_eDR*OdK?%Az~s?mSoI_SUZXf>CFsdQt%8;#q+42{(|Xv9n8m;FmJi`H?qjI>E@Lu&h4jtbz)Vb|65SVI9_^blGPx8qVJdDy^)P_^nFCxjl4F>M zZ{S#b7uCUQNMFt0a0-sNzk7K|9jU^4Y(++Fp2iw{3(IKVB+;z^R$(a~MNRoImf}LA+A6@w;R>)QPfB;pq~3J&cTl`8FQ(G$utEM zn12RoDk;!|ji{cjNA+|Us-h#P7fxd{{sc9JNoW9YfjQ8H?1yjxI)>PR)t!g?&iFlt7gMLmBS8H_oHNANu?z;1d`jt5XPb{41O z`>5wtsF|36cVe`ajMnlLY6?F^9lu0s+lfU;k@+Ed@I2}~{}MGbmrzUhN7RTCd0A7O zfh@PlM*Uuj{FzoRn#my6==?uIhR&I@sAKedWH9E>sHO0Dor)^4gZmY@246u;)C_v)jlLV1n5y$Xo{V}_h}w+RsFAdzI4WJ?GPSIjFU-MK#!h>R15P;33o|J?Y-Rjx)F)M!k0(HPZ>j%)fSFMX@or z;bYi>@1oY;%Uj!V6;|ST)F<}~oQos43ak0*sH1yuEuKOR;A>ohd3;v26dO@9w-q(; z{?e$k`}b0yk-v>v!#}wX`~x*J>Mlp#iD8^r$hTuYkURO@R!J+ zNn})7iYipc+M{HalNrLX_z9}wZ;<0*DtVegn621~gQ$*NL-w5+LE1Kj70x+dg&Igd zuEc|=<9iu(?!QJYO*zx4_oBcCo5c^9gI zhtQ8Npc=4d^RdElI2M15s{iMhg~LvH)ck==CIz2kDq3_?AEGo=M{dP5tV3T)G_NvRcvD|zKW{oGxXtTdcO|0qw4t;{tmBTGQPIZ+4W~oOEHX5_3RRv96gA7 z@Ve{2P)noMv{|xHORyBxKr?3JCe+eJ&_bp4gnm;}-Trva`H#+CH-AFke`YtHG*wEs zJDB~b(M8;QW;=e?ZTDV0L`)zK5}Mk{#A@Pugwl9IU&yac>e2cuEpmwe zKaCA+o+OSFLAP8y?&d2{M^Q-|>VbI9IoGOA-ve#Pdx+-=Rwte|aMi4Zi6@8z;%U8b zfVi1L=qk1lgTz$gD512>A%1P-y6Ic@%05HXxn=t5Wf3~c+ugF2xZKG{&2BPm ze6!IhFyF=d3I2_Ur+c|hBz#06F`Lk4Dp|p)SMC22Dh{c3bx`XLNPF4Iv)P;8tc|;STltvsQI&?#NkVuZ_jCl$l zbMtN5iTj8Yw_t{AH)aqs-TSqu&uuMnpIcUqy>7lAPZCE6d)AmA+1A*%?bOWu_Vbxt zc1cz&_GQ*Vk9{Ji%Wlf8jD4JYH6ivvewUT8+P9-e6esB70drWb_9w^R>T`cai?6#7NcDQPyy}C5jexUS4`>wKAvqHhn zKt~`H^oPBj{w{B%*B7yynqIBeOkRHoYrRa@*cRrBmeXJ1Kb5BP(A+dpS| zdWWxfv#uQq;-Lyw>=aL+#Bfdx#R8$^?H4s z{=UvoY|{KpYjn$nmm{IhkS2ryZng^+uD2IY&WR1wmRYf1ENZpXQmlH(-#yuV;gFu{ q= "Выгрузка услуг", "Goods with the 'virtual' option enabled will be uploaded to Simla as services" => - "Товары с включенной опцией 'виртуальные' будут выгружаться в CRM как услуги" + "Товары с включенной опцией 'виртуальные' будут выгружаться в CRM как услуги", + "Loyalty program" => "Программа лояльности", + "Activate program loyalty" => "Активировать программу лояльности", + "Enable this setting for activate program loyalty on site" => "Активируйте эту настройку для активации программы лояльности на сайте", + "Terms of loyalty program" => "Условия программы лояльности", + "Insert the terms and conditions of the loyalty program" => "Вставьте условия участия в программе лояльности", + "Conditions of personal data processing" => "Условия обработки персональных данных", + "Insert the terms and conditions for processing personal data" => "Вставьте условия обработки персональных данных", + "To activate the loyalty program it is necessary to activate the 'enable use of coupons option'" => + "Для активации программы лояльности необходимо активировать опцию 'включить использование купонов'", + "Bonus account" => "Бонусный счет", + "Participation ID: " => "ID участия: ", + "Current level: " => "Текущий уровень: ", + "Bonuses on the account: " => "Бонусов на счету: ", + "Bonus card number: " => "Номер бонусной карты: ", + "Date of registration: " => "Дата регистрации: ", + "Current level rules" => "Правила текущего уровня", + "Required amount of purchases to move to the next level: " => "Необходимая сумма покупок для перехода на следующий уровень: ", + "Activate participation in the loyalty program" => "Активировать участие в программе лояльности", + "Send" => "Отправить", + "To register in the loyalty program, fill in the form:" => "Для регистрации в программе лояльности заполните форму:", + " I agree with " => " Я согласен с ", + "loyalty program terms" => "условиями программы лояльности", + "terms of personal data processing" => "условиями обработки персональных данных", + "Phone" => "Телефон", + "Error while registering in the loyalty program. Try again later" => "Ошибка при регистрации в программе лояльности. Попробуйте позже", + "The card is not linked" => "Карта не привязана", + "Error while retrieving data. Try again later" => "Ошибка при получении данных. Попробуйте позже", + "Error when activating the loyalty program. Try again later" => "Ошибка при активации программы лояльности. Попробуйте позже", + "Enter the correct phone number" => "Введите корректный номер телефона", + "Close" => "Закрыть", + "Ordinary products: accrual of 1 bonus for each %s %s" => "Обычные товары: начисление 1 бонуса за каждые %s %s", + "Promotional products: accrual of 1 bonus for each %s %s" => "Акционные товары: начисление 1 бонуса за каждые %s %s", + "Ordinary products: bonus accrual in the amount of %s%% of the purchase amount" => "Обычные товары: начисление бонуса в размере %s%% от суммы покупки", + "Promotional products: bonus accrual in the amount of %s%% of the purchase amount" => "Акционные товары: начисление бонуса в размере %s%% от суммы покупки", + "Ordinary products: %s%% discount" => "Обычные товары: скидка %s%%", + "Promotional products: %s%% discount" => "Акционные товары: скидка %s%%", + "User not found in the system" => "Пользователь не найден в системе", + "Error when searching for participation in loyalty programs" => "Ошибка при поиске участия в программах лояльности", + "No active participation in the loyalty program was detected" => "Не обнаружено активного участия в программе лояльности", + "No bonuses for debiting" => "Нет бонусов для списания", + "Loyalty program not found" => "Программа лояльности не найдена", + "Loyalty program is not active" => "Программа лояльности не активна", + "Loyalty program blocked" => "Программа лояльности заблокирована", + "This user is a corporate person" => "Этот пользователь является корпоративным лицом", + "It is possible to write off" => "Возможно списать", + "bonuses" => "бонусов", + "Your coupon:" => "Ваш купон:", ], "language" => "ru", "x-generator" => "GlotPress/2.4.0-alpha", diff --git a/src/languages/retailcrm-ru_RU.mo b/src/languages/retailcrm-ru_RU.mo index 6f819beb1983b4c7202ce61308a0a72b37670e92..059386dbfffc5e4960bfef46bb57ee6a876817de 100644 GIT binary patch delta 4455 zcmY+`4Nz899>?*6BKQJ`_yS16^##R9Py$j@0ZkJ{5?S9?tdJl{;!$3Dan&ohrHRQd z2)UGQn^{`<)+6eoq8m+{Icv`|+m5R-BfQcgBjTeD5O-`{huGwm7v&*z+b?{n`t z|8vfLID0VYt3yHd)u`YWL+K*!AkssO2@NtPFHA>`Ss7_e1eRkcK81<65&Pn6s7sGv zKkUT*_yNY^W%u|uIDoc3Vjv2~8DpDd_rOvd!HFuIge@3{AG+tizy#XCQO<)$VL0tn z9Eej9X64)!O{x^V%LO|uh~skczqpF~aNXE+7JNmnM$L0w;mDcFJ%QXnEj{`cj3M0M_m`rMe0BzDl>Vg>y~3WuEG#}8MUTf zx2Z6VrUNbf5Ov{AR3;Lc7hPD5y3wCXes19|Z z?)MSqqJ5o;=4OIrOe0RiV7!0~%KR03<4sgYe?ZoiiC|@F(T+l`_Ds}u*{BZXy6xqt zj+bF7*5D|770Iw|&QZ}9E+Ol}+(6c!31MDdz+uRsOgoOlkC5b;9t?L3TBz^MMrE!T z7hx-Et=vFOO*&6ytR@dPUBS=Yg@Po~EL{ zI1PjGK4g|mF4hFGs!>z$F?&!Q`2l}{A-sLmfn}(Hm7p@Z7WMsxWb)5<%>fQ*+g)@| z+`_rE2h*zsSd7_t6z|4wQ5hP`g3t}0cioK>Xdgl?&TFXcdJ7qw2`9}KW@0riP9guS z4|ARa{F$%#&<*2Rs+!AGjKBqWKNjOO+>d?nbJUCH7FrlT-pOPZY7JDN2DlBg@EA_T z?@;$mx9RR=Dl;$=H=sJyi0Y6Rm8wrrHwsR3MwEhjz-%nUm1yB9oQ_v;D_W#$6~2k} z7|j-0hHbbT?eD0}pwg1zbl?*5XS(@#9IZ@a=&ad}8o?P{kN-uDd_8X)5AMSvjA5xi zfwibL@Fi+@M&6IOZb^ zH)AsHz$842S`+`mB^Yy`lj=1%koM;ohd-hgSIkV_9XN&$W#DmSS(paYRCS`gmP*_# zW7c3RY7zEk*y?#KHsQT)`vP93eG{YbJZWMU%vDr7HrMIET{x2VY)rrk?1S4-9c@LO ze_zGGC%bo-xOnl492eWZju|9HHybkNsImOuM;;N_Bjm^IPx?@~SW$ zs0?4nN{pFD7I5=C@?S?~V7`;07W^e`FJ8om2l#gkKf^mQf4=h@@iY#my$;opCRE4U zQH%E{R7Qrda@k;JEUF_9qB`1u%%XYUrlL6uTi`6hB-91?*Fxnp1b?$NdIVusH*nx?-2Sf0js}FUfi>MKF zqppu$?9BaW980?xb-V$4V;eFXW)G@AD!(Q)YL!=sa_xW42MXIh@CEf!i$gbgg4jl= zWDqYAm4v25)4^Z^{~NrGPZPJx5h|~{4K27KL<*s)T~8?EPGSC6x>b#Oom;QM;{-d> zu$#=bO1w#w5GM$gEaG&a=6obTED`MHSsxqF~MdT5W5Vy-yR6^ax8qL4TR6;*C8;PG6 zEjX152lFS~Of(YOzd3};Jq{)tUnHgw?7+a*ti#_BTZz%c4ni-je#9L2`Ba^E{qjJ~ z`Ke@Qn%@#ViBZHLB9hoZBodnlmB$>+LDW{9;I@UA=s_$a+6k3vA}LVgx5F7fzhWF1 zN*pHGVa6i5h%Lk(Lf3T?YYE;(f!FCtj3Jf~uMuU0ihg8H5vzz-2$hG4CPMF!g~Wrz zcETROM+b4c9CIuE@htI{+rG^(Dzk`vM5}u+9X-TM;yL$NG5(HN;I_pdi09q*0bH$D z%^#^8@(zpqq+eWaja6Q4t@cz`m#?TOwQ4-plU3z4rIx3x%==SZNLbiXPi>V|;;CKj zshr&0GbufEg{QK%y0qGxne53 me-9kc#2vR-z7GE;9>BLIH+L;e3;(|xG#^kV6!9`rw9`y|%@ delta 4294 zcmYk;4^)-)9mnzSMg9sZf{2O8g;G%z5e!8%0jEV12WD82Vks&*Lnm6HbQP9Hps7f1 zWmuY1TN#Nm|ABh8ww<<)_wH<`Gjnc5+gRI<=d3?lwQTRteV%#z9X|K<`#sOY^Zfoj z_uT7mdM+OK_^!o;wi)Fj8KH!mc{~_HgW`=f8;GeGfmt{Tr(%CxjJmWMqj4h+!Untz z_qfMj$HBBu<1l;&Cz$!H*F7+pvuT_dhk00nNw^*L4~H-X&!ZlE6$jv7F&;ldT^AK+ zHW$;7TU!k#;1&$S=iTG`gKeML8&pPfq7(JNE660+=cosKjr>_OPtk)$@}UuCqs|xM za4f|{T#ZrKh#JriR7W~cGja)a{rfnS=iBF0=)4UW;*2Z>HRae&C;+06oF{qiEjT&hs=HnXFb;nQ-zJwZaAL_abk3_4*l6}e}U?F2s?Np#^N1V zfSTbd!uRIf%j40VAoJ<_%U)%`wBI}k$mlG4acB5nu+W$n~l0| z3F<+OsHr}LT7oWQ8`yQ!W{qK^u)Qn^GkLyEp`sfu$E8@0W%vPV%5xa*Su93%Ff`p+ zyI9l|C!>yMpr&>ThT+|)B`QI6Xd!CXufj;&hdw>vWh&}f7wRA1#!&nfvI^$MT94Vk zP*c8wcTJmT3ogJNs4tigQ3LrHHG`fE=l|nyEbYmtkuP?S*JUvO-{!!64$Q|sEWmua znS+~AGtz;&;Se^09EFoG7quBzqF&EBq>r{2z1WTG@fx!HHlJ6AKikNM?sHi4ueIyq zz(D*x-i>{D7iO__`(q6PF3|5uHLk;4TYf`hFN4cnw%65Ei5WcKB3KyBKn`jzJdEmb zGir)I!g#Fsmh<}5pf*)A&c+u|BmWb!4eSPLi6(Kf4tL@@jGE)D{U%JM-GaV7RF1m` z3Yms0w3lKW-o^Ye>sE$px1iqN19&^0!xa1@M&UQ8jz$$b=aW$#Ep#nKF0o3?z@x>? z|5z%&<$%0_>^Dol*Lf`~F+jTkS!P?nPFjw;kqvGCLA{0(<~mdS5I#n`8JqD-+=|;u zoEeIoXZ8^7(fA&2oyYvIpz`2%oLzniLumg46Yx5wVOXit^K{hiUWb~ICR9iE<9H09 zI(h?HHOps5YsP%2&G#be{AV}`vwicOO|}f_q_tosUP1LR>OOv+;RmP=E#g%u_3*l3 zf7(A|tHrDRqn(cGurHs=Kq@OyYyCKCDNeY@uVN(azaz74 zpCZo>mOEUx;SrKUcDl#30gsc%$T0Vqm`GkF>Kw%v+z|7qXG!T`iNhtA>RHAj< zO;n;Cf}cD1e3UT5H%lY6ZlcZi3ejtXa5hzehb)6GYiABVp#zk3vY8wvv&jXb@f67LZFy_ZFu zwB@^sRWB>?3VN=Cz-;Cjq; zIBp_8CVSjtw=$Q;owpnqM|~klyye)F)TfZw-D9n;MYw?cgy#oK3!gK{vt(rOi1S-c z)ikn<)RPDjMNW|zqH>mGlLE4Y#FBQR@`gk3m+_m__Y%F%`^k$$&$KQQMrNu(33sqn zxQIMY)X^HUl58Y-B(Ae6_QUATr6a;(S~sNUbateFlGypvf-sL~S8H$Ky{)?nBT9Pw zZ~43Z9f2)@Mt_(86!jkS@Amijy914Zt$}8*&Uyn|{TKYF`Rt&1+JDOH?+G+;x-t0K e;6FiaXP}|8qUhi8tySe&t&c8D>^xUK+4DayR_nh2 diff --git a/tests/datasets/data-loyalty-retailcrm.php b/tests/datasets/data-loyalty-retailcrm.php index f688118..a08fb06 100644 --- a/tests/datasets/data-loyalty-retailcrm.php +++ b/tests/datasets/data-loyalty-retailcrm.php @@ -221,7 +221,7 @@ class DataLoyaltyRetailCrm { return [ [ - 'code' => 'pl49844894548', + 'code' => 'loyalty49844894548', 'expected' => true ], [ @@ -269,22 +269,33 @@ class DataLoyaltyRetailCrm [ 'customer' => $users[0], 'corporate_enabled' => 'yes', - 'expected' => true + 'expected' => true, + 'orderCorporate' => false ], [ 'customer' => $users[1], 'corporate_enabled' => 'yes', - 'expected' => false + 'expected' => false, + 'orderCorporate' => false ], [ 'customer' => $users[1], 'corporate_enabled' => 'no', - 'expected' => true + 'expected' => true, + 'orderCorporate' => false ], [ 'customer' => null, 'corporate_enabled' => 'yes', - 'expected' => false + 'expected' => false, + 'orderCorporate' => false + + ], + [ + 'customer' => $users[0], + 'corporate_enabled' => 'yes', + 'expected' => false, + 'orderCorporate' => true ] ]; } @@ -309,7 +320,7 @@ class DataLoyaltyRetailCrm $customer1->set_password('password'); $customer1->set_billing_phone('89000000000'); $customer1->set_date_created(date('Y-m-d H:i:s')); - $customer1->set_shipping_company('OOO TEST'); + $customer1->set_billing_company('OOO TEST'); $customer1->save(); return [$customer, $customer1]; @@ -322,7 +333,7 @@ class DataLoyaltyRetailCrm $coupon->set_usage_limit(0); $coupon->set_amount(100); $coupon->set_email_restrictions($email1); - $coupon->set_code('pl' . mt_rand()); + $coupon->set_code('loyalty' . mt_rand()); $coupon->save(); $coupon1 = new WC_Coupon(); @@ -330,7 +341,7 @@ class DataLoyaltyRetailCrm $coupon1->set_usage_limit(0); $coupon1->set_amount(100); $coupon1->set_email_restrictions($email2); - $coupon1->set_code('pl' . mt_rand()); + $coupon1->set_code('loyalty' . mt_rand()); $coupon1->save(); return [$coupon, $coupon1]; diff --git a/tests/test-wc-retailcrm-loyalty.php b/tests/test-wc-retailcrm-loyalty.php index 795bf59..07b7ad9 100644 --- a/tests/test-wc-retailcrm-loyalty.php +++ b/tests/test-wc-retailcrm-loyalty.php @@ -89,7 +89,7 @@ class WC_Retailcrm_Loyalty_Test extends WC_Retailcrm_Test_Case_Helper /** * @dataProvider DataLoyaltyRetailCrm::getDataCalculation() */ - public function testGetDiscountLp($response, $expected) + public function testGetDiscountLoyalty($response, $expected) { $responseMock = new WC_Retailcrm_Response(200, json_encode($response)); $this->setMockResponse($this->apiMock, 'calculateDiscountLoyalty', $responseMock); @@ -98,7 +98,7 @@ class WC_Retailcrm_Loyalty_Test extends WC_Retailcrm_Test_Case_Helper $this->loyalty = new WC_Retailcrm_Loyalty($this->apiMock, []); - $method = $this->getPrivateMethod('getDiscountLp', $this->loyalty); + $method = $this->getPrivateMethod('getDiscountLoyalty', $this->loyalty); $discount = $method->invokeArgs($this->loyalty, [$cartItems, 'test', 1]); $this->assertEquals($expected, $discount); @@ -119,11 +119,16 @@ class WC_Retailcrm_Loyalty_Test extends WC_Retailcrm_Test_Case_Helper /** * @dataProvider DataLoyaltyRetailCrm::dataValidUser(); */ - public function testIsValidUser($customer, $corporate_enabled, $expected) + public function testIsValidOrder($customer, $corporate_enabled, $expected, $orderCorporate) { $this->loyalty = new WC_Retailcrm_Loyalty($this->apiMock, ['corporate_enabled' => $corporate_enabled]); + $wcOrder = new WC_Order(); - $this->assertEquals($expected, $this->loyalty->isValidUser($customer)); + if ($orderCorporate) { + $wcOrder->set_billing_company('OOO TEST'); + } + + $this->assertEquals($expected, $this->loyalty->isValidOrder($customer, $wcOrder)); } /** @@ -238,7 +243,7 @@ class WC_Retailcrm_Loyalty_Test extends WC_Retailcrm_Test_Case_Helper $coupon->set_usage_limit(0); $coupon->set_amount('50'); $coupon->set_email_restrictions($user->get_email()); - $coupon->set_code('pl' . mt_rand()); + $coupon->set_code('loyalty' . mt_rand()); $coupon->save(); $cart->apply_coupon($coupon->get_code()); @@ -285,7 +290,7 @@ class WC_Retailcrm_Loyalty_Test extends WC_Retailcrm_Test_Case_Helper $coupon->set_usage_limit(0); $coupon->set_amount('50'); $coupon->set_email_restrictions($user->get_email()); - $coupon->set_code('pl' . mt_rand()); + $coupon->set_code('loyalty' . mt_rand()); $coupon->save(); $wcOrder = wc_create_order([ diff --git a/tests/validators/test-wc-retailcrm-loyalty-validator.php b/tests/validators/test-wc-retailcrm-loyalty-validator.php index f25694f..521a1ec 100644 --- a/tests/validators/test-wc-retailcrm-loyalty-validator.php +++ b/tests/validators/test-wc-retailcrm-loyalty-validator.php @@ -29,7 +29,7 @@ class WC_Retailcrm_Loyalty_Validator_Test extends WC_Retailcrm_Test_Case_Helper $this->corpClient->set_password('password'); $this->corpClient->set_billing_phone('89000000000'); $this->corpClient->set_date_created(date('Y-m-d H:i:s')); - $this->corpClient->set_shipping_company('TEST COMPANY'); + $this->corpClient->set_billing_company('TEST COMPANY'); $this->corpClient->save(); }