freemius / wordpress-sdk Goto Github PK
View Code? Open in Web Editor NEWHome Page: https://freemius.com
License: GNU General Public License v3.0
Home Page: https://freemius.com
License: GNU General Public License v3.0
When testing monthly payments (in Sandbox mode), I got this message when reviewing order:
Point 3 does not display the value correctly, and it should state monthly renewal payments instead of annual.
When testing annual payments the same way, the message is:
Point 3 does not display the value correctly.
SDK version 1.1.8.1.
Currently /templates/plugin-icon.php
tries to fetch 128x128 & 256x256 icons from the SVN using HTTP, and stores the 1st version that returns a real image. Apparently, it's possible to fetch the icon from the plugins API by adding icons
as one of the fields
params in the querystring:
http://api.wordpress.org/plugins/info/1.0/{slug}.json?fields=banners,icons
I want my wp-admin settings page to have an href
/link/button like "Changed your mind? Connect to Freemius!" only displayed to users who clicked "Skip" (by accident, on purpose, or because they later learned more about the benefits of opting-in).
Possibly related to #22
When a license is active, add an option to retrieve the license key from the Account page.
The auto save is great but it fires for every field with no delay. Even when I fill in fields very quickly it ques up each fields save in succession.
Propose setting a delay timeout that can be cleared on focus out. Then when multiple fields are filled you only send one request.
Will also make using tools like google chrome form filler more efficient.
Hello, I have a little problem on the plan page.
There are two plans "free version" and "premium version", I test the premium version, but when I want to go back to the free version, I click the "Downgrade" button and nothing happens, it's normal ?
Thank you very much :)
Seems like the call to get_plugin_data()
triggers _get_plugin_data_markup_translate()
which calls load_plugin_textdomain()
too early.
Solution:
Option 1: Try calling get_plugin_data()
with $markup
and $translate
equals false
.
Option 2: If option 1 doesn't help, create a local copy of get_plugin_data()
that doesn't call unnecessary core methods.
Reference:
https://wordpress.org/support/topic/freemius-integration-broke-localized-quotes
https://wordpress.org/support/topic/conflict-with-wp-to-twitter-1?replies=14
CC: @danieliser
PHP Fatal error: Class 'Freemius_Exception' not found in /htdocs/wp-content/plugins/xxxxxxxxxxxx/includes/freemius/includes/class-freemius.php on line 2068
I get that error when i enable freemius
When de-activating a plugin the notifcation can become annoying especially in a develolpment/maintenance environment (e.g. I am debugging a site and need to turn on/off plugins).
This can produce annoying effects especially if an installation has multiple Freemius enabled plugins.
The user should be allowed to idle notifications if they start getting in the way of his debugging.
A simple "don't bother me for the next 24hrs" should appear if several de-activation are detected.
Hello,
I'm using the next configuration for the freemius:
$im_fs = fs_dynamic_init( array(
'id' => '',
'slug' => 'intergeo-maps',
'public_key' => '',
'is_premium' => false,
'has_addons' => false,
'has_paid_plans' => false,
'anonymous_mode' => true,
'menu' => array(
'slug' => 'intergeo',
'account' => false,
'support' => false,
'parent' => array(
'slug' => 'upload.php',
),
),
) );
If i log in with a non-admin account, simple subscriber, and i get some errors on the admin screen:
Warning: Invalid argument supplied for foreach() in D:\Dezvoltare\php\wordpress\wp-content\plugins\intergeo-maps\freemius\includes\class-freemius.php on line 6339
and also:
Warning: Invalid argument supplied for foreach() in D:\Dezvoltare\php\wordpress\wp-admin\includes\plugin.php on line 1537
Im using the latest wordpress of 4.5.2 and the latest freemius SDK.
I've tried to add this :
if (empty($top_level_menu)) return;
here https://github.com/Freemius/wordpress-sdk/blob/master/includes/class-freemius.php#L6338
But i still get the second error.
Any clue what it could be ?
Case example:
I create a page with add_menu_page
and set as name the Plugin name.
Freemius transform that menu page in a parent menu page, so in the sidebar we have the plugin name and in that a sub menu with a page with the name of the plugin name.
In my case I want that page have a different name like settings.
Getting a white page (fatal) error on deleting the free version of plugin when it's paid version is active.
Getting this with WP_DEBUG enabled in WordPress 4.5 and version 1.7.4 of the SDK from packagist. The relevant backtrace:
7 0.7486 47278032 Freemius::add_debug_page( ) ../plugin.php:525
8 0.7514 47343680 add_object_page( ) ../class-freemius.php:881
It also shows N error messages instead of only one message:
Reference: http://community.rtcamp.com/t/freemius-crashing-entire-website/
The API connection is going crazy. Look at those curl timeouts, 60 seconds per license? 31 rtcamp plugins, 31 * 60 seconds = HOLY SHIT. Site's completely unresponsive since Freemius API server is down or unresponsive. I'm going through and removing all the license checks from the PHP right now.
Solution:
If a user has both a freemius and a wp.org version of a plugin on a site, update notices will not be displayed for the freemius version on the Plugins screen.
An update notice will be displayed on the Accounts page.
Reproduce issue:
SDK version 1.1.9.
L3902 in Freemius class.
From #3 the instructions to load the plugin image does not work if the local development environment is not running on actual localhost. In my VVV environment $_SERVER['REMOTE_ADDR']
is 192.168.50.1
so this line in freemius/config.php will never be true:
define( 'WP_FS__IS_LOCALHOST', ( substr( $_SERVER['REMOTE_ADDR'], 0, 4 ) == '127.' || $_SERVER['REMOTE_ADDR'] == '::1' ) );
and WP_FS__IS_LOCALHOST
needs to be true for the icon to be downloaded locally in template/plugin-icon.php
When users bulk delete plugins, they get this error:
`Warning: require_once(/var/www/clients/client0/web3/web/wp-content/plugins/chamber-dashboard-member-manager/freemius/start.php): failed to open stream: No such file or directory in /var/www/clients/client0/web3/web/wp-content/plugins/chamber-dashboard-member-manager/cdash-member-manager.php on line 81
Fatal error: require_once(): Failed opening required '/var/www/clients/client0/web3/web/wp-content/plugins/chamber-dashboard-member-manager/freemius/start.php' (include_path='.:/opt/php-7.0.0/lib/php') in /var/www/clients/client0/web3/web/wp-content/plugins/chamber-dashboard-member-manager/cdash-member-manager.php on line 81`
This is happening because the Business Directory (which is the plugin that has the Freemius SDK) gets deleted first, so then the others throw errors. It's not a huge deal, because you can just reload the page and then delete the other plugins, but it isn't ideal. What can we do to work around this?
debug_backtrace()
returns the real path of the stack calls, therefore if the plugin's folder is outside of WP_PLUGIN_DIR
, the function _find_caller_plugin_file()
can't find the correct calling plugin file. We need to map debug_backtrace()
's paths based on symlinks (if exist).
Hi !
When I press in unsubscribe button I moved to this link: https://api.freemius.com/account/unsubscribe/?s_id=XXXXX&s_secure=XXXXXXX&s_ts=XXXXX&s_type=X
,
and I get this error:
{"path":":","error":{"type":"","message":"You must provide the Api's version in the request path. Example: \/v1\/developers\/3\/plugins\/4\/installs.json","code":"missing_version","http":400,"timestamp":"Mon, 14 Dec 2015 17:04:03 +0000"}}
I created a new cPanel account and moved a domain that used a plugin that uses Freemius. The files and db did not change.
Once the path changed, I received the error:
file_exsts(): open_basedir restriction in effect.
Hi,
I have used this plugin in my local server https://github.com/Freemius/hello-dolly/tree/master/freemium%20v.1/hello-dolly and i got the below error
Hola! @vovafeldman has created a ZenHub account for the Freemius organization. ZenHub is the only project management tool integrated natively in GitHub – created specifically for fast-moving, software-driven teams.
To get set up with ZenHub, all you have to do is ?utm_source=ZHOnboarding download the browser extension and log in with your GitHub account. Once you do, you’ll get access to ZenHub’s complete feature-set immediately.
ZenHub adds a series of enhancements directly inside the GitHub UI:
Still curious? See ?utm_source=ZHOnboarding more ZenHub features or read user reviews. This issue was written by your friendly ZenHub bot, posted by request from @vovafeldman.
I will send PR
I really need a way to add a custom CSS to the pricing sign up and contact iFrames that are being served from your site. Even if I just pass a file path in the settings.
After a couple of tests using a VAT ID it looks like that information is not included in any of the receipts sent to the author and customers.
I'm attaching some screens with the VAT ID placed during checkout and the receipts I've received
Am I missing something?
.
Related: #70
If a user has both a wp.org/free and a freemius version of a plugin, and he updates the free version, it dissappears (and the freemius version is updated successfully).
Reproduce issue:
SDK version 1.1.9.
A new installation / activation shows a double menu on the left (when menu added via add_menu_page) until they've gone past the Freemius opt-in prompt.
As of v1.1.8, trials can be enabled for add-ons. However, the payment details are required if the user has not opted-in (including confirming their email address).
It would be ideal if users could only initiate a trial if they have opted-in first.
If they don't want to opt-in, they can just buy it outright (not allowed to trial).
On this line: https://github.com/Freemius/wordpress-sdk/blob/master/freemius/includes/class-freemius.php#L942 it's throwing undefined index SERVER_ADDR
error.
I'm working on the new version of my plugin, and in doing a local upgrade, I ran into a an error from the latest version of Freemius. Looks like a strict warning, combined w a permission issue, but something you might put a conditional statement around, just in case.
My plugin got disabled due to the fact that Freemius was calling images from SVN which is not allowed as per the guidelines.
I found these links (which I already had in commented form) in the following two files.
Add a section dedicated for API details in the FS debug page to allow developers understand if cURL is missing, and if not, what's the returned result on ping
It's possible add the multi language support?
With that code and a folder that contain the po files in that format freemius-it_IT.po/mo will be easy to have freemius localized.
function freemius_load_plugin_textdomain() {
load_plugin_textdomain( 'freemius ', FALSE, basename( plugin_dir_path( dirname( __FILE__ ) ) ) . '/languages/' );
}
add_action( 'plugins_loaded', 'freemius_load_plugin_textdomain', 1 );
Due to how get_option works checking for a false / missing value will always lead to an extra query. In this case Freemius calls get_option( 'fs_debug_mode' ) during config. Since this option is never set WP always queries looking for it.
Easiest fix is to simply store a false value when the option is detected to not exist, then it will be autoloaded with other options and save the query.
PR attached.
PHP throws notices for $_SERVER variables in API connectivity test when running without HTTP context (e.g. CLI, Cronjob). I think the best solution, in this case, would be to turn Freemius off if the user is not yet opted-in.
References:
https://wordpress.org/support/topic/errors-in-the-freemius-class-when-running-in-wordpress-in-cli
In the new SDK, after confirming my email it is redirecting to
/wp-admin/admin.php?fs_action=sync_user&page=eventcalendarnewsletter-account&_wpnonce=...
I think it should redirect back to the account page if account = false in the freemius init. Otherwise, there's no way for the user to get back to that screen later.
On that same note there should be some way for them to opt out if there is no account page. Perhaps a link somewhere in the confirmation email sent after they confirm their email address?
Multi-site network activated plugin are always loaded prior to site plugins so if there's a a plugin activated in the network mode that has an older version of the SDK of another plugin which is site activated that has new SDK version, the fs-essential-functions.php
will be loaded from the older SDK.
Same thing about MU plugins (loaded even before network activated plugins).
it would be great to be able to skip the email validation for users. It's fair to assume that if an admin has input an email address in the WP admin panel, well, the email is a legit one.
The proposal is to allow the plugin dev to decide whether to require the email confirmation or simply letting the user accepting the opt-in from the WP admin panel.
wp-config.php define like this would be nice:
define( 'WP_FS_{slug}_SECRET_KEY', ... )
I think this is a better init for addons. It has less code, is more readable and uses existing WP core methods.
This is also how I do it for both Popup Maker and the new recipe plugin line Cooked.
add_action( 'plugins_loaded', 'wt_tpa_init' );
function wp_tpa_init() {
if ( class_exists( 'Test_Plugin' ) ) {
// If parent plugin already loaded, init add-on.
test_plugin_addon();
} else {
/*
* This part makes it fancy and notifies them with
* a message in the admin that the base needs to be
* installed/activated and includes links to do so.
* This would replace your die method below with an elegant fallback.
if ( ! class_exists( 'Plugin_Addon_Activation' ) ) {
require_once 'includes/class.addon-activation.php';
}
$activation = new Plugin_Addon_Activation( plugin_dir_path( __FILE__ ), basename( __FILE__ ) );
$activation->run();
*/
// Parent plugin is not activated.
// 1) Deactivate the add-on
// 2) Show WP fata error message.
deactivate_plugins( basename( __FILE__ ) );
wp_die(
'The Add On cannot run without the parent plugin. Please activate the parent plugin and then try again.',
'Error',
array( 'back_link' => true )
);
}
}
Also I would be happy to give you a copy of my Addon_Activation class which you could hack into a ready made include for this as well.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.