Fixed Imported user upgrades did not remove from group

Affected version
2.1.6

beerForo

Well-known member
Came from vB last year and it imported the active user upgrades.

Of course, there was no payment profile attached. But they had expiration dates.

I am looking in my Expired upgrades, and the ones with a payment profile removed from the group successfully after expiration. But the ones with no payment profile (meaning these were the imported ones) did not remove from the group. They expired and left them in it.

I am not sure if the fact they were imported matters, or that I edited the end date (to give bonus time but still passed), or that the no payment profile matters. Just giving all the facts. I want to make sure this won't happen again with any manual upgrades (no payment profile attached), or edits.

The settings of the upgrade are correct, as, the ones since the migration worked correctly but are the same.
 
Last edited:

XF Bug Bot

XenForo bug fixer bot
Staff member
Thank you for reporting this issue, it has now been resolved. We are aiming to include any changes that have been made in a future XF release (2.1.8).

Change log:
When importing paid subscriptions from vBulletin ensure user group changes are correctly logged.
There may be a delay before changes are rolled out to the XenForo Community.
 

Chris D

XenForo developer
Staff member
The fix is not retroactive at this time, unfortunately.

I should note also that this fix will require both XF 2.1.8 and XFI 1.3.4 to be effective for new imports.
 

beerForo

Well-known member
Is there a value in the database I can change for this one user? I only have one left I can do manually. I'm not seeing a previous group table.
 

Chris D

XenForo developer
Staff member
It's a table:

SQL:
INSERT INTO `xf_user_group_change`
   (`user_id`, `change_key`, `group_ids`)
VALUES
   (X, 'userUpgrade-Y', 'Z,A,B,C')

Change X to the ID of the user.

Change Y to the user upgrade ID.

Change Z,A,B,C to a comma separated list of user upgrade IDs.

e.g.

SQL:
INSERT INTO `xf_user_group_change`
   (`user_id`, `change_key`, `group_ids`)
VALUES
   (100, 'userUpgrade-1', '7,8,9')
 

beerForo

Well-known member
I appreciate the help but I'm lost :ROFLMAO:

I'm not sure what this is doing and what to put.

It's only one user so let's call them 123.

The groups he is in is: 2,6,10

2: Registered (primary)
6: The upgrade that needs to expire (secondary)
10: A promoted group that should stay (secondary)

user_record_upgrade_id = 3
 

Chris D

XenForo developer
Staff member
Change Z,A,B,C to a comma separated list of user upgrade IDs.
I'm speaking nonsense here. That should be a comma separated list of user group IDs, and more specifically, it should be the user group ID they were promoted to as a result of purchasing the upgrade.

So based on what you said, the below should get you going (assuming user_record_upgrade_id = 3 refers to the user upgrade ID?)

SQL:
INSERT INTO `xf_user_group_change`
   (`user_id`, `change_key`, `group_ids`)
VALUES
   (123, 'userUpgrade-3', '6')
 

beerForo

Well-known member
Ohhh the 3 I got from the xf_user_upgrade_active table and the column was user_record_upgrade_id I think that is wrong, you mean the number of the upgrade itself from xf_user_upgrade, which is 1. I think that's it. :)

In which case this would be correct:

Code:
INSERT INTO `xf_user_group_change`
   (`user_id`, `change_key`, `group_ids`)
VALUES
   (123, 'userUpgrade-1', '6')
 
Last edited:
Top