Modifier la commande quand on résilie l'abonnement récurrent
Hello,
Quand on résilie un abonnement avec paiement récurent, il reste actif jusqu'a la fin de la derniere échéance, mais on a quand même envie de pourvoir afficher sur l'interface que l'abonnement est bien annulé, et qu'il s'arretera à la date de fin.
Pour savoir ca je me fie actuellement au statut de la commande liée à ce bank_uid.
Quand on annule un abonnement payé par le prestaire Stripe du plugin bank, j'ai remarqué que la commande liée passe en statut "erreur".
Probablement en passant par https://git.spip.net/spip-contrib-extensions/commandes/src/branch/master/commandes_pipelines.php#L527
Pour un autre prestataire de paiement, la commande n'est pas affectée par l'action de réslier l'abonnement.
Pour mettre tout le monde d'accord, on pourrait gérer dans le plugin abonnement, la modification de la commande liée, avec un nouveau statut de commande 'annulee'.
Donc ajouter dans action/resilier_abonnement
// s'il y a toujours une commande de statut paye ou erreur (après la désabo stripe) avec ce bank_uid, on la passe en annulée.
// CF commandes_pipelines
if(
$commande = sql_fetsel('*', 'spip_commandes', 'bank_uid = '.sql_quote($bank_uid) . 'and statut="paye"')
and $id_commande = intval($commande['id_commande'])
){
include_spip('action/editer_objet');
// Le prélèvement est annulé explicitement, donc la commande d'origine est en annulee
objet_modifier('commande', $id_commande, array('statut' => 'annulee'));
}
Vous voyez une autre manière de faire ?