- Posts: 31
- Thank you received: 0
[FR] hikasubscription groupsubscriber plugin multiple subscription problem
- Atelierin8
-
Topic Author
- Offline
Less
More
4 years 10 months ago #336780
by Atelierin8
[FR] hikasubscription groupsubscriber plugin multiple subscription problem was created by Atelierin8
-- HikaShop version -- : 4.4.4
-- HikaSerial version -- : 4.0.0
-- Joomla version -- : 3.10
-- PHP version -- : 7.4
-- Browser(s) name and version -- : firefox 94
-- Error-message(debug-mod must be tuned on) -- : no error
Bonjour,
J'utilise le plugin groupsubscriber avec hikasubscription.
Dans mon cas de figure, on peut acheter des produits sur la boutique hikashop qui correspondent à des abonnements donnant accès à des contenus du site privés.
Il y a par exemple un abonnement 1 an et un abonnement 2 ans. Les deux produits passent l'utilisateur dans un groupe utilisateur joomla "abonnés".
Le problème que je rencontre est que certain utilisateurs achètent un abonnement 1 an, ils sont bien passés dans le groupe "abonnés". Puis a l'approche de l'expiration au lieu de renouveler, ils achètent l'abonnement deux ans. Ils sont déjà dans le groupe "abonnés" donc ils y reste c'est normal.
Mais ça leur créé deux abonnements, et quand le premier (1an) expire, ils sont retirés du groupe "Abonnés" . Alors que l'autre abonnement (2 ans) est toujours actif. Je comprend bien la logique du plugin mais en pratique pour les utilisateurs ce n'est pas logique.
Comment faire pour garder les utilisateurs dans le groupe malgré un abonnement qui prend fin alors qu'un autre abonnement est toujours actif.
J'ai regardé le code du fichier groupsubscriber.php mais j'avoue être un peu perdu, a mon avis il faudrait que ce script vérifie l’existence d'autres abonnements actifs de l'utilisateur et qui ont la même assignation de groupe, pour dans ce cas empêcher de désinscrire l'utilisateur du groupe.
Il y a peut-être une autre solution....
Merci !
-- HikaSerial version -- : 4.0.0
-- Joomla version -- : 3.10
-- PHP version -- : 7.4
-- Browser(s) name and version -- : firefox 94
-- Error-message(debug-mod must be tuned on) -- : no error
Bonjour,
J'utilise le plugin groupsubscriber avec hikasubscription.
Dans mon cas de figure, on peut acheter des produits sur la boutique hikashop qui correspondent à des abonnements donnant accès à des contenus du site privés.
Il y a par exemple un abonnement 1 an et un abonnement 2 ans. Les deux produits passent l'utilisateur dans un groupe utilisateur joomla "abonnés".
Le problème que je rencontre est que certain utilisateurs achètent un abonnement 1 an, ils sont bien passés dans le groupe "abonnés". Puis a l'approche de l'expiration au lieu de renouveler, ils achètent l'abonnement deux ans. Ils sont déjà dans le groupe "abonnés" donc ils y reste c'est normal.
Mais ça leur créé deux abonnements, et quand le premier (1an) expire, ils sont retirés du groupe "Abonnés" . Alors que l'autre abonnement (2 ans) est toujours actif. Je comprend bien la logique du plugin mais en pratique pour les utilisateurs ce n'est pas logique.
Comment faire pour garder les utilisateurs dans le groupe malgré un abonnement qui prend fin alors qu'un autre abonnement est toujours actif.
J'ai regardé le code du fichier groupsubscriber.php mais j'avoue être un peu perdu, a mon avis il faudrait que ce script vérifie l’existence d'autres abonnements actifs de l'utilisateur et qui ont la même assignation de groupe, pour dans ce cas empêcher de désinscrire l'utilisateur du groupe.
Il y a peut-être une autre solution....
Merci !
Please Log in or Create an account to join the conversation.
4 years 10 months ago #336808
by Jerome
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.
Replied by Jerome on topic [FR] hikasubscription groupsubscriber plugin multiple subscription problem
Bonjour,
Vu ce que vous me décrivez, il s'agit d'un bug car le plugin "groupsubscriber" doit prendre en compte les abonnements actifs et ne pas supprimer un groupe si une autre souscription active y donne accès.
Pouvez-vous me fournir la configuration de ces deux plans afin que je puisse vérifier et reproduire votre souci ?
Cordialement,
Vu ce que vous me décrivez, il s'agit d'un bug car le plugin "groupsubscriber" doit prendre en compte les abonnements actifs et ne pas supprimer un groupe si une autre souscription active y donne accès.
Pouvez-vous me fournir la configuration de ces deux plans afin que je puisse vérifier et reproduire votre souci ?
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.
- Atelierin8
-
Topic Author
- Offline
Less
More
- Posts: 31
- Thank you received: 0
4 years 10 months ago #336819
by Atelierin8
Replied by Atelierin8 on topic [FR] hikasubscription groupsubscriber plugin multiple subscription problem
Bonjour,
En pièces jointes les différents paramètres utilisés
Dans mon cas Il n'y a qu'un seul plan et plusieurs produits. ( peut-être que le problème vient de là, il faudrait des plans différents pour que le plugin sache qu'il y a un autre plan actif, et non pas qu'il y a un autre produit avec le même plan ? )
Merci !
En pièces jointes les différents paramètres utilisés
Dans mon cas Il n'y a qu'un seul plan et plusieurs produits. ( peut-être que le problème vient de là, il faudrait des plans différents pour que le plugin sache qu'il y a un autre plan actif, et non pas qu'il y a un autre produit avec le même plan ? )
Merci !
Please Log in or Create an account to join the conversation.
- Atelierin8
-
Topic Author
- Offline
Less
More
- Posts: 31
- Thank you received: 0
4 years 10 months ago #336831
by Atelierin8
Replied by Atelierin8 on topic [FR] hikasubscription groupsubscriber plugin multiple subscription problem
Après avoir re-regardé le code du fichier groupsubscriber.php, pour moi la fonction onSubscriptionExpiration (utilisée lorsque on change le statut d'un abonnement en admin):
public function onSubscriptionExpiration(&$subscription, $user, $status) (ligner 48)
fait bien la vérification des autre plans (si je change le statut d'un abonnement en admin l'utilisateur garde bien le groupe de l'autre abonnement.
Par contre la fonction onAfterSubscriptionsExpire (utilisée lorsque l'utilisateur se connecte):
public function onAfterSubscriptionsExpire(&$expired_subscriptions, $plans, $users) { (ligne 109)
ne fait pas de check des autres abonnements du coup il est retiré du groupe.
Je ne propose pas de solution car je ne sais pas les implications qu'il peut y avoir derrière.... aussi pourquoi ces deux fonctions sont différentes, ne devrait elle pas faire la même chose ?
Merci de votre aide.
public function onSubscriptionExpiration(&$subscription, $user, $status) (ligner 48)
fait bien la vérification des autre plans (si je change le statut d'un abonnement en admin l'utilisateur garde bien le groupe de l'autre abonnement.
Par contre la fonction onAfterSubscriptionsExpire (utilisée lorsque l'utilisateur se connecte):
public function onAfterSubscriptionsExpire(&$expired_subscriptions, $plans, $users) { (ligne 109)
ne fait pas de check des autres abonnements du coup il est retiré du groupe.
Je ne propose pas de solution car je ne sais pas les implications qu'il peut y avoir derrière.... aussi pourquoi ces deux fonctions sont différentes, ne devrait elle pas faire la même chose ?
Merci de votre aide.
Please Log in or Create an account to join the conversation.
4 years 10 months ago #336840
by Jerome
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.
Replied by Jerome on topic [FR] hikasubscription groupsubscriber plugin multiple subscription problem
Bonjour,
Merci pour votre retour.
Effectivement, il manque une vérification pour votre cas.
Je suis en train de faire différents tests afin de proposer une solution optimisée pour assurer un maximum de vérification sans avoir à faire trop de requêtes en base de données (qui peut poser soucis lors que nous sommes dans une tâche Cron).
J'aurais actuellement un correctif "simple" pour votre cas très précis ou l'utilisateur possède une autre souscription active pour le même plan que celui qui expire ; pour l'ensemble des scénarii de tests unitaires que rédigé, le correctif complet va être plus long à valider mais c'est en cours.
Pour répondre à votre question ; les fonctions doivent faire le même genre de vérifications mais leur context d'appel est très différent ; le trigger "onAfterSubscriptionsExpire" peut prendre un grand nombre de souscription pour une multitude d'utilisateur.
Cordialement,
Merci pour votre retour.
Effectivement, il manque une vérification pour votre cas.
Je suis en train de faire différents tests afin de proposer une solution optimisée pour assurer un maximum de vérification sans avoir à faire trop de requêtes en base de données (qui peut poser soucis lors que nous sommes dans une tâche Cron).
J'aurais actuellement un correctif "simple" pour votre cas très précis ou l'utilisateur possède une autre souscription active pour le même plan que celui qui expire ; pour l'ensemble des scénarii de tests unitaires que rédigé, le correctif complet va être plus long à valider mais c'est en cours.
Pour répondre à votre question ; les fonctions doivent faire le même genre de vérifications mais leur context d'appel est très différent ; le trigger "onAfterSubscriptionsExpire" peut prendre un grand nombre de souscription pour une multitude d'utilisateur.
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.
- Atelierin8
-
Topic Author
- Offline
Less
More
- Posts: 31
- Thank you received: 0
4 years 10 months ago #336848
by Atelierin8
Replied by Atelierin8 on topic [FR] hikasubscription groupsubscriber plugin multiple subscription problem
Bonjour,
Ok merci !
j'attends donc le correctif. et / ou si vous pouvez, le correctif "simple" peut déjà être bien en attendant...
Merci encore.
Ok merci !
j'attends donc le correctif. et / ou si vous pouvez, le correctif "simple" peut déjà être bien en attendant...
Merci encore.
Please Log in or Create an account to join the conversation.
4 years 10 months ago #336856
by Jerome
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.
Replied by Jerome on topic [FR] hikasubscription groupsubscriber plugin multiple subscription problem
Bonjour,
J'ai un correctif plus complet qui sera intégré dans la prochaine version.
En attendant, vous que vous n'avez qu'un seul plan, vous pouvez utiliser ce code :
Que vous pouvez placer juste avant la ligne
afin de ne pas faire l'ajout de la souscription (et de l'utilisateur) si jamais l'utilisateur possède actuellement une souscription active pour le même plan.
Cordialement,
J'ai un correctif plus complet qui sera intégré dans la prochaine version.
En attendant, vous que vous n'avez qu'un seul plan, vous pouvez utiliser ce code :
Code:
// Check if the user have an active subscription in the same plan
$other = false;
foreach($users[$user_id]->subscriptions as $sub) {
if((int)$sub->subscription_pack_id == $plan_id) {
$other = true;
break;
}
}
if($other)
continue;
Code:
$supported_subscriptions[$key] =& $expired_subscription;
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.
- Atelierin8
-
Topic Author
- Offline
Less
More
- Posts: 31
- Thank you received: 0
4 years 10 months ago #336860
by Atelierin8
Replied by Atelierin8 on topic [FR] hikasubscription groupsubscriber plugin multiple subscription problem
Bonjour et merci,
Je viens de tester, ça fonctionne pour moi.
Merci encore !
Je viens de tester, ça fonctionne pour moi.
Merci encore !
Please Log in or Create an account to join the conversation.
Moderators: Obsidev
Time to create page: 0.273 seconds