Script au login du checkout et CB

  • Posts: 56
  • Thank you received: 1
12 years 2 weeks ago #75815

Bonjour!

J'utilise Community Builder, et j'aimerai que lorsqu'un client non identifié effectue un paiement, lors de son authentification au checkout activer un script afin de mettre à jour certaines valeurs dans ma base.

Comme j'utilise par ailleurs CB, j'ai fais un plugin afin que cette MaJ s'effectue lors d'une identification direct par CB login. Or, je me suis aperçu que lors de l'identification au checkout cette MaJ ne s'effectuait pas: j'en ai déduit qu'Hikashop ne passait pas par CB lors de l'identification / registration du checkout. Si c'est effectivement le cas c'est assez ennuyeux parce que ça fait 2 tiers différents pour la registration / identification...En attendant confirmation/information j'aimerai pouvoir exécuter la MaJ script lors de son identification ou de son enregistrement au checkout! Est-ce que c'est possible? (encore une fois l'idéal serait d'utiliser les plugin de login / registration de CB)

Voilà! Merci encore pour le support!

Last edit: 12 years 2 weeks ago by RomainFaure.

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

  • Posts: 82868
  • Thank you received: 13376
  • MODERATOR
12 years 2 weeks ago #75982

Bonjour,

Vous devriez mettre votre script dans un plugin user joomla. Les plugin user de joomla sont à la fois trigger par CB, par joomla et par HikaShop lors de l'enregistrement d'un utilisateur.

En effet, HikaShop ne trigger pas les plugins CB vu qu'il n'y a pas de raison. Nous utilisons le système de login/enregistrement standard de joomla, à l'inverse de CB...

Voici la documentation sur le système de plugin de joomla: docs.joomla.org/Category:Plugin_Development
Vous y trouverez un article expliquant les différents triggers disponibles pour les plugins user et notemment onAfterStoreUser

The following user(s) said Thank You: RomainFaure

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

  • Posts: 56
  • Thank you received: 1
12 years 1 week ago #76063

Super! Merci Nicolas.

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

  • Posts: 56
  • Thank you received: 1
12 years 1 week ago #76197

Bonjour,

Nicolas tu as dit que vous utilisiez le système d'enregistrement standard: donc normalement, lorsque je m'enregistre dans le processus de paiement d'Hikashop, la fonction onAfterStoreUser est bien triggered par hikashop, c'est ça?

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

  • Posts: 82868
  • Thank you received: 13376
  • MODERATOR
12 years 1 week ago #76266

C'est tout à fait cela.

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

  • Posts: 56
  • Thank you received: 1
12 years 1 week ago #76322

Alors j'ai un bug!

Lorsque je login dans le processus de paiement j'ai bien la fonction onAfterLogin qui est triggered, mais quand j'enregistre un nouveau contact la fonction onAfterUserSave n'est pas triggered.

Par contre la fonction onAfterUserCreate est elle bien appelée.

EDIT: Je précise que lorsque je créer un nouvel utilisateur avec CB, la fonction onAfterUserCreate est triggered. Ca veut donc dire que CB déclenche une fonction qui est relevée par Hikashop...j'imagine que ce devrait être onAfterUserSave mais mes tests montrent que non. Je ne comprends pas :/

Last edit: 12 years 1 week ago by RomainFaure.

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

  • Posts: 82868
  • Thank you received: 13376
  • MODERATOR
12 years 1 week ago #76469

Je ne vous suis pas. onAfterUserCreate est un trigger d'HikaShop.
Je ne connais pas de trigger onAfterUserSave.
onAfterStoreUser est un trigger de joomla.

D'après moi les deux onAfterUserCreate et onAfterStoreUser devraient être appelés mais onAfterUserSave non vu que je ne sais même pas ce que c'est ? Donc normal que onAfterUserSave ne soit pas appelée dans votre plugin.

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

  • Posts: 56
  • Thank you received: 1
12 years 1 week ago #76471

Je me suis trompé dans le nom de la fonction: je voulais bien dire mais "quand j'enregistre un nouveau contact la fonction onAfterStoreUser n'est pas triggered."

En gros j'ai ça dans un plugin:

function onAfterStoreUser($user, $isnew, $success, $msg)
{
write_log();
}

function onAfterUserCreate(&$element) // Hikashop function
{
write_log();
}

Et là j'ai bien le log de onAfterUserCreate mais pas celui de onAfterStoreUser.

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

  • Posts: 56
  • Thank you received: 1
12 years 1 week ago #76631

Ok, alors voici la solution: onAfterStoreUser n'est plus appelée à partir de joomla 1.6, et il faut appeler onUserAfterSave à la place.

En regardant les différents user plugin qui existe, j'ai dû tomber sur les 2 fonctions onAfterStoreUser et onUserAfterSave (et j'ai mal écrit cette dernière dans mon poste ci-dessus). Pour retomber sur nos pattes on peut par exemple utiliser la redirection suivante qui fait le lien entre joomla 1.5 et les versions suivantes:

function onUserAfterSave($user, $isnew, $success, $msg)
{
return $this->onAfterStoreUser($user, $isnew, $success, $msg);
}

Ce serait plus simple si la doc de joomla était à jour (par exemple la partie user plugin qui n'existe que pour joomla 1.5) pour chacune des versions, du coup en attendant il faut être vigilant. Voilà!

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

  • Posts: 26158
  • Thank you received: 4028
  • MODERATOR
12 years 1 week ago #76788

Bonsoir,

Oui, il faut rester vigilant et utiliser pas mal de petites astuces pour garder la compatibilité 1.5 à 3.0

Merci pour les informations !

Cordialement


Jerome - Obsidev.com
HikaMarket & HikaSerial developer / HikaShop core dev team.

Also helping the HikaShop support team when having some time or couldn't sleep.
By the way, do not send me private message, use the "contact us" form instead.

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

Time to create page: 0.066 seconds
Powered by Kunena Forum