Member Pro插件支持會(huì)員訂閱功能,通過開通會(huì)員可以獲取更多免費(fèi)或者折扣權(quán)限。目前前端頁面針對(duì)會(huì)員訂閱開通的入口有以下幾個(gè):
- 涉及到會(huì)員優(yōu)惠或者免費(fèi)內(nèi)容(資源)的位置有會(huì)員開通提示及入口;
- 賬號(hào)設(shè)置頁面頭像昵稱下方有開通的入口;
- 內(nèi)置了一個(gè)會(huì)員開通的邊欄小工具,可選擇添加到邊欄
總體來說能滿足基本的使用需求。不過還是有部分用戶會(huì)有自定義的需求,比如專門做一個(gè)會(huì)員介紹的頁面,然后放置開通會(huì)員的按鈕,或者結(jié)合自身業(yè)務(wù)需求二次開發(fā)的時(shí)候涉及到會(huì)員開通的調(diào)用等。針對(duì)這類需求我們近期版本完善了會(huì)員開通的前端調(diào)用方式。
會(huì)員開通、續(xù)費(fèi)及升級(jí)的前端調(diào)用
目前可以通過在HTML元素節(jié)點(diǎn)上添類名(class)
實(shí)現(xiàn)調(diào)用,這個(gè)HTML元素可以是按鈕、鏈接、圖片或者其他具體業(yè)務(wù)場(chǎng)景需要的元素,并無限制;并指定data-vip
屬性選定默認(rèn)會(huì)員ID及付費(fèi)周期,其中會(huì)員ID和付費(fèi)周期通過兩個(gè)英文冒號(hào)分隔,例如:vip1::month
。
1、會(huì)員開通調(diào)用
類名(class) | data-vip屬性(可選) |
---|---|
j-vip-new | 需要開通的會(huì)員ID::開通周期 |
示例代碼:
// 調(diào)用會(huì)員開通彈框
<button class="btn btn-primary j-vip-new">開通會(huì)員</button>
// 調(diào)用會(huì)員開通彈框,并根據(jù)data-vip屬性默認(rèn)選中開通信息
<button class="btn btn-primary j-vip-new" data-vip="vip1::month">開通會(huì)員</button>
2、會(huì)員續(xù)費(fèi)調(diào)用
類名(class) | data-vip屬性(可選) |
---|---|
j-vip-renew | 需要續(xù)費(fèi)的會(huì)員ID::續(xù)費(fèi)周期 |
示例代碼:
// 調(diào)用會(huì)員續(xù)費(fèi)彈框
<button class="btn btn-primary j-vip-renew">續(xù)費(fèi)會(huì)員</button>
// 調(diào)用會(huì)員續(xù)費(fèi)彈框,并根據(jù)data-vip屬性默認(rèn)選中續(xù)費(fèi)信息
<button class="btn btn-primary j-vip-renew" data-vip="vip1::month">續(xù)費(fèi)會(huì)員</button>
3、會(huì)員升級(jí)調(diào)用
類名(class) | data-vip屬性(可選) |
---|---|
j-vip-upgrade | 需要升級(jí)到的會(huì)員ID::升級(jí)周期 |
示例代碼:
// 調(diào)用會(huì)員升級(jí)彈框
<button class="btn btn-primary j-vip-upgrade">升級(jí)會(huì)員</button>
// 調(diào)用會(huì)員升級(jí)彈框,并根據(jù)data-vip屬性默認(rèn)選中升級(jí)信息
<button class="btn btn-primary j-vip-upgrade" data-vip="vip2::month">升級(jí)會(huì)員</button>
4、會(huì)員ID和周期
會(huì)員ID
會(huì)員ID可在后臺(tái)「用戶中心-會(huì)員訂閱-會(huì)員類型」里面查看具體每個(gè)會(huì)員設(shè)置的ID。
周期
首先需要在「用戶中心-會(huì)員訂閱-會(huì)員類型」里面確保當(dāng)前操作的會(huì)員有勾選對(duì)應(yīng)的付費(fèi)周期
選項(xiàng),具體每個(gè)付費(fèi)周期
字段值如下表:
周付 | 月付 | 季付 | 半年付 | 年付 | 終身 |
---|---|---|---|---|---|
week | month | season | halfyear | year | lifetime |
后端判斷會(huì)員狀態(tài)
前端可以調(diào)用會(huì)員開通的彈框,但是無法判斷具體用戶是否已經(jīng)開通會(huì)員,或者需要升級(jí)的會(huì)員沒準(zhǔn)比當(dāng)前會(huì)員等級(jí)還低,所以對(duì)于有開發(fā)能力的用戶可以依靠服務(wù)端PHP代碼實(shí)現(xiàn)進(jìn)一步判斷處理。
可能涉及到的PHP方法
WPCOM_VIP::get_user_vip($user_id = "")
:$user_id為用戶ID,可選參數(shù),獲取用戶會(huì)員詳細(xì)信息
WPCOM_VIP::vip_can_upgrade($vip)
:$vip傳入需要判斷的用戶會(huì)員信息,查詢會(huì)員是否可以升級(jí)
WPCOM_VIP::get_vip_types()
:獲取后臺(tái)配置的會(huì)員類型信息
1、用戶是否已經(jīng)開通會(huì)員
判斷示例代碼:
/**
* 判斷方法 WPCOM_VIP::get_user_vip($user_id = "")
* @param int $user_id 可選,可以傳入當(dāng)前需要判斷的用戶ID,不傳自動(dòng)查詢當(dāng)前登錄用戶
* @return mixed 查詢到會(huì)員信息會(huì)返回array數(shù)組,失敗返回 false
*/
$vip = WPCOM_VIP::get_user_vip();
if($vip){
// 是會(huì)員,不展示會(huì)員開通按鈕
echo "已經(jīng)是會(huì)員";
// 或者可以打印 $vip 查看會(huì)員具體信息,比如比對(duì)會(huì)員ID和當(dāng)前需要操作的會(huì)員ID一致,則展示續(xù)費(fèi)按鈕;另外expired字段是會(huì)員到期時(shí)間,如果付費(fèi)周期允許為終身則需要單獨(dú)判斷,到期時(shí)間年份是9999則表示是終身會(huì)員,不支持續(xù)費(fèi)
if($vip['ID'] === 'vip1'){
echo '<button class="btn btn-primary j-vip-renew">續(xù)費(fèi)會(huì)員</button>';
}
}else{
echo '<button class="btn btn-primary j-vip-new">開通會(huì)員</button>';
}
2、用戶是否允許升級(jí)會(huì)員
判斷示例代碼:
/**
* 判斷方法 WPCOM_VIP::vip_can_upgrade($vip)
* @param array $vip 傳入需要判斷的會(huì)員信息
* @return bool 可以升級(jí)返回true,否則返回 false
*/
$vip = WPCOM_VIP::get_user_vip(); // 先獲取當(dāng)前用戶會(huì)員信息
$upgrade = WPCOM_VIP::vip_can_upgrade($vip);
if($upgrade){
// 可以升級(jí)
echo '<button class="btn btn-primary j-vip-upgrade">升級(jí)會(huì)員</button>';
}else{
// 不能升級(jí),可能后臺(tái)未開啟允許會(huì)員升級(jí)選項(xiàng),如果已經(jīng)開啟,則表示用戶已經(jīng)是最高等級(jí)會(huì)員
echo '您好,尊貴的至尊會(huì)員用戶';
}