Member Pro插件支持会员订阅功能,通过开通会员可以获取更多免费或者折扣权限。目前前端页面针对会员订阅开通的入口有以下几个:
- 涉及到会员优惠或者免费内容(资源)的位置有会员开通提示及入口;
- 账号设置页面头像昵称下方有开通的入口;
- 内置了一个会员开通的边栏小工具,可选择添加到边栏
总体来说能满足基本的使用需求。不过还是有部分用户会有自定义的需求,比如专门做一个会员介绍的页面,然后放置开通会员的按钮,或者结合自身业务需求二次开发的时候涉及到会员开通的调用等。针对这类需求我们近期版本完善了会员开通的前端调用方式。
会员开通、续费及升级的前端调用
目前可以通过在HTML元素节点上添类名(class)
实现调用,这个HTML元素可以是按钮、链接、图片或者其他具体业务场景需要的元素,并无限制;并指定data-vip
属性选定默认会员ID及付费周期,其中会员ID和付费周期通过两个英文冒号分隔,例如:vip1::month
。
1、会员开通调用
类名(class) | data-vip属性(可选) |
---|---|
j-vip-new | 需要开通的会员ID::开通周期 |
示例代码:
// 调用会员开通弹框
<button class="btn btn-primary j-vip-new">开通会员</button>
// 调用会员开通弹框,并根据data-vip属性默认选中开通信息
<button class="btn btn-primary j-vip-new" data-vip="vip1::month">开通会员</button>
2、会员续费调用
类名(class) | data-vip属性(可选) |
---|---|
j-vip-renew | 需要续费的会员ID::续费周期 |
示例代码:
// 调用会员续费弹框
<button class="btn btn-primary j-vip-renew">续费会员</button>
// 调用会员续费弹框,并根据data-vip属性默认选中续费信息
<button class="btn btn-primary j-vip-renew" data-vip="vip1::month">续费会员</button>
3、会员升级调用
类名(class) | data-vip属性(可选) |
---|---|
j-vip-upgrade | 需要升级到的会员ID::升级周期 |
示例代码:
// 调用会员升级弹框
<button class="btn btn-primary j-vip-upgrade">升级会员</button>
// 调用会员升级弹框,并根据data-vip属性默认选中升级信息
<button class="btn btn-primary j-vip-upgrade" data-vip="vip2::month">升级会员</button>
4、会员ID和周期
会员ID
会员ID可在后台「用户中心-会员订阅-会员类型」里面查看具体每个会员设置的ID。
周期
首先需要在「用户中心-会员订阅-会员类型」里面确保当前操作的会员有勾选对应的付费周期
选项,具体每个付费周期
字段值如下表:
周付 | 月付 | 季付 | 半年付 | 年付 | 终身 |
---|---|---|---|---|---|
week | month | season | halfyear | year | lifetime |
后端判断会员状态
前端可以调用会员开通的弹框,但是无法判断具体用户是否已经开通会员,或者需要升级的会员没准比当前会员等级还低,所以对于有开发能力的用户可以依靠服务端PHP代码实现进一步判断处理。
可能涉及到的PHP方法
WPCOM_VIP::get_user_vip($user_id = "")
:$user_id为用户ID,可选参数,获取用户会员详细信息
WPCOM_VIP::vip_can_upgrade($vip)
:$vip传入需要判断的用户会员信息,查询会员是否可以升级
WPCOM_VIP::get_vip_types()
:获取后台配置的会员类型信息
1、用户是否已经开通会员
判断示例代码:
/**
* 判断方法 WPCOM_VIP::get_user_vip($user_id = "")
* @param int $user_id 可选,可以传入当前需要判断的用户ID,不传自动查询当前登录用户
* @return mixed 查询到会员信息会返回array数组,失败返回 false
*/
$vip = WPCOM_VIP::get_user_vip();
if($vip){
// 是会员,不展示会员开通按钮
echo "已经是会员";
// 或者可以打印 $vip 查看会员具体信息,比如比对会员ID和当前需要操作的会员ID一致,则展示续费按钮;另外expired字段是会员到期时间,如果付费周期允许为终身则需要单独判断,到期时间年份是9999则表示是终身会员,不支持续费
if($vip['ID'] === 'vip1'){
echo '<button class="btn btn-primary j-vip-renew">续费会员</button>';
}
}else{
echo '<button class="btn btn-primary j-vip-new">开通会员</button>';
}
2、用户是否允许升级会员
判断示例代码:
/**
* 判断方法 WPCOM_VIP::vip_can_upgrade($vip)
* @param array $vip 传入需要判断的会员信息
* @return bool 可以升级返回true,否则返回 false
*/
$vip = WPCOM_VIP::get_user_vip(); // 先获取当前用户会员信息
$upgrade = WPCOM_VIP::vip_can_upgrade($vip);
if($upgrade){
// 可以升级
echo '<button class="btn btn-primary j-vip-upgrade">升级会员</button>';
}else{
// 不能升级,可能后台未开启允许会员升级选项,如果已经开启,则表示用户已经是最高等级会员
echo '您好,尊贵的至尊会员用户';
}