Legacy paypal user upgrade does not show cancel button


Well-known member
Affected version
2.2.7 Patch 1
Legacy paypal user-upgrades do not show the cancel button.

This looks to be because there is no PurchaseRequest record, which is likely linked to my previous bug report around user search for legacy paypal subscriptions not working.

<xf:if is="$upgrade.length_unit && $upgrade.recurring && $active.PurchaseRequest">

Maybe checking $active.purchase_request_key instead of $active.PurchaseRequest is enough?
Last edited:
With legacy paypal payments not being searchable, this makes cancelling recurring user upgrades a nightmare.
This is a pretty serious issue. We now have a significant number of users who don't have a clear path to cancel their subscriptions unless we direct them to the PayPal website. Furthermore, existing subscriptions are continuing to come in as Unknown profile and Unknown user.

I don't think this was intentional on XenForo's part. There's some logic in 2000010-200a.php that attempts to convert legacy subscriptions, but it's incomplete. Entries that existed prior to upgrade have purchase_request_key set to user_upgrade_record_id, while new transactions that come in have purchase_request_key set to <user_id>,<user_upgrade_id>,<validation_type>,<validation>. That means old transactions and new transactions end up with different purchase_request_keys. What a mess.
Top Bottom