昨天登录后台的时候,发现 loginpress 的设置界面挂了,所有的数据样式都是 hidden。让 deepseek 给分析了一通,都是废话,没什么卵用。
今天上午直接让 cursor 分析了一下代码,让给出解决方案,发现依然没什么效果:
不过查看页面元素的时候发现了一段提示:
<tr class="secret_key_v2_invisible" style="display: none;"><th scope="row"><label for="loginpress_setting[secret_key_v2_invisible]">Secret Key</label></th><td><input type="text" class="regular-text" id="loginpress_setting[secret_key_v2_invisible]" name="loginpress_setting[secret_key_v2_invisible]" value=""><p class="description">Get <a href="https://www.google.com/recaptcha/admin" target="_blank"> reCaptcha</a> secret key. <br> <span class="alert-note">Make sure you are adding right secret key for this domain. If it's incorrect may be you'r not able to access your website.</span></p></td></tr>
让 cusour 分析了一通,依然没什么效果:
不过此时已经基本确认还是授权的问题了,基于上面的废话改起来难度较大,搜索了一下,找了一个新版本的 loginpress pro。
https://wpe98.com/loginpress-pro-nulled/
按照文件的方法直接添加 hook 代码:
<?php function bypass_license_verification() { add_filter('loginpress_license_check', '__return_true'); add_action('admin_notices', function() { echo '<div class="notice notice-success"><p>License successfully nulled for demonstration purposes!</p></div>'; }); } add_action('init', 'bypass_license_verification'); ?>
此时后台显示的确 ok 了,虽然功能已经激活了,但是页面看起来有些蛋疼,显示没授权:
根据提示信息搜索就会发现代码位于loginpress-pro 2/classes/loginpress-main.php
大概浏览下代码,发现基本数据都在所谓的授权信息中license_data的结构内,直接让 cursor 给生成一个结构:
此时直接修改授权代码为:
public static function get_registration_data() { $license_data = array( 'success' => true|false, // 布尔值,表示许可证验证是否成功 'license' => 'valid', // 字符串,许可证状态,可能的值包括: valid, invalid, expired, revoked, missing, site_inactive, item_name_mismatch, no_activations_left 'error' => '', // 字符串,如果有错误时的错误代码 'expires' => '2050-10-10', // 字符串,许可证过期日期,可以是具体日期或 'lifetime' 'price_id' => 4, // 整数,许可证价格ID,用于确定许可证类型: // 1 = Personal // 2 = Small Business // 3 或 6 = Agency // 4 = Ultimate // 7 = Startup ); return $license_data; }
测试了一下没效果,继续看代码,发现外面还套嵌了一层,cursor 给继续处理一下:
继续调整代码为:
$result = array( 'license_key' => '', // 字符串,许可证密钥 'license_data' => array( // 数组,许可证详细数据 'success' => true|false, // 布尔值,表示许可证验证是否成功 'license' => 'valid', // 字符串,许可证状态,可能的值包括: valid, invalid, expired, revoked, missing, site_inactive, item_name_mismatch, no_activations_left 'error' => '', // 字符串,如果有错误时的错误代码 'expires' => '2050-10-10', // 字符串,许可证过期日期,可以是具体日期或 'lifetime' 'price_id' => 4, // 整数,许可证价格ID,用于确定许可证类型: // 1 = Personal // 2 = Small Business // 3 或 6 = Agency // 4 = Ultimate // 7 = Startup ), 'error_message' => '', // 字符串,错误信息 ); return $result;
此时再看效果,就完美啦: