wildkatan, thanks for making your work available for others to use!
a quiestion about how subscriptions expire when cancelled via paypal.
I have a subscription set to charge a user $40 every 3 months, and to limit the subscription to four payments (so it's basically a yearly subscription paid in quarterly installments).
On the users page, while looking at "current memberships" the expiration date seems to reflect the final expiration date (ie, when the account would expire, should all 4 payments be made)
This seems well enough, as that is the projected expiration date, should a user continue payments.
The problem i am having, is that that once the user clicks on the handy "cancel subscription" link, and terminates payments, the change is not reflected in the expiration date.
This seems a bug, as i would expect for a user's access to be limited by the duration paid for, as opposed to that simply projected. With the module acting in this manner, if i allow my users to pay quarterly for ten years, could they not simply pay for the initial quarter, discontinue membership, and still have an active account for ten years unpaid?
I made a point to run cron after making the cancellation, but with no effect.
Here are screenshots of my settings, and the content of "current memberships" after cancellation:










Andrew,
Thank you very much for the detailed bug report. What is happening is the stored date is only a projected expiration date. It is not used to determine when a subscription is cancelled (this is done by Paypal's 'End of Term' IPN). So the subscriptions that are canceled early should expire at the correct time.
This is, however, a bug that needs to be fixed, namely, that the expiration date should be updated or changed to reflect when someone cancels early. I will add this to the planned update.
Sincerely,
Leighton