1
0
mirror of synced 2025-01-29 22:31:42 +03:00

Improvement of customer registration form in Loyalty program (#349)

This commit is contained in:
Kocmonavtik 2024-10-01 09:44:07 +03:00 committed by GitHub
parent b00ff321ab
commit b195d169e1
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
8 changed files with 62 additions and 17 deletions

View File

@ -1,3 +1,6 @@
## 2024-09-30 4.8.9
* Improvement of customer registration form in loyalty program
## 2024-09-30 4.8.8 ## 2024-09-30 4.8.8
* Fix tests svn externals definitions error * Fix tests svn externals definitions error

View File

@ -1 +1 @@
4.8.8 4.8.9

View File

@ -1167,17 +1167,20 @@ if (!class_exists('WC_Retailcrm_Base')) {
$cssPath = plugins_url() . self::ASSETS_DIR . '/css/'; $cssPath = plugins_url() . self::ASSETS_DIR . '/css/';
$messagePhone = __('Enter the correct phone number', 'retailcrm'); $messagePhone = __('Enter the correct phone number', 'retailcrm');
$loyaltyTemrs = $this->settings['loyalty_terms'] ?? '';
$loyaltyPersonal = $this->settings['loyalty_personal'] ?? '';
wp_register_script($jsScript, $jsScriptsPath . $jsScript . '.js', false, '0.1'); wp_register_script($jsScript, $jsScriptsPath . $jsScript . '.js', false, '0.1');
wp_enqueue_script($jsScript, $jsScriptsPath . $jsScript . '.js', '', '', true); wp_enqueue_script($jsScript, $jsScriptsPath . $jsScript . '.js', '', '', true);
wp_localize_script($jsScript, 'loyaltyUrl', $loyaltyUrl); wp_localize_script($jsScript, 'loyaltyUrl', $loyaltyUrl);
wp_localize_script($jsScript, 'customerId', $userId); wp_localize_script($jsScript, 'customerId', $userId);
wp_localize_script($jsScript, 'messagePhone', $messagePhone); wp_localize_script($jsScript, 'messagePhone', $messagePhone);
wp_localize_script($jsScript, 'termsLoyalty', $this->settings['loyalty_terms']); wp_localize_script($jsScript, 'termsLoyalty', $loyaltyTemrs);
wp_localize_script($jsScript, 'privacyLoyalty', $this->settings['loyalty_personal']); wp_localize_script($jsScript, 'privacyLoyalty', $loyaltyPersonal);
wp_register_style('retailcrm-loyalty-style', $cssPath . 'retailcrm-loyalty-style.css', false, '0.1'); wp_register_style('retailcrm-loyalty-style', $cssPath . 'retailcrm-loyalty-style.css', false, '0.1');
wp_enqueue_style('retailcrm-loyalty-style'); wp_enqueue_style('retailcrm-loyalty-style');
$result = $this->loyalty->getForm($userId); $result = $this->loyalty->getForm($userId, $loyaltyTemrs, $loyaltyPersonal);
if ([] === $result) { if ([] === $result) {
echo '<p style="color: red">'. __('Error while retrieving data. Try again later', 'retailcrm') . '</p>'; echo '<p style="color: red">'. __('Error while retrieving data. Try again later', 'retailcrm') . '</p>';

View File

@ -41,9 +41,16 @@ if (!class_exists('WC_Retailcrm_Loyalty')) :
); );
} }
public function getForm(int $userId) public function getForm(int $userId, $loyaltyTerms = '', $loyaltyPersonal = '')
{ {
$result = []; $result = [];
$phone = '';
$wcCustomer = new WC_Customer($userId);
if ($wcCustomer instanceof WC_Customer) {
$phone = $wcCustomer->get_billing_phone();
}
try { try {
$response = $this->getLoyaltyAccounts($userId); $response = $this->getLoyaltyAccounts($userId);
@ -68,7 +75,7 @@ if (!class_exists('WC_Retailcrm_Loyalty')) :
$result['loyaltyId'] = $loyaltyAccount['id']; $result['loyaltyId'] = $loyaltyAccount['id'];
} }
} else { } else {
$result['form'] = $this->loyaltyForm->getRegistrationForm(); $result['form'] = $this->loyaltyForm->getRegistrationForm($phone, $loyaltyTerms, $loyaltyPersonal);
} }
return $result; return $result;
@ -84,6 +91,17 @@ if (!class_exists('WC_Retailcrm_Loyalty')) :
]; ];
try { try {
$wcCustomer = new WC_Customer($userId);
if ($wcCustomer instanceof WC_Customer) {
$currentPhone = $wcCustomer->get_billing_phone();
if (empty($currentPhone) && $phone !== '') {
$wcCustomer->set_billing_phone($phone);
$wcCustomer->save();
}
}
$response = $this->apiClient->createLoyaltyAccount($parameters, $site); $response = $this->apiClient->createLoyaltyAccount($parameters, $site);
if (!$response->isSuccessful()) { if (!$response->isSuccessful()) {

View File

@ -5,15 +5,34 @@ if (!class_exists('WC_Retailcrm_Loyalty')) :
class WC_Retailcrm_Loyalty_Form class WC_Retailcrm_Loyalty_Form
{ {
public function getRegistrationForm() public function getRegistrationForm($phone = '', $loyaltyTerms = '', $loyaltyPersonal = '')
{ {
$htmlLoyaltyTerms = $loyaltyTerms !== ''
? sprintf(
'<p><input type="checkbox" name="terms" id="termsLoyalty" required>%s<a id="terms-popup" class="popup-open-loyalty" href="#">%s</a>.</p>',
__(' I agree with ', 'retailcrm'),
__('loyalty program terms', 'retailcrm')
)
: ''
;
$htmlLoyaltyPersonal = $loyaltyPersonal !== ''
? sprintf(
'<p><input type="checkbox" name="privacy" id="privacyLoyalty" required>%s<a id="privacy-popup" class="popup-open-loyalty" href="#">%s</a>.</p>',
__(' I agree with ', 'retailcrm'),
__('terms of personal data processing', 'retailcrm')
)
: ''
;
return sprintf( return sprintf(
' '
<form id="loyaltyRegisterForm" method="post"> <form id="loyaltyRegisterForm" method="post">
<p>%s</p> <p>%s</p>
<p><input type="checkbox" name="terms" id="termsLoyalty" required>%s<a id="terms-popup" class="popup-open-loyalty" href="#">%s</a>.</p> %s
<p><input type="checkbox" name="privacy" id="privacyLoyalty" required>%s<a id="privacy-popup" class="popup-open-loyalty" href="#">%s</a>.</p> %s
<p><input type="text" name="phone" id="phoneLoyalty" placeholder="%s" required></p> <p><input type="text" name="phone" id="phoneLoyalty" placeholder="%s" value="%s" required></p>
<p><input type="submit" value="%s"></p> <p><input type="submit" value="%s"></p>
</form> </form>
<div class="popup-fade-loyalty"> <div class="popup-fade-loyalty">
@ -25,11 +44,10 @@ if (!class_exists('WC_Retailcrm_Loyalty')) :
</div> </div>
', ',
__('To register in the loyalty program, fill in the form:', 'retailcrm'), __('To register in the loyalty program, fill in the form:', 'retailcrm'),
__(' I agree with ', 'retailcrm'), $htmlLoyaltyTerms,
__('loyalty program terms', 'retailcrm'), $htmlLoyaltyPersonal,
__(' I agree with ', 'retailcrm'),
__('terms of personal data processing', 'retailcrm'),
__('Phone', 'retailcrm'), __('Phone', 'retailcrm'),
$phone,
__('Send', 'retailcrm'), __('Send', 'retailcrm'),
__('Close', 'retailcrm') __('Close', 'retailcrm')
); );

View File

@ -5,7 +5,7 @@ Tags: Интеграция, Simla.com, simla
Requires PHP: 7.1 Requires PHP: 7.1
Requires at least: 5.3 Requires at least: 5.3
Tested up to: 6.5 Tested up to: 6.5
Stable tag: 4.8.8 Stable tag: 4.8.9
License: GPLv1 or later License: GPLv1 or later
License URI: http://www.gnu.org/licenses/gpl-1.0.html License URI: http://www.gnu.org/licenses/gpl-1.0.html
@ -82,6 +82,9 @@ Asegúrate de tener una clave API específica para cada tienda. Las siguientes i
== Changelog == == Changelog ==
= 4.8.9 =
* Improvement of customer registration form in loyalty program
= 4.8.8 = = 4.8.8 =
* Fix tests svn externals definitions error * Fix tests svn externals definitions error

View File

@ -5,7 +5,7 @@
* Description: Integration plugin for WooCommerce & Simla.com * Description: Integration plugin for WooCommerce & Simla.com
* Author: RetailDriver LLC * Author: RetailDriver LLC
* Author URI: http://retailcrm.pro/ * Author URI: http://retailcrm.pro/
* Version: 4.8.8 * Version: 4.8.9
* Tested up to: 6.5 * Tested up to: 6.5
* Requires Plugins: woocommerce * Requires Plugins: woocommerce
* WC requires at least: 5.4 * WC requires at least: 5.4

View File

@ -16,7 +16,7 @@
* *
* @link https://wordpress.org/plugins/woo-retailcrm/ * @link https://wordpress.org/plugins/woo-retailcrm/
* *
* @version 4.8.8 * @version 4.8.9
* *
* @package RetailCRM * @package RetailCRM
*/ */