From eff8282380b99f8bdb53b9f2312bccbc9ea0b290 Mon Sep 17 00:00:00 2001 From: hherreros93 <69013360+hherreros93@users.noreply.github.com> Date: Fri, 7 Aug 2020 09:10:55 +0200 Subject: [PATCH 1/9] Fix cast error when removing an Alert The email is casted as an int, so the query to remove the alert doesnt work properly when the user made an alert and later creates an account. --- controllers/front/actions.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/controllers/front/actions.php b/controllers/front/actions.php index 99cf6fc..facfe1f 100644 --- a/controllers/front/actions.php +++ b/controllers/front/actions.php @@ -70,7 +70,7 @@ public function processRemove() $context = Context::getContext(); if (MailAlert::deleteAlert( (int) $context->customer->id, - (int) $context->customer->email, + (string) $context->customer->email, (int) $product->id, (int) $this->id_product_attribute, (int) $context->shop->id From 3642e687813b494209cc98793536e5ad297ba71c Mon Sep 17 00:00:00 2001 From: Mohamed Ali Rajab Date: Sat, 11 Apr 2020 21:11:12 +0100 Subject: [PATCH 2/9] Adapt translation domains to the new translation system Since version 1.7.6 of Prestashop, a new translation system has been implemented, which requires certain rules, especially for "Translation Domain". And since this "ps_emailalerts" module implements this new system, this commit fixes a few lines where the "Translation Domain" is badly written. For more information https://devdocs.prestashop.com/1.7/modules/creation/module-translation/new-system/#translation-domain --- ps_emailalerts.php | 78 ++++++++++---------- views/templates/front/mailalerts-account.tpl | 4 +- views/templates/hook/my-account-footer.tpl | 2 +- views/templates/hook/my-account.tpl | 2 +- views/templates/hook/product.tpl | 4 +- 5 files changed, 45 insertions(+), 45 deletions(-) diff --git a/ps_emailalerts.php b/ps_emailalerts.php index 245c327..2680349 100644 --- a/ps_emailalerts.php +++ b/ps_emailalerts.php @@ -72,8 +72,8 @@ public function __construct() $this->init(); } - $this->displayName = $this->trans('Mail alerts', array(), 'Modules.Mailalerts.Admin'); - $this->description = $this->trans('Sends e-mail notifications to customers and merchants regarding stock and order modifications.', array(), 'Modules.Mailalerts.Admin'); + $this->displayName = $this->trans('Mail alerts', array(), 'Modules.Emailalerts.Admin'); + $this->description = $this->trans('Sends e-mail notifications to customers and merchants regarding stock and order modifications.', array(), 'Modules.Emailalerts.Admin'); $this->ps_versions_compliancy = [ 'min' => '1.7.1.0', 'max' => _PS_VERSION_, @@ -216,22 +216,22 @@ protected function postProcess() if (Tools::isSubmit('submitMailAlert')) { if (!Configuration::updateValue('MA_CUSTOMER_QTY', (int) Tools::getValue('MA_CUSTOMER_QTY'))) { - $errors[] = $this->trans('Cannot update settings', array(), 'Modules.Mailalerts.Admin'); + $errors[] = $this->trans('Cannot update settings', array(), 'Modules.Emailalerts.Admin'); } elseif (!Configuration::updateGlobalValue('MA_ORDER_EDIT', (int) Tools::getValue('MA_ORDER_EDIT'))) { - $errors[] = $this->trans('Cannot update settings', array(), 'Modules.Mailalerts.Admin'); + $errors[] = $this->trans('Cannot update settings', array(), 'Modules.Emailalerts.Admin'); } } elseif (Tools::isSubmit('submitMAMerchant')) { $emails = (string) Tools::getValue('MA_MERCHANT_MAILS'); if (!$emails || empty($emails)) { - $errors[] = $this->trans('Please type one (or more) e-mail address', array(), 'Modules.Mailalerts.Admin'); + $errors[] = $this->trans('Please type one (or more) e-mail address', array(), 'Modules.Emailalerts.Admin'); } else { $emails = str_replace(',', self::__MA_MAIL_DELIMITOR__, $emails); $emails = explode(self::__MA_MAIL_DELIMITOR__, $emails); foreach ($emails as $k => $email) { $email = trim($email); if (!empty($email) && !Validate::isEmail($email)) { - $errors[] = $this->trans('Invalid e-mail:', array(), 'Modules.Mailalerts.Admin').' '.Tools::safeOutput($email); + $errors[] = $this->trans('Invalid e-mail:', array(), 'Modules.Emailalerts.Admin').' '.Tools::safeOutput($email); break; } elseif (!empty($email)) { $emails[$k] = $email; @@ -243,19 +243,19 @@ protected function postProcess() $emails = implode(self::__MA_MAIL_DELIMITOR__, $emails); if (!Configuration::updateValue('MA_MERCHANT_MAILS', (string) $emails)) { - $errors[] = $this->trans('Cannot update settings', array(), 'Modules.Mailalerts.Admin'); + $errors[] = $this->trans('Cannot update settings', array(), 'Modules.Emailalerts.Admin'); } elseif (!Configuration::updateValue('MA_MERCHANT_ORDER', (int) Tools::getValue('MA_MERCHANT_ORDER'))) { - $errors[] = $this->trans('Cannot update settings', array(), 'Modules.Mailalerts.Admin'); + $errors[] = $this->trans('Cannot update settings', array(), 'Modules.Emailalerts.Admin'); } elseif (!Configuration::updateValue('MA_MERCHANT_OOS', (int) Tools::getValue('MA_MERCHANT_OOS'))) { - $errors[] = $this->trans('Cannot update settings', array(), 'Modules.Mailalerts.Admin'); + $errors[] = $this->trans('Cannot update settings', array(), 'Modules.Emailalerts.Admin'); } elseif (!Configuration::updateValue('MA_LAST_QTIES', (int) Tools::getValue('MA_LAST_QTIES'))) { - $errors[] = $this->trans('Cannot update settings', array(), 'Modules.Mailalerts.Admin'); + $errors[] = $this->trans('Cannot update settings', array(), 'Modules.Emailalerts.Admin'); } elseif (!Configuration::updateGlobalValue('MA_MERCHANT_COVERAGE', (int) Tools::getValue('MA_MERCHANT_COVERAGE'))) { - $errors[] = $this->trans('Cannot update settings', array(), 'Modules.Mailalerts.Admin'); + $errors[] = $this->trans('Cannot update settings', array(), 'Modules.Emailalerts.Admin'); } elseif (!Configuration::updateGlobalValue('MA_PRODUCT_COVERAGE', (int) Tools::getValue('MA_PRODUCT_COVERAGE'))) { - $errors[] = $this->trans('Cannot update settings', array(), 'Modules.Mailalerts.Admin'); + $errors[] = $this->trans('Cannot update settings', array(), 'Modules.Emailalerts.Admin'); } elseif (!Configuration::updateGlobalValue('MA_RETURN_SLIP', (int) Tools::getValue('MA_RETURN_SLIP'))) { - $errors[] = $this->trans('Cannot update settings', array(), 'Modules.Mailalerts.Admin'); + $errors[] = $this->trans('Cannot update settings', array(), 'Modules.Emailalerts.Admin'); } } } @@ -263,7 +263,7 @@ protected function postProcess() if (count($errors) > 0) { $this->html .= $this->displayError(implode('
', $errors)); } else if (Tools::isSubmit('submitMailAlert') || Tools::isSubmit('submitMAMerchant')) { - $this->html .= $this->displayConfirmation($this->trans('Settings updated successfully', array(), 'Modules.Mailalerts.Admin')); + $this->html .= $this->displayConfirmation($this->trans('Settings updated successfully', array(), 'Modules.Emailalerts.Admin')); } $this->init(); @@ -315,7 +315,7 @@ public function hookActionValidateOrder($params) $message = $this->getAllMessages($order->id); if (!$message || empty($message)) { - $message = $this->trans('No message', array(), 'Modules.Mailalerts.Admin'); + $message = $this->trans('No message', array(), 'Modules.Emailalerts.Admin'); } $items_table = ''; @@ -336,7 +336,7 @@ public function hookActionValidateOrder($params) } if (isset($customization['datas'][Product::CUSTOMIZE_FILE])) { - $customization_text .= count($customization['datas'][Product::CUSTOMIZE_FILE]).' '.$this->trans('image(s)', array(), 'Modules.Mailalerts.Admin').'
'; + $customization_text .= count($customization['datas'][Product::CUSTOMIZE_FILE]).' '.$this->trans('image(s)', array(), 'Modules.Emailalerts.Admin').'
'; } $customization_text .= '---
'; @@ -368,7 +368,7 @@ public function hookActionValidateOrder($params) foreach ($params['order']->getCartRules() as $discount) { $items_table .= ' - '.$this->trans('Voucher code:', array(), 'Modules.Mailalerts.Admin').' '.$discount['name'].' + '.$this->trans('Voucher code:', array(), 'Modules.Emailalerts.Admin').' '.$discount['name'].' -'.Tools::displayPrice($discount['value'], $currency, false).' '; } @@ -920,16 +920,16 @@ public function renderForm() $fields_form_1 = array( 'form' => array( 'legend' => array( - 'title' => $this->trans('Customer notifications', array(), 'Modules.Mailalerts.Admin'), + 'title' => $this->trans('Customer notifications', array(), 'Modules.Emailalerts.Admin'), 'icon' => 'icon-cogs', ), 'input' => array( array( 'type' => 'switch', 'is_bool' => true, //retro compat 1.5 - 'label' => $this->trans('Product availability', array(), 'Modules.Mailalerts.Admin'), + 'label' => $this->trans('Product availability', array(), 'Modules.Emailalerts.Admin'), 'name' => 'MA_CUSTOMER_QTY', - 'desc' => $this->trans('Gives the customer the option of receiving a notification when an out-of-stock product is available again.', array(), 'Modules.Mailalerts.Admin'), + 'desc' => $this->trans('Gives the customer the option of receiving a notification when an out-of-stock product is available again.', array(), 'Modules.Emailalerts.Admin'), 'values' => array( array( 'id' => 'active_on', @@ -946,9 +946,9 @@ public function renderForm() array( 'type' => 'switch', 'is_bool' => true, //retro compat 1.5 - 'label' => $this->trans('Order edit', array(), 'Modules.Mailalerts.Admin'), + 'label' => $this->trans('Order edit', array(), 'Modules.Emailalerts.Admin'), 'name' => 'MA_ORDER_EDIT', - 'desc' => $this->trans('Send a notification to the customer when an order is edited.', array(), 'Modules.Mailalerts.Admin'), + 'desc' => $this->trans('Send a notification to the customer when an order is edited.', array(), 'Modules.Emailalerts.Admin'), 'values' => array( array( 'id' => 'active_on', @@ -975,9 +975,9 @@ public function renderForm() array( 'type' => 'switch', 'is_bool' => true, //retro compat 1.5 - 'label' => $this->trans('New order', array(), 'Modules.Mailalerts.Admin'), + 'label' => $this->trans('New order', array(), 'Modules.Emailalerts.Admin'), 'name' => 'MA_MERCHANT_ORDER', - 'desc' => $this->trans('Receive a notification when an order is placed.', array(), 'Modules.Mailalerts.Admin'), + 'desc' => $this->trans('Receive a notification when an order is placed.', array(), 'Modules.Emailalerts.Admin'), 'values' => array( array( 'id' => 'active_on', @@ -994,9 +994,9 @@ public function renderForm() array( 'type' => 'switch', 'is_bool' => true, //retro compat 1.5 - 'label' => $this->trans('Out of stock', array(), 'Modules.Mailalerts.Admin'), + 'label' => $this->trans('Out of stock', array(), 'Modules.Emailalerts.Admin'), 'name' => 'MA_MERCHANT_OOS', - 'desc' => $this->trans('Receive a notification if the available quantity of a product is below the following threshold.', array(), 'Modules.Mailalerts.Admin'), + 'desc' => $this->trans('Receive a notification if the available quantity of a product is below the following threshold.', array(), 'Modules.Emailalerts.Admin'), 'values' => array( array( 'id' => 'active_on', @@ -1012,10 +1012,10 @@ public function renderForm() ), array( 'type' => 'text', - 'label' => $this->trans('Threshold', array(), 'Modules.Mailalerts.Admin'), + 'label' => $this->trans('Threshold', array(), 'Modules.Emailalerts.Admin'), 'name' => 'MA_LAST_QTIES', 'class' => 'fixed-width-xs', - 'desc' => $this->trans('Quantity for which a product is considered out of stock.', array(), 'Modules.Mailalerts.Admin'), + 'desc' => $this->trans('Quantity for which a product is considered out of stock.', array(), 'Modules.Emailalerts.Admin'), ), ); @@ -1023,9 +1023,9 @@ public function renderForm() $inputs[] = array( 'type' => 'switch', 'is_bool' => true, //retro compat 1.5 - 'label' => $this->trans('Coverage warning', array(), 'Modules.Mailalerts.Admin'), + 'label' => $this->trans('Coverage warning', array(), 'Modules.Emailalerts.Admin'), 'name' => 'MA_MERCHANT_COVERAGE', - 'desc' => $this->trans('Receive a notification when a product has insufficient coverage.', array(), 'Modules.Mailalerts.Admin'), + 'desc' => $this->trans('Receive a notification when a product has insufficient coverage.', array(), 'Modules.Emailalerts.Admin'), 'values' => array( array( 'id' => 'active_on', @@ -1041,19 +1041,19 @@ public function renderForm() ); $inputs[] = array( 'type' => 'text', - 'label' => $this->trans('Coverage', array(), 'Modules.Mailalerts.Admin'), + 'label' => $this->trans('Coverage', array(), 'Modules.Emailalerts.Admin'), 'name' => 'MA_PRODUCT_COVERAGE', 'class' => 'fixed-width-xs', - 'desc' => $this->trans('Stock coverage, in days. Also, the stock coverage of a given product will be calculated based on this number.', array(), 'Modules.Mailalerts.Admin'), + 'desc' => $this->trans('Stock coverage, in days. Also, the stock coverage of a given product will be calculated based on this number.', array(), 'Modules.Emailalerts.Admin'), ); } $inputs[] = array( 'type' => 'switch', 'is_bool' => true, //retro compat 1.5 - 'label' => $this->trans('Returns', array(), 'Modules.Mailalerts.Admin'), + 'label' => $this->trans('Returns', array(), 'Modules.Emailalerts.Admin'), 'name' => 'MA_RETURN_SLIP', - 'desc' => $this->trans('Receive a notification when a customer requests a merchandise return.', array(), 'Modules.Mailalerts.Admin'), + 'desc' => $this->trans('Receive a notification when a customer requests a merchandise return.', array(), 'Modules.Emailalerts.Admin'), 'values' => array( array( 'id' => 'active_on', @@ -1071,15 +1071,15 @@ public function renderForm() 'type' => 'textarea', 'cols' => 36, 'rows' => 4, - 'label' => $this->trans('E-mail addresses', array(), 'Modules.Mailalerts.Admin'), + 'label' => $this->trans('E-mail addresses', array(), 'Modules.Emailalerts.Admin'), 'name' => 'MA_MERCHANT_MAILS', - 'desc' => $this->trans('One e-mail address per line (e.g. bob@example.com).', array(), 'Modules.Mailalerts.Admin'), + 'desc' => $this->trans('One e-mail address per line (e.g. bob@example.com).', array(), 'Modules.Emailalerts.Admin'), ); $fields_form_2 = array( 'form' => array( 'legend' => array( - 'title' => $this->trans('Merchant notifications', array(), 'Modules.Mailalerts.Admin'), + 'title' => $this->trans('Merchant notifications', array(), 'Modules.Emailalerts.Admin'), 'icon' => 'icon-cogs', ), 'input' => $inputs, @@ -1121,7 +1121,7 @@ public function hookActionDeleteGDPRCustomer($customer) if (Db::getInstance()->execute($sql)) { return json_encode(true); } - return json_encode($this->trans('Mail alert: Unable to delete customer using email.', array(), 'Modules.Mailalerts.Admin')); + return json_encode($this->trans('Mail alert: Unable to delete customer using email.', array(), 'Modules.Emailalerts.Admin')); } } @@ -1132,7 +1132,7 @@ public function hookActionExportGDPRData($customer) if ($res = Db::getInstance()->ExecuteS($sql)) { return json_encode($res); } - return json_encode($this->trans('Mail alert: Unable to export customer using email.', array(), 'Modules.Mailalerts.Admin')); + return json_encode($this->trans('Mail alert: Unable to export customer using email.', array(), 'Modules.Emailalerts.Admin')); } } diff --git a/views/templates/front/mailalerts-account.tpl b/views/templates/front/mailalerts-account.tpl index bf3e554..9869d7c 100644 --- a/views/templates/front/mailalerts-account.tpl +++ b/views/templates/front/mailalerts-account.tpl @@ -25,7 +25,7 @@ {extends file='customer/page.tpl'} {block name='page_title'} - {l s='My alerts' d='Modules.Mailalerts.Shop'} + {l s='My alerts' d='Modules.Emailalerts.Shop'} {/block} {block name='page_content'} @@ -36,6 +36,6 @@ {/foreach} {else} -

{l s='No mail alerts yet.' d='Modules.Mailalerts.Shop'}

+

{l s='No mail alerts yet.' d='Modules.Emailalerts.Shop'}

{/if} {/block} diff --git a/views/templates/hook/my-account-footer.tpl b/views/templates/hook/my-account-footer.tpl index 8e85bac..096ca3f 100644 --- a/views/templates/hook/my-account-footer.tpl +++ b/views/templates/hook/my-account-footer.tpl @@ -24,5 +24,5 @@ *}
  • - {l s='My alerts' d='Modules.Mailalerts.Shop'} + {l s='My alerts' d='Modules.Emailalerts.Shop'}
  • diff --git a/views/templates/hook/my-account.tpl b/views/templates/hook/my-account.tpl index 8e85bac..096ca3f 100644 --- a/views/templates/hook/my-account.tpl +++ b/views/templates/hook/my-account.tpl @@ -24,5 +24,5 @@ *}
  • - {l s='My alerts' d='Modules.Mailalerts.Shop'} + {l s='My alerts' d='Modules.Emailalerts.Shop'}
  • diff --git a/views/templates/hook/product.tpl b/views/templates/hook/product.tpl index 8a0b250..34ce49a 100644 --- a/views/templates/hook/product.tpl +++ b/views/templates/hook/product.tpl @@ -27,14 +27,14 @@
    {if isset($email) AND $email} -
    +
    {/if} {if isset($id_module)} {hook h='displayGDPRConsent' id_module=$id_module} {/if} - +
    From 6c3e88d7716d9cf45b7643857ce2af99d90f5652 Mon Sep 17 00:00:00 2001 From: Pablo Borowicz Date: Tue, 25 Aug 2020 14:51:36 +0200 Subject: [PATCH 3/9] Improve wordings Co-authored-by: LouiseBonnard <32565890+LouiseBonnard@users.noreply.github.com> --- ps_emailalerts.php | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/ps_emailalerts.php b/ps_emailalerts.php index 2680349..676564e 100644 --- a/ps_emailalerts.php +++ b/ps_emailalerts.php @@ -73,7 +73,7 @@ public function __construct() } $this->displayName = $this->trans('Mail alerts', array(), 'Modules.Emailalerts.Admin'); - $this->description = $this->trans('Sends e-mail notifications to customers and merchants regarding stock and order modifications.', array(), 'Modules.Emailalerts.Admin'); + $this->description = $this->trans('Make your everyday life easier, handle mail alerts about stock and orders, addressed to you as well as your customers.', array(), 'Modules.Emailalerts.Admin'); $this->ps_versions_compliancy = [ 'min' => '1.7.1.0', 'max' => _PS_VERSION_, @@ -224,14 +224,14 @@ protected function postProcess() $emails = (string) Tools::getValue('MA_MERCHANT_MAILS'); if (!$emails || empty($emails)) { - $errors[] = $this->trans('Please type one (or more) e-mail address', array(), 'Modules.Emailalerts.Admin'); + $errors[] = $this->trans('Please type one (or more) email address', array(), 'Modules.Emailalerts.Admin'); } else { $emails = str_replace(',', self::__MA_MAIL_DELIMITOR__, $emails); $emails = explode(self::__MA_MAIL_DELIMITOR__, $emails); foreach ($emails as $k => $email) { $email = trim($email); if (!empty($email) && !Validate::isEmail($email)) { - $errors[] = $this->trans('Invalid e-mail:', array(), 'Modules.Emailalerts.Admin').' '.Tools::safeOutput($email); + $errors[] = $this->trans('Invalid email:', array(), 'Modules.Emailalerts.Admin').' '.Tools::safeOutput($email); break; } elseif (!empty($email)) { $emails[$k] = $email; @@ -929,7 +929,7 @@ public function renderForm() 'is_bool' => true, //retro compat 1.5 'label' => $this->trans('Product availability', array(), 'Modules.Emailalerts.Admin'), 'name' => 'MA_CUSTOMER_QTY', - 'desc' => $this->trans('Gives the customer the option of receiving a notification when an out-of-stock product is available again.', array(), 'Modules.Emailalerts.Admin'), + 'desc' => $this->trans('Give the customer the option of receiving a notification when an out of stock product is available again.', array(), 'Modules.Emailalerts.Admin'), 'values' => array( array( 'id' => 'active_on', @@ -1071,9 +1071,9 @@ public function renderForm() 'type' => 'textarea', 'cols' => 36, 'rows' => 4, - 'label' => $this->trans('E-mail addresses', array(), 'Modules.Emailalerts.Admin'), + 'label' => $this->trans('Email addresses', array(), 'Modules.Emailalerts.Admin'), 'name' => 'MA_MERCHANT_MAILS', - 'desc' => $this->trans('One e-mail address per line (e.g. bob@example.com).', array(), 'Modules.Emailalerts.Admin'), + 'desc' => $this->trans('One email address per line (e.g. bob@example.com).', array(), 'Modules.Emailalerts.Admin'), ); $fields_form_2 = array( From 7616b2e461bbd1dc04a36288d2a210d96168babb Mon Sep 17 00:00:00 2001 From: Pablo Borowicz Date: Tue, 25 Aug 2020 14:56:21 +0200 Subject: [PATCH 4/9] Activate translation interface --- ps_emailalerts.php | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/ps_emailalerts.php b/ps_emailalerts.php index 676564e..186cd18 100644 --- a/ps_emailalerts.php +++ b/ps_emailalerts.php @@ -1150,4 +1150,9 @@ public function getConfigFieldsValues() 'MA_RETURN_SLIP' => Tools::getValue('MA_RETURN_SLIP', Configuration::get('MA_RETURN_SLIP')), ); } + + public function isUsingNewTranslationSystem() + { + return true; + } } From 9bd66475b15d2d1e112e11ebe006ad579e30ba6d Mon Sep 17 00:00:00 2001 From: Laurynas Sedys Date: Fri, 12 Jun 2020 11:58:25 +0300 Subject: [PATCH 5/9] Added new translator for email subjects --- MailAlert.php | 5 ++++- ps_emailalerts.php | 38 +++++++++++++++++++++++++++++++++----- 2 files changed, 37 insertions(+), 6 deletions(-) diff --git a/MailAlert.php b/MailAlert.php index ea98716..339cd4d 100644 --- a/MailAlert.php +++ b/MailAlert.php @@ -197,6 +197,9 @@ public static function sendCustomerAlert($id_product, $id_product_attribute) } $iso = Language::getIsoById($id_lang); + $locale = Language::getLocaleByIso($iso); + + $translator = Context::getContext()->getTranslatorFromLocale($locale); if (file_exists(dirname(__FILE__).'/mails/'.$iso.'/customer_qty.txt') && file_exists(dirname(__FILE__).'/mails/'.$iso.'/customer_qty.html')) { @@ -205,7 +208,7 @@ public static function sendCustomerAlert($id_product, $id_product_attribute) Mail::Send( $id_lang, 'customer_qty', - Mail::l('Product available', $id_lang), + $translator->trans('Product available', array(), 'Emails.Subject', $locale), $template_vars, (string) $customer_email, null, diff --git a/ps_emailalerts.php b/ps_emailalerts.php index 186cd18..72299a0 100644 --- a/ps_emailalerts.php +++ b/ps_emailalerts.php @@ -293,6 +293,7 @@ public function hookActionValidateOrder($params) // Getting differents vars $context = Context::getContext(); $id_lang = (int) $context->language->id; + $locale = $context->language->getLocale(); $id_shop = (int) $context->shop->id; $currency = $params['currency']; $order = $params['order']; @@ -491,7 +492,14 @@ public function hookActionValidateOrder($params) Mail::Send( $mail_id_lang, 'new_order', - sprintf(Mail::l('New order : #%d - %s', $mail_id_lang), $order->id, $order->reference), + $this->trans( + 'New order : #%d - %s', + array( + $order->id, + $order->reference + ), + 'Emails.Subject', + $locale), $template_vars, $merchant_mail, null, @@ -541,6 +549,7 @@ public function hookActionUpdateQuantity($params) $context = Context::getContext(); $id_shop = (int) $context->shop->id; $id_lang = (int) $context->language->id; + $locale = $context->language->getLocale(); $product = new Product($id_product, false, $id_lang, $id_shop, $context); $product_has_attributes = $product->hasAttributes(); $configuration = Configuration::getMultiple( @@ -578,7 +587,7 @@ public function hookActionUpdateQuantity($params) Mail::Send( $id_lang, 'productoutofstock', - Mail::l('Product out of stock', $id_lang), + $this->trans('Product out of stock', array(),'Emails.Subject', $locale), $template_vars, $merchant_mail, null, @@ -687,6 +696,7 @@ public function hookActionProductCoverage($params) Configuration::getGlobalValue('MA_MERCHANT_COVERAGE')) { $context = Context::getContext(); $id_lang = (int) $context->language->id; + $locale = $context->language->getLocale(); $id_shop = (int) $context->shop->id; $iso = Language::getIsoById($id_lang); $product_name = Product::getProductName($id_product, $id_product_attribute, $id_lang); @@ -704,7 +714,7 @@ public function hookActionProductCoverage($params) Mail::Send( $id_lang, 'productcoverage', - Mail::l('Stock coverage', $id_lang), + $this->trans('Stock coverage', array(), 'Emails.Subject', $locale), $template_vars, $merchant_mail, null, @@ -743,6 +753,7 @@ public function hookActionOrderReturn($params) $context = Context::getContext(); $id_lang = (int) $context->language->id; + $locale = $context->language->getLocale(); $id_shop = (int) $context->shop->id; $configuration = Configuration::getMultiple( array( @@ -840,6 +851,7 @@ public function hookActionOrderReturn($params) // Default language $mail_id_lang = $id_lang; $mail_iso = $iso; + $mail_locale = $locale; // Use the merchant lang if he exists as an employee $results = Db::getInstance()->executeS(' @@ -851,6 +863,7 @@ public function hookActionOrderReturn($params) if ($user_iso) { $mail_id_lang = (int) $results[0]['id_lang']; $mail_iso = $user_iso; + $mail_locale = Language::getLocaleByIso($user_iso); } } @@ -869,7 +882,15 @@ public function hookActionOrderReturn($params) Mail::Send( $mail_id_lang, 'return_slip', - sprintf(Mail::l('New return from order #%d - %s', $mail_id_lang), $order->id, $order->reference), + $this->trans( + 'New return from order #%d - %s', + array( + $order->id, + $order->reference + ), + 'Emails.Subject', + $mail_locale + ), $template_vars, $merchant_mail, null, @@ -897,6 +918,13 @@ public function hookActionOrderEdited($params) } $order = $params['order']; + $id_lang = (int) $order->id_lang; + $locale = $this->context->language->getLocale(); + $lang = new Language($id_lang); + + if (Validate::isLoadedObject($lang)) { + $locale = $lang->getLocale(); + } $data = array( '{lastname}' => $order->getCustomer()->lastname, @@ -908,7 +936,7 @@ public function hookActionOrderEdited($params) Mail::Send( (int) $order->id_lang, 'order_changed', - Mail::l('Your order has been changed', (int) $order->id_lang), + $this->trans('Your order has been changed', array(), 'Emails.Subject', $locale), $data, $order->getCustomer()->email, $order->getCustomer()->firstname.' '.$order->getCustomer()->lastname, From 647ca73bfcd8da4122bf88eea5e935503f707757 Mon Sep 17 00:00:00 2001 From: Progi1984 Date: Fri, 19 Jun 2020 17:15:02 +0200 Subject: [PATCH 6/9] Fixed some coding styles --- ps_emailalerts.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/ps_emailalerts.php b/ps_emailalerts.php index 72299a0..a5a69c2 100644 --- a/ps_emailalerts.php +++ b/ps_emailalerts.php @@ -587,7 +587,7 @@ public function hookActionUpdateQuantity($params) Mail::Send( $id_lang, 'productoutofstock', - $this->trans('Product out of stock', array(),'Emails.Subject', $locale), + $this->trans('Product out of stock', array(), 'Emails.Subject', $locale), $template_vars, $merchant_mail, null, @@ -919,11 +919,11 @@ public function hookActionOrderEdited($params) $order = $params['order']; $id_lang = (int) $order->id_lang; - $locale = $this->context->language->getLocale(); $lang = new Language($id_lang); - if (Validate::isLoadedObject($lang)) { $locale = $lang->getLocale(); + } else { + $locale = $this->context->language->getLocale(); } $data = array( From df1bb5724c2af1eaecf32cfc077e6e880d402581 Mon Sep 17 00:00:00 2001 From: Julie Varisellaz <70583503+Julievrz@users.noreply.github.com> Date: Wed, 28 Oct 2020 14:13:50 +0100 Subject: [PATCH 7/9] Update About section of README --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 0b06590..3dc53d9 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ ## About -Sends e-mail notifications to customers and merchants regarding stock and order modifications. +Make your everyday life easier, handle mail alerts about stock and orders, addressed to you as well as your customers. ## Multistore compatibility From 6b5f0bb38dd873d5a8424c2a77281f5e43b33057 Mon Sep 17 00:00:00 2001 From: Julie Varisellaz <70583503+Julievrz@users.noreply.github.com> Date: Wed, 28 Oct 2020 14:18:01 +0100 Subject: [PATCH 8/9] Update logo --- logo.png | Bin 4919 -> 4942 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/logo.png b/logo.png index dd9662ad8fa972580d210b14e656bb61a825e48b..d575a274af05b216dcab7c1e9a0440ba4ca74634 100644 GIT binary patch literal 4942 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 C3keDU literal 4919 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 p<8saUJ?I{|BFrIoB_;;yC~S002ovPDHLkV1i Date: Wed, 10 Mar 2021 19:05:27 +0200 Subject: [PATCH 9/9] Bump version to 2.2.2 --- config.xml | 2 +- ps_emailalerts.php | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/config.xml b/config.xml index 639526e..9991506 100644 --- a/config.xml +++ b/config.xml @@ -2,7 +2,7 @@ ps_emailalerts - + diff --git a/ps_emailalerts.php b/ps_emailalerts.php index a5a69c2..17aba99 100644 --- a/ps_emailalerts.php +++ b/ps_emailalerts.php @@ -59,7 +59,7 @@ public function __construct() { $this->name = 'ps_emailalerts'; $this->tab = 'administration'; - $this->version = '2.2.1'; + $this->version = '2.2.2'; $this->author = 'PrestaShop'; $this->need_instance = 0;