CRYZ

WP Rocket 破解

WP Rocket是一个简单且好用的Wordpress优化插件,但是一年要几十刀的费用。本文介绍WP Rocket的破解方法供学习使用,本网站没有安装WP Rocket,也不分发破解版的插件文件。

WP Rocket的代码是开源的,按照WP Rocket文档中的方法安装后,我们需要在Wordpress配置文件wp-config.php中定义有效的WP_ROCKET_EMAILWP_ROCKET_KEY常量,否则打开插件设置页会发现所有功能都无法使用。本文内容通过修改插件安装后的源文件跳过上面的常量验证,以正常使用插件。

一、移除密钥验证

修改inc/function/options.php中的rocket_valid_key函数使其直接返回true,这个修改使得我们可以正常打开插件设置页面,并且解锁几乎所有的功能。

function rocket_valid_key() {
  return true;
}

参考自https://gpldl.com/remove-license-code-check-wp-rocket-wordpress-plugin/

二、返回有效的用户信息

移除了密钥验证后基本功能已经可用了,但是还有一些功能会没有解锁,比如CSS优化功能。并且此时我们可以察觉到网站加载速度变慢了(仅管理员登录时?不太确定,没有进一步验证)。

使用Query Monitor插件检查会发现,每次请求都会导致WP Rocket向外部(WP Rocket的服务器)发起一次HTTP请求,用于获取用户信息后再验证有效性。WP Rocket的服务器必然不会给我们返回有效的用户信息,因为我们没有设置有效的许可秘钥。又因为没有返回有效的用户信息,所以插件不会把验证成功的用户信息缓存在服务器中,从而导致每次请求都会触发WP Rocket的验证请求。而该请求会阻塞Wordpress的页面生成,导致网站的加载速度下降。

我们可以通过修改inc/Engine/License/API/UserClient.php中的get_user_data函数,使其直接返回有效的用户信息,以避免触发WP Rocket的验证请求,并且解锁全部功能。

public function get_user_data() {
  return (object) [
    "licence_account" => -1,
    "licence_expiration" => "1898738989",
    "has_one-com_account" => false
    ];
}

以上代码中的返回值由inc/Engine/Admin/Settings/Page.php中的cutomer_data函数逆向得出。我们或许也可以直接修改customer_data函数,直接返回有效的用户数据,不过可能需要多写几行代码。

上面的代码中,licence_account为用户账号的许可数量,具体值的含意可参考inc/functions/admin.php中的rocket_get_license_type函数

  • 未设置或布尔值为False时,许可无效
  • 1<=licence_account<3 为Single
  • licence_account===-1 为Infinite
  • 其它情况为Plus

正常付费情况下不同套餐的限制可参考https://wp-rocket.me/pricing/,在使用本文的破解方法时暂未发现区别。

lincence_expiration为许可有效期的Unix时间戳,只要是一个未来的时间即可。为了持续可用我们可以设成10年后,一百年也行只要你喜欢。

has_one-com_account用于识别是否为one.com的统一授权,true或false都没有影响。

三、移除营销信息

根据以上内容进行修改后,插件已经完全可用了。但是此事我们会发现插件的设置中还有不少无用或需要另外付费的内容,如RocketCDN、Imagify、插件许可展示,以及添加到网页源码底部的插件注释。

为了隐藏以上提到的内容,我们可以在Wordpress的配置文件wp-config.php中添加以下代码:

define ("WP_ROCKET_WHITE_LABEL_FOOTPRINT", true);
define ("WP_ROCKET_WHITE_LABEL_ACCOUNT", true);

参考自https://docs.wp-rocket.me/article/7-enabling-white-label

评论

《 “WP Rocket 破解” 》 有 2 条评论

  1. Honore Daniel 的头像
    Honore Daniel

    public function get_user_data() {
    return (object) [
    “licence_account” => -1,
    “licence_expiration” => “1898738989”,
    “has_one-com_account” => false
    ];
    }
    修改后提示
    Plugin could not be activated because it triggered a fatal error.

    1. cryz 的头像

      尝试一下在插件目录运行composer install安装依赖

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注