Éditer {TXT:ORDER_BEGIN_MESSAGE} et {TXT:ORDER_END_MESSAGE}

  • Posts: 462
  • Thank you received: 18
  • Hikashop Business
5 months 2 weeks ago #361361

-- HikaShop version -- : 5.0.4
-- Joomla version -- : 5.1.1
-- PHP version -- : 8.3.6

Bonjour,

je voudrais changer le texte {TXT:ORDER_BEGIN_MESSAGE} et {TXT:ORDER_END_MESSAGE} pour certaines notifications du statut de la commande, comme par exemple pour celui du statut "Annulée".
Je ne me rappelle plus si vous m'aviez déjà informé à ce sujet, je dois dire qu'il y a tellement d'options que parfois je m'y perds, est-ce que cela se passe du coté de l'override de Joomla? Pourtant je n'ai pas trouvée de références pour cette chaîne de caractères...

Autre chose, j'ai créé un champ personnalisé de type "Texte" de la table "Commande" pour indiquer le point de retrait du colis pour un service de livraison.
Pensez-vous qu'il sera possible dans une prochaine version d'Hikashop de pouvoir faire un lien avec ce champ et votre plugin "Google map address auto fill"? Puisque j'ai l'intention de l'acheter ça serait bien qu'il puisse intéragir aussi avec les champs personnalisés.

Merci,
Lorenzo

Please Log in or Create an account to join the conversation.

  • Posts: 4747
  • Thank you received: 644
  • MODERATOR
5 months 2 weeks ago #361363

Bonjour,

Pour des raison de bonne lisibilité du forum, nous allons vous demander de n'évoquer qu'un thème par sujet, et surtout si les deux sujets n'ont aucun lien direct comme ici.

Je vais donc répondre à la première question, et vous laissez créer un autre sujet pour la deuxième partie de votre message.
Désolé pour ce retour.

Pour votre email :
Vous devez editez votre email dans HikaShop Configuration, System dropdown => Emails.
Puis cliquez pour editer votre email "Order Status Notification", puis dans la partie preload autour des lignes 98 & 99.
vous trouverez l'ajout des messages dans les tag qui encadrent votre email.

Du coup, vous pouvez ajouter un check via un "if" pour assigner en dynamique différent message, exemple :

f ($data->mail_status != "cancelled") {
   	'ORDER_BEGIN_MESSAGE' => JText::sprintf('THANK_YOU_FOR_YOUR_ORDER_BEGIN', HIKASHOP_LIVE),
	'ORDER_END_MESSAGE' => JText::sprintf('THANK_YOU_FOR_YOUR_ORDER', HIKASHOP_LIVE) . '<br/>' . JText::sprintf('BEST_REGARDS_CUSTOMER',$mail->from_name),
}
else {
  	'ORDER_BEGIN_MESSAGE' => 'Your cancelled message',
	'ORDER_END_MESSAGE' => 'Your cancelled message 2',
}

Cordialement

Last edit: 5 months 2 weeks ago by Philip.
The following user(s) said Thank You: kilou

Please Log in or Create an account to join the conversation.

  • Posts: 462
  • Thank you received: 18
  • Hikashop Business
5 months 2 weeks ago #361364

Bonjour
merci, j’ai vite effectué un test avec votre code sans changer le message que je voudrai insérer, mais j’ai une erreur de syntaxe

syntax error, unexpected token "=>"

évidemment j’ai du copier votre code au mauvais endroit, mais par logique c’est la que je l’aurai copié…

