-- HikaShop version -- : 5.1.1
-- HikaSerial version -- : 5.0.0
-- Joomla version -- : 3.10.12
-- PHP version -- : 7.3.33
Bonjour,
Je développe un plugin simple sur HikaSubscription. Les souscriptions sont des adhésions à renouveler tous les ans. Si une personne à une souscription active elle fait partie du groupe "membre". Cette partie-là fonctionne bien. A l'achat, "subscription active", la personne est mise dans le bon groupe. A l'expiration, elle est supprimée de ce groupe sauf si elle renouvelle.
Le but du plugin est d'autoriser ou pas la personne a figurer dans l'annuaire (cotisation à jour : oui. Sinon, pas d'affichage). Le plugin fait un simple baculement de switch dans l'annuaire selon que la souscription est active ou pas.
1/ il manquerait sur cette page :
www.hikashop.com/support/documentation/1...#subscription_plugin
une description de l'évènement déclencheur et un petit peu d'explications comme sur
www.hikashop.com/support/documentation/6...mentation.html#order
2/ Pour la partie "activation", cela semble fonctionner. En utilisant "onAfterSubscriptionUpdate" on récupère l'information d'activation tant à la création de la commande (créé-->confirmée) qu'au renouvellement de la souscription. Si on utilise "onSubscriptionActivation", on ne voit pas passer le renouvellement... Exact ?
3/ lorsque le cron détecte une fin de souscription, il active onBeforeSubscriptionExpire avec la liste des souscriptions expirées. Même chose ensuite avec onAfterSubscriptionExpire . Mais dans les deux cas, le status de la souscription concernée (une seule dans ce cas) est toujours "active". Tant "before" que "after"... Pourtant dans l'interface backend, elle est bien expirée... Est-ce normal ? Comment détecter qu'une souscription est bien expirée ?
4/ j'avais positionné mon code dans "onSubscriptionExpiration" pensant récupérer les informations de la souscription passant de active à expirée. Mais cet évènement n'est pas déclenché...
Voici les paramètres liés à l'expiration :
et voici l'extrait du log au moment ou le cron a basculé une souscription de active à expirée :
[28/11/2024 17:01] - onBeforeSubscriptionExpire.
[28/11/2024 17:01] - objet expired_subscriptions : Array
(
[172] => stdClass Object
(
[subscription_id] => 172
[subscription_pack_id] => 1
[subscription_data] => ujlAdPjn7lht1yD
[subscription_extradata] =>
[subscription_status] => active
[subscription_created] => 1701187120
[subscription_modified] => 0
[subscription_start_date] => 1701187190
[subscription_end_date] => 1732809590
[subscription_user_id] => 188
[subscription_auto_renew] => 0
[subscription_payment_renew] =>
)
)
[28/11/2024 17:01] - objet plans : Array
(
[1] => stdClass Object
(
[pack_id] => 1
[pack_name] => Adhésion xxxxx
[pack_data] => sql
[pack_generator] =>
[pack_published] => 1
[pack_type] => subscription
[pack_group_id] => 0
[pack_vendor_id] => 0
[pack_manage_access] => all
[pack_email_inherit] => 1
[pack_params] => stdClass Object
(
[generator_format] =>
[generator_size] =>
[groupsubscriber] => Array
(
[groups] => 10
)
)
[pack_description] => <p>Description du plan adhésion ?</p>
)
)
[28/11/2024 17:01] - objet users : Array
(
[188] => stdClass Object
(
[user_id] => 188
[user_cms_id] => 7323
[user_email] => dominiquexxxxx@xxxxx.fr
[user_partner_email] =>
[user_params] =>
[user_partner_id] => 0
[user_partner_price] => 0.00000
[user_partner_paid] => 0
[user_created_ip] => 2001:861:7e9:8af5
[user_unpaid_amount] => 0.00000
[user_partner_currency_id] => 0
[user_created] => 1675866133
[user_currency_id] => 0
[user_partner_activated] => 0
[prescripteur] => xxxxx
[id] => 7323
[name] => xxxxxx
[username] => domxxxxx
[email] => dominiquexxxxx@xxxxxxxx.fr
[password] => $W50YVB5d1i
[block] => 0
[sendEmail] => 0
[registerDate] => 2023-02-08 14:22:13
[lastvisitDate] => 2024-11-19 21:15:02
[activation] =>
[params] => {"site_language":"fr-FR","language":"fr-FR"}
[lastResetTime] => 0000-00-00 00:00:00
[resetCount] => 0
[otpKey] =>
[otep] =>
[requireReset] => 0
[authProvider] =>
)
)
[28/11/2024 17:01] - onAfterSubscriptionExpire.
[28/11/2024 17:01] - objet expired_subscriptions : Array
(
[172] => stdClass Object
(
[subscription_id] => 172
[subscription_pack_id] => 1
[subscription_data] => ujlAdPjn7lht1yD
[subscription_extradata] =>
[subscription_status] => active
[subscription_created] => 1701187120
[subscription_modified] => 0
[subscription_start_date] => 1701187190
[subscription_end_date] => 1732809590
[subscription_user_id] => 188
[subscription_auto_renew] => 0
[subscription_payment_renew] =>
)
)
[28/11/2024 17:01] - objet plans : Array
(
[1] => stdClass Object
(
[pack_id] => 1
[pack_name] => Adhésion au xxxxxxxxx
[pack_data] => sql
[pack_generator] =>
[pack_published] => 1
[pack_type] => subscription
[pack_group_id] => 0
[pack_vendor_id] => 0
[pack_manage_access] => all
[pack_email_inherit] => 1
[pack_params] => stdClass Object
(
[generator_format] =>
[generator_size] =>
[groupsubscriber] => Array
(
[groups] => 10
)
)
[pack_description] => <p>Description du plan adhésion ?</p>
)
)
[28/11/2024 17:01] - objet users : Array
(
[188] => stdClass Object
(
[user_id] => 188
[user_cms_id] => 7323
[user_email] => dominiquexxxxxxxxxx@xxxxxxxxx.fr
[user_partner_email] =>
[user_params] =>
[user_partner_id] => 0
[user_partner_price] => 0.00000
[user_partner_paid] => 0
[user_created_ip] => 2001:861::8af5
[user_unpaid_amount] => 0.00000
[user_partner_currency_id] => 0
[user_created] => 1675866133
[user_currency_id] => 0
[user_partner_activated] => 0
[prescripteur] => xxxx
[id] => 7323
[name] => xxxxxxxx
[username] => domxxxxx
[email] => dominiquexxxxxx@xxxxxxx.fr
[password] => $20YVB5d1i
[block] => 0
[sendEmail] => 0
[registerDate] => 2023-02-08 14:22:13
[lastvisitDate] => 2024-11-19 21:15:02
[activation] =>
[params] => {"site_language":"fr-FR","language":"fr-FR"}
[lastResetTime] => 0000-00-00 00:00:00
[resetCount] => 0
[otpKey] =>
[otep] =>
[requireReset] => 0
[authProvider] =>
)
)
Il ne semble pas y avoir d'erreurs PHP.
Merci de m'aider à y voir clair.
Laurent