VIP会员
VIP 插件
会员开通、续费和升级。后台配置多个等级,每个等级可设多档时长和价格。支持微信、支付宝、余额支付。升级时按剩余时长抵扣差价。到期后执行 vip:expire 改为过期。
后台「VIP等级」里填的内容,前台购买页会直接显示。自己做页面时用下面的方式取。
等级字段
| 字段 | 说明 |
|---|---|
| name | 名称 |
| label | 名称旁边的角标,如「永久」 |
| intro | 一行介绍 |
| image | 等级图片,已是完整地址 |
| icon | 图标 class,如 fa fa-star,页面里用 `` |
| content | 详细说明,富文本 |
| level | 等级数字,数字越大等级越高 |
| pricedata | 价格列表 |
| rightdata | 权益列表 |
价格每一项:title 标题、days 天数、price 价格、subtext 描述、unit 单位、default 是否默认。
权益每一项:text 名称、intro 介绍、image 图标地址。
模板
{foreach name="vipList" id="item"}
<img src="%7B$item.image%7D" alt="{$item.name}" />
<h3><i class="{$item.icon}"></i> {$item.name} {$item.label}</h3>
<p>{$item.intro}</p>
<div>{$item.content|raw}</div>
{foreach name="item.rightdata" id="right"}
<img src="%7B$right.image%7D" alt="{$right.text}" />
<span>{$right.text}</span>
<span>{$right.intro}</span>
{/foreach}
{foreach name="item.pricedata" id="price"}
{$price.title} {$price.days}天 ¥{$price.price}
{/foreach}
{/foreach}content 是后台编辑器内容,输出时加 |raw。
PHP
use modules\vip\library\Service;
$list = Service::getVipList();
$info = Service::getVipInfo(); // 当前登录会员
$ok = Service::isVip(2); // 等级大于等于 2
$ok = Service::isVip(2, true); // 等级必须等于 2getVipInfo() 返回当前会员的 name、level、image、rightdata、expiredate、remainseconds。未开通返回空数组。
全部等级用模型:
$list = \modules\vip\model\Vip::where('status', 'normal')->order('level', 'asc')->select();到期检查
到期不会自动改状态,需要定时执行:
php think vip:expire建议每小时跑一次。crontab:
0 * * * * cd /你的站点目录 && php think vip:expire接口
GET /api/vip.index/index,不用登录。
返回 vipList 和当前会员的 vipInfo。未登录时 vipInfo 为 null。
BadouCMS