$texts = array(
	'BILLING_ADDRESS' => JText::_('HIKASHOP_BILLING_ADDRESS'),
	'SHIPPING_ADDRESS' => JText::_('HIKASHOP_SHIPPING_ADDRESS'),
	'SUMMARY_OF_YOUR_ORDER' => JText::_('SUMMARY_OF_YOUR_ORDER'),
	'MAIL_HEADER' => JText::_('HIKASHOP_MAIL_HEADER'),
	'TPL_HEADER_TEXT' => JText::_('HIKASHOP_MAIL_HEADER'),
	'USER_ACCOUNT' => (bool)@$customer->user_cms_id,
	'PRODUCT_NAME' => JText::_('CART_PRODUCT_NAME'),
	'PRODUCT_CODE' => JText::_('CART_PRODUCT_CODE'),
	'PRODUCT_PRICE' => JText::_('CART_PRODUCT_UNIT_PRICE'),
	'PRODUCT_QUANTITY' => JText::_('CART_PRODUCT_QUANTITY'),
	'PRODUCT_TOTAL' => JText::_('HIKASHOP_TOTAL'),
	'ADDITIONAL_INFORMATION' => JText::_('ADDITIONAL_INFORMATION'),

	'ORDER_TITLE' => JText::_('YOUR_ORDER'),
	'HI_CUSTOMER' => JText::sprintf('HI_CUSTOMER', $customer_name),
	'ORDER_CHANGED' => $order_changed,
	'ORDER_BEGIN_MESSAGE' => JText::sprintf('THANK_YOU_FOR_YOUR_ORDER_BEGIN', HIKASHOP_LIVE),
	'ORDER_END_MESSAGE' => JText::sprintf('THANK_YOU_FOR_YOUR_ORDER', HIKASHOP_LIVE) . '<br/>' . JText::sprintf('BEST_REGARDS_CUSTOMER',$mail->from_name),
);
if($data->mail_status != "cancelled") {
   	'ORDER_BEGIN_MESSAGE' => JText::sprintf('THANK_YOU_FOR_YOUR_ORDER_BEGIN', HIKASHOP_LIVE),
	'ORDER_END_MESSAGE' => JText::sprintf('THANK_YOU_FOR_YOUR_ORDER', HIKASHOP_LIVE) . '<br/>' . JText::sprintf('BEST_REGARDS_CUSTOMER',$mail->from_name),
}
else {
  	'ORDER_BEGIN_MESSAGE' => 'Your cancelled message',
	'ORDER_END_MESSAGE' => 'Your cancelled message 2',
}
if(!empty($data->usermsg->usermsg)){
	$texts['ORDER_CHANGED'] = $data->usermsg->usermsg;
}

Je me fais aussi une autre réflexion, je n’ai pas l’impression que le code tel quel sera multilingue… ? Ne serait-il pas mieux d’avoir tout à fait une nouvelle constante afin de la traduire dans le système de traduction de Joomla?

Please Log in or Create an account to join the conversation.

  • Posts: 82863
  • Thank you received: 13372
  • MODERATOR
5 months 2 weeks ago #361367

Bonjour,

En PHP, vous ne pouvez pas mettre de conditions directement au milieu de la création d'un array.

Ce que propose Philippe est possible, mais il faut l'extraire de la création de l'array.
Donc, par exemple, avec le code par défaut, vous pourriez ajoutez ce code:

if($data->mail_status == "cancelled") {
 $texts['ORDER_BEGIN_MESSAGE'] = 'Your cancelled message';
 $texts['ORDER_END_MESSAGE'] = 'Your cancelled message 2';
}
avant le code:
if(!empty($data->usermsg->usermsg)){

Et en effet, en l'état, le code ne serait pas multilingue. Mais vous pourriez simplement l'améliorer pour que ce soit le cas. Philippe a juste voulu fournir un exemple simple.

Par exemple, avec des clés de traductions:
if($data->mail_status == "cancelled") {
 $texts['ORDER_BEGIN_MESSAGE'] = JText::_('CLE_DE_TRADUCTION_NUMERO_1');
 $texts['ORDER_END_MESSAGE'] = JText::_('CLE_DE_TRADUCTION_NUMERO_2');
}

D'ailleurs, personnellement, je pense que vous auriez pu faire cela sans aucune connaissance en PHP. En effet, lorsque vous éditez l'email "order status notification", il y a un bouton "per status override", en haut de la zone "preload".
Ce bouton permet de changer le code uniquement pour un statut de commande particulier.
Donc vous pourriez faire un override du preload pour le status "cancelled", et dans le preload de la popup, vous pouvez juste changer les clés de traduction THANK_YOU_FOR_YOUR_ORDER_BEGIN et THANK_YOU_FOR_YOUR_ORDER par de nouvelles clés.
C'est bien plus simple ainsi.

Last edit: 5 months 2 weeks ago by nicolas.
The following user(s) said Thank You: kilou, Philip

Please Log in or Create an account to join the conversation.

  • Posts: 462
  • Thank you received: 18
  • Hikashop Business
5 months 2 weeks ago #361376

Bonjour,
je ne savais pas qu'on pouvait ajouter ainsi et à la volée une clé de traduction, tout devient plus clair maintenant, merci à vous deux.

Please Log in or Create an account to join the conversation.

Time to create page: 0.063 seconds
Powered by Kunena Forum