In some situations, after cloning a website to a production environment or a different event happened, it might cause an issue with the complex Freemius datalayer. We are using Freemius for our licensing system, read more about Freemius.
This is one of the errors you might experience:
PHP message: PHP Fatal error: Uncaught TypeError: Argument 1 passed to Freemius::get_api_user_scope_by_user() must be an instance of FS_User, bool given
If you receive this, it means that the complex Freemius datalayer has faulty data and cannot synchronize/authenticate your site with the Freemius API.
To solve this, open the Freemius debug page by going to [yourdomainname.com]/wp-admin/admin.php?page=freemius
Solution 1: The Freemius page is available
If the page is available, continue to the next paragraph. If it isn't available, skip to The Freemius page is not available
after the image.
On this page you will see multiple buttons, as shown in the screenshot below. Click each button in the following order:
- First, click button 1, called
Delete all accounts
. This won't delete your Buttonizer Account, but clears the Freemius/Buttonizer account data from the WordPress settings.
- Click button 2, called
Clear API Cache
.
- Click button 3, called
Clear Update Transients
After you have done this, you can re-open Buttonizer, you will now see the opt-in window again. The Freemius API has now been reset and should work without any issues.
Solution 2: The page is not available
Sometimes it can happen that you're unable to open the admin.php?page=freemius
page, that might be due to the complex data structure of Freemius. Fortunately, they've build a plugin to fix the above issue.
Please install the plugin below and follow the instructions.
https://github.com/Freemius/freemius-fixer
After this you should be able to update again.
Still having issues?
If all the bove didn't help, this would be your final solution.
⚠️ Caution: This is a more advanced method and requires you to know about what you are doing. Otherwise, ask a (close) developer who can help you.
First of all, make sure only Freemius related data layers are in your wp_options
. You can do this by executing the following query:
SELECT * FROM `wp_options` WHERE `option_name` LIKE 'fs_%'
This will result in 4 rows of data. If there are more, then a different plugin uses the fs_
slug.
If everything is clear and no other plugins are making use of the fs_
slug, you can execute the following SQL query:
DELETE FROM `wp_options` WHERE `option_name` LIKE 'fs_%'
Just like the other method, if you re-activate Buttonizer, it will show you the opt-in page.
The issue still persists!
In this case, please open a support ticket, we will try to help you further!