子比主题功能增强-给不同等级的会员设置对应的分类和页面的访问权限已修正代码

子比主题功能增强-给不同等级的会员设置对应的分类和页面的访问权限已修正代码-程序猿
子比主题功能增强-给不同等级的会员设置对应的分类和页面的访问权限已修正代码
此内容为付费阅读,请付费后查看
100积分
付费阅读
已售 2

效果图

文章可以单独给不同级别设置不同权限以此来达到营收或者流量等方式,但过于繁琐,每篇文章都需要设置,能不能直接设置几个分类来实现呢?

如下所说:

分类0加入游客可见权限

分类1加入登录查看权限(兼容游客)

分类2加入登录,黄金会员查看权限(兼容游客、登录)

分类3加入登录,黄金会员、钻石会员查看权限(兼容游客、登录、黄金会员)

可以实现:目前以提出需求,看老唐愿不愿意弄吧,不愿意弄可以先按照我的方法来试试:

先看效果图:

1,未登录状态访问黄金会员和钻石会员类目提示:

图片[1]-子比主题功能增强-给不同等级的会员设置对应的分类和页面的访问权限已修正代码 - 程序猿-程序猿

2,登录状态(但不是会员)访问黄金会员和钻石会员类目提示:

图片[2]-子比主题功能增强-给不同等级的会员设置对应的分类和页面的访问权限已修正代码 - 程序猿-程序猿

3,登录状态,已充值为黄金会员访问钻石会员界面提示:(访问黄金会员权限类目就没必要展示了已经正常访问了)

图片[3]-子比主题功能增强-给不同等级的会员设置对应的分类和页面的访问权限已修正代码 - 程序猿-程序猿

OK!接下来看教程

不啰嗦,直接走教程:

1,首先设置好分类,记住分类ID

2,在functions.php里添加如下代码:

上述的func代码是不对的,这可能是原作者留的坑,现在进行修正记录。(因为正好有人需要这个功能)

正确代码应该是这样的

}

假设 111.php 文件位于主题根目录,那就是这个代码

在使用 locate_template 函数时,您不需要提供完整的文件路径,因为它会在当前激活的主题的目录结构中进行搜索。locate_template 函数默认会在主题根目录、子目录以及父级主题的目录中搜索指定的模板文件。

但是我还是喜欢新建独立的文件夹放文件所以我们要换个方式加载文件

$file = './wp-content/themes/zibllsucai/php/111.php';  
  
// 判断登录,访问id为1865的分类时会跳到111.php文件  
if ( in_category( array( 1865 ) ) && !is_home() && $vip_level < 1 ) {  
    if ( file_exists( $file ) ) {  
        include( $file ); // 包含找到的文件  
    } else {  
        // 如果没有找到模板文件,可以做一些备选操作,例如重定向或显示错误信息  
        wp_die( 'VIP模板文等等件未找到。' );  
    }  
    exit; // 退出脚本执行  
}

3,在主题根目录里添加2个PHP文件,名字分别命名为111.php222.php

111里面的代码设置为:

<?php get_header(); ?>
        <div class="container-fluid container-footer">
        <center><div class="wp-block-image"><figure class="size-large is-resized"><img src="/svg/stop.svg"  width="10%" height="10%"/></figure></div><center>
                    <!--未登录提示-->
                     <?php if (!is_user_logged_in()){
                         echo ' <div class="mb20 wp-posts-content"><div class="hide-post mt6"><div class=""><button><span><i class="fa fa-unlock-alt mr6"></i>未授权!该区域需要登录!</span><div class="liquid"></div></button></div>';
                        echo '<div class="flex jc" style="min-height:30vh;">';
                        echo zib_get_nocan_info($cuid, 'watermark', '你还没有登录');
                        echo '</div>';
                    }?>
                     <!--会员1级以下提示-->
                    <?php if (is_user_logged_in() && zib_get_user_vip_level($vip_level)<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="/wp-content/themes/zibll/img/vip-1.svg" data-src="/wp-content/themes/zibll/img/vip-1.svg" data-toggle="tooltip" title=""  data-original-title="正式工">正式工及以上级别(点击升级)</a></p>
                    </div>
                    </div>                       
                    <div data-quantity="1" data-radius="false" style="text-align:center" class="wp-block-zibllblock-buttons"><span class="an_1 but jb-yellow">赞助商介绍<a href="http://about" data-type="URL" data-id="about" target="_blank" rel="noreferrer noopener"></a>商介绍</span></div>
                       </div>';
                    } ?>
          </div>
        <?php get_footer(); ?>

222里面的代码设置为:

<?php get_header(); ?>
            <div class="container-fluid container-footer">
                
            <center><div class="wp-block-image"><figure class="size-large is-resized"><img src="/svg/stop.svg"  width="10%" height="10%"/></figure></div><center>
                    <!--未登录提示-->
                     <?php if (!is_user_logged_in()){
                         echo ' <div class="mb20 wp-posts-content"><div class="hide-post mt6"><div class=""><button><span><i class="fa fa-unlock-alt mr6"></i>未授权!该区域需要登录!</span><div class="liquid"></div></button></div>';
                        echo '<div class="flex jc" style="min-height:30vh;">';
                        echo zib_get_nocan_info($cuid, 'watermark', '你还没有登录');
                        echo '</div>';
                    }?>
                    
                    
                     <!--会员1级以下提示-->
                    <?php if (is_user_logged_in() && zib_get_user_vip_level($vip_level)<2){ 
                    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="/wp-content/themes/zibll/img/vip-2.svg" data-src="/wp-content/themes/zibll/img/vip-2.svg" data-toggle="tooltip" title=""  data-original-title="董事会">董事会及以上级别(点击升级)</a></p>
                       </div>
                       </div>
                       <div data-quantity="1" data-radius="false" style="text-align:center" class="wp-block-zibllblock-buttons"><span class="an_1 but jb-yellow">赞助商介绍<a href="http://about" data-type="URL" data-id="about" target="_blank" rel="noreferrer noopener"></a>商介绍</span></div>
                       </div>
                       ';
                     
                    } ?>
          </div>
                    <?php get_footer(); ?>
<div data-quantity=”1″ data-radius=”false” style=”text-align:center” class=”wp-block-zibllblock-buttons”><span class=”an_1 but jb-yellow”>赞助商介绍<a href=”http://about” data-type=”URL” data-id=”about” target=”_blank” rel=”noreferrer noopener”></a>商介绍</span></div>
</div>
;
} ?>
</div>
<?php get_footer(); ?>

最后就搞定了!简单明了,可能会出现CSS错乱等现象,看着调试就行了,这个想必很简单。

该教程适用其他主题,只要改zib_get_user_vip_level($vip_level)<1)这个为对应的就行了。

注意事项:

以上级别对应的是黄金会员或钻石会员以及登录状态,子比主题里有账号等级之分,这个是评论等提示出来的,如果需要这样的级别来区分的话,只需要改下里面的级别识别代码就行了。

觉得不错的赞助个万儿八千的吧O(∩_∩)O哈哈~!!

 

温馨提示:本文最后更新于2024-07-27 16:55:34,某些文章具有时效性,若有错误或已失效,请在下方联系站长留言
© 版权声明
THE END
点赞14 分享
评论 共4条

请登录后发表评论