noellarkin
Senior Member
- Mar 14, 2021
- 1,006
- 1,492
This works perfectly, thank you!!There you go. Here is version 5.11.1 (main plugin) with the three add-ons.
Would you mind sharing a quick rundown of the edits you made to null it?
This works perfectly, thank you!!There you go. Here is version 5.11.1 (main plugin) with the three add-ons.
changed
private static function deactivate_license_key() { return; //#######
To:
private static function deactivate_license_key() { return;
changed
'value' => '',
To:
'value' => 'L12345678',
changed
<input type="text" name="<?php echo esc_attr( $data['id'] ); ?>" id="<?php echo esc_attr( $data['id'] ); ?>" value="" class="regular-text" placeholder="XXXX-XXXX-XXXX-XXXX" data-key="<?php echo esc_attr( get_option( $data['id'], '' ) ); ?>" data-key-masked="<?php echo esc_attr( $this->mask_license_key( get_option( $data['id'], '' ) ) ); ?>">
To:
<input type="text" name="<?php echo esc_attr( $data['id'] ); ?>" id="<?php echo esc_attr( $data['id'] ); ?>" value="L12345678" class="regular-text" placeholder="XXXX-XXXX-XXXX-XXXX" data-key="<?php echo esc_attr( get_option( $data['id'], '' ) ); ?>" data-key-masked="<?php echo esc_attr( $this->mask_license_key( get_option( $data['id'], '' ) ) ); ?>">
changed
public function sanitize_license_key( $value ) {
To:
public function sanitize_license_key( $value ) { return 'L12345678';
changed
private function remote_activate_license_key( $key ) {
To:
private function remote_activate_license_key( $key ) { return 'activated-202';
changed
private function remote_deactivate_license_key( $key ) {
To:
private function remote_deactivate_license_key( $key ) { return 'deactivated-202';
changed
private function is_valid_license_key( $key ) {
To:
private function is_valid_license_key( $key ) { return true;
changed
public function mask_license_key( $value ) {
To:
public function mask_license_key( $value ) { return $value;
changed
public function validate_license_before_updating( $update ) {
To:
public function validate_license_before_updating( $update ) { return '';
changed
private function is_license_activated() {
To:
private function is_license_activated() { return true;
changed
private function is_license_activated() {
To:
private function is_license_activated() { return true;
Does this method still work? Would I need to have a copy of the premium plugin first?Hey guys!
I love to contribute to BHW and I would like to share some handy lines of code to make it more easier to activate premium WordPress themes and plugins. To start with, I'd like to share how to null Yoast Premium plugins:
How to Activate Yoast Premium plugins:
Step 1:
Find the following file using a FTP client, such as FileZilla:
wordpress-seo-premium/vendor/yoast/license-manager/class-license-manager.php,
Step 2:
Find the function get_license_status() at line 327:
Code:public function get_license_status() { $license_status = $this->get_option( 'status' ); return trim( $license_status ); }
Step 3:
In line 330, change:
Code:return trim( $license_status );
to:
Code:return 'valid';
Et voilà: your Yoast Premium plugins will work.
More plugins and themes will follow soon.
Stay tuned.
Does this method still work? Would I need to have a copy of the premium plugin first?
Yes, if you need help with a plugin you would need to first provide a copy of it so others can help you null it.
So I need to have the .rar file of premium version or the one from wordpress repository https://wordpress.org/plugins/wordpress-seo/ ?
Always wondered, if people are trying to get plugins or themes nulled, how will they get hold of the original file without paying first? Because without the original file, you won't be able to null right?

@zilog357 (or anyone) could you please help me null the plugin "Booknetic SaaS"? I'm talking about the extended license one, but i'm pretty sure it has the same protection as the regular license one right?
Actually, I want to buy it + its addons, but it's so expensive (489$ just for the extended license + as much for the addons... so yeah between 900 and 1000$!!!) that for that crazy expensive price, I'd like to use it on more than one website (because the extended license = just one website for that crazy price when 99% of plugins for Wordpress for half that price offer you unlimited + lifetime), that's why i'd need to bypass the license/purchase code (and the email check too) check so it can unlock fully the plugin and that I can use it on as many sites I want if I want. I didn't buy the plugin yet (though i have the legit booknetic regular license) because I'd like to be sure first that it can be nulled before spending that much money, but as it's just a license difference (regular vs extended) + 2-3 difference of features, i'm pretty sure it would be the same way to null it as it is to null Booknetic regular.
I tried to upload the zip here but it says it's too large so I jsut created a zip with al lthe filed that included the words "purchase_code".
Thanks in advance
There's so many references to "isSaaSVersion" in this plugin that i suspect that regular and saas version are the same one and that the saas feature are activated only if the purchase code is associated to a saas version maybe
thank you! learned a ton - - should learn more php I guessAlso, if you check the modified files, you will see a "//#######" (double forward-slash with 7 hash or "pound" signs). The double forward slash is one of the PHP's comment symbols, which means that everything after the "//" is ignored in PHP. I just use it to keep track of the changes I make.
Cheers!
Thanks for the insights. As far as there's a way to null these plugins (if the regular version can be nulled, the saas version could be nulled the same way for sure right? but it's calling an API so as oyu said, it's unlikely to be possible to null i'm afraid) so that if i buy the crazy expensive Saas version (489$ + 500$ of addons!!!) instead of being limited to just one site I can use it on how many sites I wasn't, that's what matters. Because at the current price for jsut one site, thats just crazy, that's twice the price of lifetime/unlimited plugins. Especially that when checking the license, it's said to be under GPL licensing so...I haven't had the time to look at it but there are two main cases about htat:
1. Many of the plugins I have seen with that behavior use a variable or constant to keep track of if it is the "Pro" or "Free" version, the "Saas" or no "Saas" version, the "single user" or "multi-user" version, etc.
This is because the functions used in both versions are the same. Keeping a variable or constant that allows the function to distinguish between two different versions will allow those functions to do the right job, depending on the version.
In short, many of those plugins do not include everything in two different versions. It is just that they share the same functions. It makes sense to do it that way so the developer does not need to reinvent the wheel for each version.
2. In the case where the difference in the price of a plugin is only for the time the user is subscribed, then all is the same. There is no difference in how any of the subscriptions behave. Only the time that it lasts (1 year, 5 years, unlimited, etc.). They rely on the plugin to call the server to check if it is expired or not. Hacking those is extremely easy.
I'm afraid that your case could be #1 above because the different versions of the plugin provide completely different functionalities.
However, this is an opinion based on my experience. The facts can only be known by studying the plugin.
Does this still work?
General site ??