I got an e-mail from another member who was having a problem with CCBill, specifically, it seemed the system was putting the purchases through (notice, this puts them way ahead of most when it comes to the membership levels) but it seemed they had profiles that had purchased the 90 Day membership they had and these guys had 629 Days till the membership expired. What?
Yes, it was happening. So how does a 90 Day Membership turn into 629 Days.
Well, I checked the Admin Panel for Membership Levels and Payment Settings. All appeared to be correct. Hopped in and looked at the Members List and it showed who was upgraded and who was not. So why this issue?
I hopped into the DB and began to look around, knowing this had to be in there, most likely not in the hard code since the upgraded memberships are considered liquid items (items controlled solely by the Database and not hard-coded anywhere, at least they shouldn't be hard coded).
First up:
MemLevelPrices All seemed well, except he had 8 memberships with the same IDLevel but different prices and lengths of time. This showed it had been attempted several times and not worked correctly. First I dumped out the extra ones that had the duplicate IDLevel on them knowing those we're errors.
Next up:
ProfileMemLevels This one was really interesting. It showed that one profile had purchased the upgrade 18 times. The system was working perfectly, it was adding the time frames of each purchase to the total amount of time available under the upgraded membership.
Taking a close look and knowing that this was a test account it was happening on, I removed all but the first upgrade that was purchased. Now the system will expire out it's upgraded membership in 5 days. This was a fun item to track down, took about an hour to dig through the system via the process of going through things and finally reached the solution. In this case, the solution was that everything was working perfect (imagine that, Dolphin working perfect) and it was an end user error.
I'm tossing this up for the purpose of helping out others who have problems with "liquid items" (those that are in the DB and not the source files) so it might help them understand they need to look beyond the source files to find the answers alot of the time.
Good luck with your sites.