- wordpress子比主题V6.0论坛用户等级权限的二次开发,玩出新花样
前言
作为内测用户,除了提交子比V6.0的相关bug之外。
最近也在做一些二次开发的页面,由于本人的专业是网络安全,因此有很多工具,如Fofa高级查询等等一系列的功能是不能对外开放的,因此就需要对页面的权限进行判断,也就有了本篇文章。
声明
我不是专门做二次开发的,如果代码有所疏漏还希望专家们能够多多指正
效果展示
利用了wordpress子比主题V6.0新的用户等级权限功能,实现仅某个用户组才能阅读某个页面的权限功能。
认证用户组显示界面
![图片[1]-wordpress子比主题V6.0论坛版 如何设计一个仅VIP会员、仅认证用户可见的页面-FancyPig's blog](https://static.iculture.cc/wp-content/uploads/2021/12/20211218163407135-1024x715.png?x-oss-process=image/auto-orient,1/format,webp/watermark,image_cHVibGljL2xvZ28ucG5nP3gtb3NzLXByb2Nlc3M9aW1hZ2UvcmVzaXplLFBfMTA,x_10,y_10)
未登录状态下界面
![图片[2]-wordpress子比主题V6.0论坛版 如何设计一个仅VIP会员、仅认证用户可见的页面-FancyPig's blog](https://static.iculture.cc/wp-content/uploads/2021/12/20211219011757223-1024x591.png?x-oss-process=image/auto-orient,1/format,webp/watermark,image_cHVibGljL2xvZ28ucG5nP3gtb3NzLXByb2Nlc3M9aW1hZ2UvcmVzaXplLFBfMTA,x_10,y_10)
登录且未认证提示界面
![图片[3]-wordpress子比主题V6.0论坛版 如何设计一个仅VIP会员、仅认证用户可见的页面-FancyPig's blog](https://static.iculture.cc/wp-content/uploads/2021/12/20211218163724404-1024x339.png?x-oss-process=image/auto-orient,1/format,webp/watermark,image_cHVibGljL2xvZ28ucG5nP3gtb3NzLXByb2Nlc3M9aW1hZ2UvcmVzaXplLFBfMTA,x_10,y_10)
开发思路
基于页面功能
主要是基于Wordpress的创建页面功能,我们需要在wp-content/themes/zibll/pages
文件夹下,新建一个php文件
比方说,我这里建的是fofa.php
,模板如下
<?php
/**
* Template name: FoFa-高级查询
* Description: Fofa搜索引擎高级查询
*/
get_header();#需要头部就写,不需要这行就删掉
?>
<!--这里需要填写你的网页内容-->
<?php
get_footer();
判断未登录用户方法
- !is_user_logged_in() 表示没有登录的用户
- zib_get_nocan_info($user_id, $capability, $msg = ”) 该函数主要用来提醒权限不足,第二个是权限能力名称,第三个msg是用来提示用户的,当然我们这里后两者不需要调用,随便填也可以
相关核心代码
<?php if (!is_user_logged_in()){
echo '<div class="flex jc" style="min-height:50vh;">';
echo zib_get_nocan_info($cuid, 'fofa_api', '您都没登陆咋用FOFA高级查询');
echo '</div>';
}?>
判断已登录但没有认证的用户方法
- is_user_logged_in() 表示已经登录的用户
- !zib_is_user_auth() 表示没有认证的用户
相关核心代码
<?php if (is_user_logged_in() && !zib_is_user_auth()) {
echo '<div class="mb20 wp-posts-content"><div class="hide-post mt6"><div class=""><i class="fa fa-unlock-alt mr6"></i>Fofa高级查询仅对内部人员开放</div><div class="text-center em09 mt20"><p class="separator muted-3-color mb20">以下用户组可查看</p><p><a class="but mm3" href="https://www.iculture.cc/user/auth"><svg class="mr6 em12" aria-hidden="true"><use xlink:href="#icon-user-auth"></use></svg>认证用户</a></p></div></div></div>';
echo '</div>';
}?>
判断认证的用户
- zib_is_user_auth() 表示已经认证的用户
相关核心代码
<?php if (zib_is_user_auth()) { ?>
<!--这里填你想给认证用户组展现的内容-->
<?php
} ?>
案例
这里把之前群友分享的抖音等等去水印的页面拿过来,稍作修改便实现了下面的效果
效果展示
- 未登录状态
![图片[4]-wordpress子比主题V6.0论坛版 如何设计一个仅VIP会员、仅认证用户可见的页面-FancyPig's blog](https://static.iculture.cc/wp-content/uploads/2021/12/20211218173740466-1024x542.png?x-oss-process=image/auto-orient,1/format,webp/watermark,image_cHVibGljL2xvZ28ucG5nP3gtb3NzLXByb2Nlc3M9aW1hZ2UvcmVzaXplLFBfMTA,x_10,y_10)
- 已登录但非VIP1以上的用户提示
![图片[5]-wordpress子比主题V6.0论坛版 如何设计一个仅VIP会员、仅认证用户可见的页面-FancyPig's blog](https://static.iculture.cc/wp-content/uploads/2021/12/20211218173928321-1024x529.png?x-oss-process=image/auto-orient,1/format,webp/watermark,image_cHVibGljL2xvZ28ucG5nP3gtb3NzLXByb2Nlc3M9aW1hZ2UvcmVzaXplLFBfMTA,x_10,y_10)
- VIP1以上的用户
![图片[6]-wordpress子比主题V6.0论坛版 如何设计一个仅VIP会员、仅认证用户可见的页面-FancyPig's blog](https://static.iculture.cc/wp-content/uploads/2021/12/20211219021527377-1024x628.png?x-oss-process=image/auto-orient,1/format,webp/watermark,image_cHVibGljL2xvZ28ucG5nP3gtb3NzLXByb2Nlc3M9aW1hZ2UvcmVzaXplLFBfMTA,x_10,y_10)
开发思路
我们需要在原来的代码基础上,进行完善,首先是增加登录判断
<?php if (!is_user_logged_in()){
echo '<div class="flex jc" style="min-height:50vh;">';
echo zib_get_nocan_info($cuid, 'watermark', '您都没登陆就想去水印啊');
echo '</div>';
}?>
其次,我们需要给登录但不是LV1以上用户,做一个提示
<?php if (is_user_logged_in() && zib_get_user_vip_level($user_id)<1){
echo '<div class="mb20 wp-posts-content"><div class="hide-post mt6"><div class=""><i class="fa fa-unlock-alt mr6"></i>在线去水印功能已隐藏</div><div class="text-center em09 mt20"><p class="separator muted-3-color mb20">以下用户组可使用</p><p><a class="but mm3 pay-vip" vip-level="1" href="javascript:;"><img class="img-icon mr6 em12 ls-is-cached lazyloaded" src="https://www.iculture.cc/wp-content/themes/fancypig/img/vip-1.svg" data-src="https://www.iculture.cc/wp-content/themes/fancypig/img/vip-1.svg" data-toggle="tooltip" title="" alt="披萨会员" data-original-title="披萨会员">披萨会员及以上会员</a></p></div></div></div>';
} ?>
最后,对于登录且是LV1以上的用户,我们让这类用户可以使用去水印的功能
<?php if (is_user_logged_in() && zib_get_user_vip_level($user_id)>=1){ ?>
<!---->
<div class="inputUrl">
<input class="textUrl" type="text" placeholder="请粘贴视频链接" id="input1" class="longurl">
<input class="btn sendBtn" type="button" onclick="setValue()" value="解析">
</div>
</form>
<div class="down"></div>
<div id="myDiv"></div>
</div>
<script>
function setValue(){
var v = document.getElementById("input1").value;
var xmlhttp;
if(window.XMLHttpRequest){
xmlhttp=new XMLHttpRequest();
}
else{
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");}
xmlhttp.open("GET","https://tenapi.cn/video?url="+v,false);
xmlhttp.send();
document.getElementById("myDiv").innerHTML=xmlhttp.responseText;
var jsonObj = JSON.parse(xmlhttp.responseText);
$(".down").html('<h4 id="form-title" style="font-weight: 700;">'+jsonObj.title+'</h4><a id="form-cover" href="'+jsonObj.cover+'" target="_blank" download="video">下载封面</a><a id="form-video" href="'+jsonObj.url+'" target="_blank" download="video">下载视频</a><a id="form-music" href="'+jsonObj.music+'" target="_blank" download="video">下载音乐</a>');
}
</script>
</html>
<!---->
<?php
} ?>
项目完整代码
<?php
/**
* Template name: FancyPig-在线去水印
* Description: 在线去水印仅对VIP用户开放
*/
// 获取链接列表
get_header();
$header_style = zib_get_page_header_style();
?>
<main class="container">
<div class="content-wrap">
<div class="content-layout">
<?php while (have_posts()) : the_post(); ?>
<?php if ($header_style != 1) {
echo zib_get_page_header();
} ?>
<div class="box-body theme-box radius8 main-bg main-shadow">
<?php if ($header_style == 1) {
echo zib_get_page_header();
} ?>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<style>
.inputUrl{width: 100%; display: flex; justify-content: flex-end; align-items: center; flex-direction: column;} .textUrl{width: 90%; height: 45px; outline: none; padding: 4px 8px; border-radius: 8px; border: 1.5px solid #c0c0c0; outline: none; background: #00000000; font-weight: 700; box-shadow: 0px 0px 2px #eeeeee;} .sendBtn{width: 90%; height: 40px; margin: 15px; border-radius: 8px; background-color:#ff64ac;font-weight: 700;user-select: none;} .down{text-align: center;} .down a{display: inline-block; padding: 0 1em; margin: 0.5em; height: 2.75em; border: solid 1px #c8cccf; border-radius: 4px; background-color: transparent; color: #414f57!important; text-align: center; text-decoration: none; white-space: nowrap; line-height: 2.75em; font-weight: 700;} #myDiv{color: #0089fff0; overflow-y: hidden; background-color: #f0f1f1fa; margin: 10px; border-radius: 8px; word-wrap: break-word;} #myDiv1{text-align: center;font-weight: 700;padding: 10px;}
</style>
</head>
<!--<div id="wrapper">-->
<!--<form method="post">-->
<center><h3>抖音/快手/微博小视频去水印功能</h3><center>
<div id="myDiv1">
<p>
目前支持:抖音/皮皮虾/火山/微视/微博/绿洲/最右/轻视频/instagram/哔哩哔哩/快手/全民小视频/皮皮搞笑
<br>
温馨提示:粘贴视频地址时无需删除文案 但如果视频链接正确但解析失败请删掉文案后重试
</p>
</div>
<?php if (!is_user_logged_in()){
echo '<div class="flex jc" style="min-height:50vh;">';
echo zib_get_nocan_info($cuid, 'watermark', '您都没登陆就想去水印啊');
echo '</div>';
}?>
<?php if (is_user_logged_in() && zib_get_user_vip_level($user_id)<1){
echo '<div class="mb20 wp-posts-content"><div class="hide-post mt6"><div class=""><i class="fa fa-unlock-alt mr6"></i>在线去水印功能已隐藏</div><div class="text-center em09 mt20"><p class="separator muted-3-color mb20">以下用户组可使用</p><p><a class="but mm3 pay-vip" vip-level="1" href="javascript:;"><img class="img-icon mr6 em12 ls-is-cached lazyloaded" src="https://www.iculture.cc/wp-content/themes/fancypig/img/vip-1.svg" data-src="https://www.iculture.cc/wp-content/themes/fancypig/img/vip-1.svg" data-toggle="tooltip" title="" alt="披萨会员" data-original-title="披萨会员">披萨会员及以上会员</a></p></div></div></div>';
} ?>
<?php if (is_user_logged_in() && zib_get_user_vip_level($user_id)>=1){ ?>
<!---->
<div class="inputUrl">
<input class="textUrl" type="text" placeholder="请粘贴视频链接" id="input1" class="longurl">
<button class="btn sendBtn" type="button" onclick="setValue()" style="color:#fff">解析</button>
</div>
</form>
<div class="down"></div>
<div id="myDiv"></div>
</div>
<script>
function setValue(){
var v = document.getElementById("input1").value;
var xmlhttp;
if(window.XMLHttpRequest){
xmlhttp=new XMLHttpRequest();
}
else{
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");}
xmlhttp.open("GET","https://tenapi.cn/video?url="+v,false);
xmlhttp.send();
document.getElementById("myDiv").innerHTML=xmlhttp.responseText;
var jsonObj = JSON.parse(xmlhttp.responseText);
$(".down").html('<h4 id="form-title" style="font-weight: 700;">'+jsonObj.title+'</h4><a id="form-cover" href="'+jsonObj.cover+'" target="_blank" download="video">下载封面</a><a id="form-video" href="'+jsonObj.url+'" target="_blank" download="video">下载视频</a><a id="form-music" href="'+jsonObj.music+'" target="_blank" download="video">下载音乐</a>');
}
function setValue(){
var data = document.getElementById("input1").value;
let regex = /http[s]?:\/\/[\w.]+[\w\/]*[\w.]*\??[\w=&:\-\+\%]*[/]*/;
var v = data.match(regex)[0];
console.log(v);
var xmlhttp;
if(window.XMLHttpRequest){
xmlhttp=new XMLHttpRequest();
}
else{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");}
xmlhttp.open("GET","https://tenapi.cn/video/?url="+v,false);
xmlhttp.send();
var jsonObj = JSON.parse(xmlhttp.responseText);
console.log(jsonObj);
var code = jsonObj.code;
// if(code == '200'){
// mdui.snackbar({
// message: '解析成功'
// });
document.getElementById("myDiv").innerHTML=xmlhttp.responseText;
var jsonObj = JSON.parse(xmlhttp.responseText);
$(".down").html('<h4>'+jsonObj.title+' </h4><a id="form-cover" href="'+jsonObj.cover+'" target="_blank" download="video">下载封面</a><a id="form-video" href="'+jsonObj.url+'" target="_blank" download="video">下载视频</a><a id="form-music" href="'+jsonObj.music+'" target="_blank" download="video">下载音乐(抖音)</a> ');
// }else{
// mdui.snackbar({
// message: '解析失败,视频不存在或者链接不正确'
// });
// }
}
</script>
</html>
<!---->
<?php
} ?>
<?php endwhile; ?>
</div>
<?php comments_template('/template/comments.php', true); ?>
</div>
</div>
<?php get_sidebar(); ?>
</main>
<?php
get_footer();
© 版权声明
THE END
- 最新
- 最热
只看作者