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)用方式。

Member Pro用戶中心插件會(huì)員開通前端調(diào)用技術(shù)實(shí)現(xiàn)方案

會(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ì)員用戶';
}