If you’ve got the WordPress plugin WP-MEMBER installed on your site and you’re seeing Invalid Data Passed errors when expired users attempt to resubscribe, there is a fix available in the meantime until the developers patch the plugin. You’ll need to have some background working with a database, and of course, you’re going to want to make a good backup. You can also contact me if you’re looking for assistance with this problem.
The offending data seems to be the fact that old user accounts have existing Paypal information in the account. Since WP-MEMBER encrypts all of their plugin source, it’s difficult to go in to see exactly what the problem is. However, the old Paypal meta-data is still present in the wp_usermeta table, and it appears that the plugin isn’t able to handle it properly for expired users. Go to the table, and for any user who is expired (wp_usermeta records with the key ‘paypal_status’ will have the value ‘Expired’), remove their ‘paypal_user’ key.
Update: If you are writing a PHP script to automate this, you might do the following.
Get the user id’s from the wp_usermeta table:
$query = “SELECT * FROM `wp_usermeta` WHERE meta_key=’paypal_status’ AND meta_value=’Expired’”;
Take the id values from the results of that query, join them into a comma-separated string (php join function), and remove the old meta-data.
$query = “DELETE FROM `wp_usermeta` WHERE user_id IN ($id_values) AND meta_key IN (‘paypal_user’)”;