WordPress极简博客 WordPress极简博客
  • 新鲜事
  • 战疫情
  • UI素材
    • UI素材
    • 电商/节日
    • PPT
      • 节日庆典
      • 工作汇报
      • 商业计划书
    • word
      • 简历竞聘
      • 合同/公文
  • 创客头条
    • 音乐分享
    • 初创文章
    • 极客头条
    • 数码解说
    • 生活趣事
    • 生活日记
  • 全球科技
    • 新浪博客
    • A5资讯
    • 环球网新闻
  • 编程教学
    • Linux安全栏目
      • Linux运维安全汇总
      • DDOS攻击防护
      • XSS攻击防护
      • SQL安全防护
    • Python技术栏目
      • Python基础入门
      • Python基础结构
    • WordPress技术栏目
      • WP主题
      • WordPress技术教程
      • RIPRO主题美化
    • WordPress漏洞发布
    • 技术教程汇总
  • 专题
  • 基友
  • 隐私
  • 云优化
  • 注册
    登录
立即登录
  • 首页
  • 云优化
  • 新疫情
  • 新鲜事
    • 热文
    • 极客
    • 生活
  • 技术篇
    • WP主题
    • 技术教程
    • Python入门
    • Python基础
  • 专题篇
  • 友链君

WordPress更新插件时检查授权许可

夏柔4月 28, 2020

这篇是对《WordPress自托管插件添加在线更新功能》的扩展教程,请务必先看过之前的文章,才能理解本文的内容。该教程同样来自于@Misha Rudrastyh。

第1步:将授权许可密钥传递到info.json文件

使用下面的代码替换掉上一篇文章中的以下两个地方的对应的代码:

  1. 第2步:自定义插件弹窗信息 小结第一段代码中的 25-30 行
  2. 第3步:将更新信息推送到WP Transients 中 小结代码的 15-20 行
$remote = wp_remote_get( add_query_arg( array(
		'license_key' => urlencode( get_option('some_license_key') )
	), 'https://YOUR_WEBSITE/SOME_PATH/info.json' ), array(
		'timeout' => 10,
		'headers' => array(
			'Accept' => 'application/json'
		)
	)
);

我们这么做的目的,就是将一个额外的GET参数传递给json文件网址,比如:https://YOUR_WEBSITE/SOME_PATH/info.json?license_key={KEY}

正确的方法是:

  • 使用get_option()从插件的设置中获取许可密钥值(也就是说,你的插件应该有一个设置选项,让用户填写并保存它的许可密钥,然后通过函数获取这个密钥的值,这里只是一个示例)。
  • 使用add_query_arg()将GET参数添加到json网址。
  • 如果插件许可证密钥包含非URL字符,最好使用urlencode()转换一下。

第2步:将info.json变成一个PHP文件!

我希望这对您来说听起来并不疯狂,也许您不知道,但是如果您将Content-Type参数传递给PHP文件,它可以返回您想要的任何文件类型。因此,让我们创建info.php文件,不要忘记在上一步中进行代码替换。

$array_for_json = '';
 
...
 
// 这里我们生成JSON响应
 
...
 
$array_for_json['download_url'] = '';

if( !empty( $_GET['license_key' ] ) && license_check_logic( $_GET['license_key' ] ) {
	$array_for_json['download_url'] = '将插件的zip安装包的网址传递到这里;
}
 
...
 
header('Content-Type: application/json');
echo json_encode( $array_for_json );

license_check_logic() 只是您的自定义函数,用于检查许可证密钥是否有效,并相应地返回true或false。

这就是WordPress的魔力-如果您想禁用插件更新但留下更新通知,那么您要做的就是在您的info.json(我的意思是info.php)中传递download_url参数的值为空。

这是它在管理后台的外观:

WordPress更新插件时检查授权许可-WordPress极简博客
界面上的一切似乎都正常,除了一件事–我们没有为插件用户提供足够的信息以及如何续订。让我们继续!

第3步:在插件更新通知的末尾添加一些信息

下面的内容将在WordPress默认更新消息的末尾添加我们的自定义消息。

add_action( 'in_plugin_update_message-YOUR-PLUGIN/YOUR-PLUGIN.php', 'misha_update_message', 10, 2 );
function misha_update_message( $plugin_info_array, $plugin_info_object ) {
	if( empty( $plugin_info_array['package'] ) ) {
		echo ' Please <a href="#">renew your license</a> to update. You can change your license key in Settings > General';
	}
}

结果如下:

WordPress更新插件时检查授权许可-WordPress极简博客
好吧,看到这里,估计你和夏柔一样云里雾里了,因为@Misha Rudrastyh并没有在教程中提供完整的代码示例。但是对于有一定能力的开发者而言,起码提供了一个思路。当然了,如果@Misha Rudrastyh后续提供了进一步的相关教程,夏柔会继续补充。或者大家可以时不时关注一下@Misha Rudrastyh的博客。
#插件#检查更新文件许可
1
等 1 人赞过
分享
夏柔 站长
文章 709评论 23
赞赏
夏柔
相关文章
  • 自定义onion域名
  • 宝塔linux面板一键工具箱
  • 7种提高代码阅读能力的方法
  • 保护你的WordPress,修改服务器默认用户名root
  • Python多线程扫描端口
  • ThnBo-一款针对WordPress开发的缩略图美化插件,为广大站长提供缩略图的美化便利
  • WordPress去除index.php的方法
  • WordPress美化-文字渐变特效
  • WordPress美化-抖动图片
  • 使用HBuilderX封装H5
29 5月, 2020
为解决因病返贫问题献计策(履职故事)
夏柔
站长
夏山如碧 - 怀柔天下
709文章
23评论
58144K获赞
版权声明

文章采用创作共用版权 CC BY-NC-ND/2.5/CN 许可协议,与本站观点无关。

如果您认为本文侵犯了您的版权信息,请与我们联系修正或删除。
投诉邮箱wpsite@aliyun.com

栏目推荐
Python基础入门30
WordPress技术教程265
前沿技术情报所7
城市创新——新消费8
最近有哪些不可错过的热文5
程序员的养生之道0
疫情实况
拜登公布战时抗疫计划
1月 22, 2021
31省区市新增确诊103例 本土94例
1月 22, 2021
科兴疫苗在智利获紧急使用许可
1月 21, 2021
更多
每日快讯
美共和党议员提交弹劾拜登条款
1月 22, 2021
江苏镇江一人核酸检测结果可疑
1月 22, 2021
美媒曝光特朗普离任后第一天动态
1月 22, 2021
男子骂防疫人员:我证件你敢看吗
1月 22, 2021
拜登公布战时抗疫计划
1月 22, 2021
31省区市新增确诊103例 本土94例
1月 22, 2021
巨大火球深夜划过日本上空
1月 21, 2021
科兴疫苗在智利获紧急使用许可
1月 21, 2021
更多
  • 新鲜事
  • 疫情实况
  • UI素材
  • 技术教程
  • 音乐分享
  • 专题
  • 友情
  • 隐私
  • 云优化
Copyright © 2019-2021 WordPress极简博客. Designed by 骚老板. 辽公网安备21010502000474号