sspanel v3魔改版添加功能之——限购

限购 功能和我之前写的限售功能很像,这里自我区分一下,以免混淆:“限购为限制同一用户购买数量;限售为限制同一套餐售卖数量”。举例:A套餐限购100件,即所有用户都可以买,卖出100件后限制购买;A套餐限售5件,即同一用户只能(累计)购买A套餐5件(次),购买第6件(次)时提供限制购买。当然你也可以将限购和限售两个功能结合起来,达到叠加作用,个人感觉可玩性强。

  • sspanel版本:Anankke,其他版本可能不适用。
  • 修改文件前务必先备份!
  • 有一定的html/php基础,会折腾。

基础

首先路径:根目录/app/Controllers,找到文件:UserController.php,此文件控制着用户的大部分行为/功能。使用Ctrl+F组合按键寻找“喵喵喵~ 当前余额不足”,这段代码处在if语句块内,我们在if语句后写入以下代码。为了更清楚理解什么叫在if语句后,下面我会贴出具体截图,不懂的请务必比照截图写!

$bought = new Bought();
$user_id = $user->id;
$shop_id = $shop->id;
$restrict_buy = $shop-> restrict_buy;
$num = $bought->where('userid', $user_id)->where('shopid', $shop_id)->count();
if ($restrict_buy > 0)
{
if ($restrict_buy < $num)
{
$res['ret'] = 0;
$res['msg'] = '本套餐限购'.$restrict_buy."件,您已达到限购上限,无法购买。";
return $response->getBody()->write(json_encode($res));
}
}

使用CTRL+F组合按键寻找 $bought = new Bought();,你会发现这行代码出现在了两个地方,其中一个是我们自己写的。找到并注释或删除不是我们写的那个,具体位置和做法看截图。这行代码可以不删除,但是为了严谨些我还是建议你这么做。

现在我们使用phpmyadmin打开数据库,找到shop表,点击上方的“结构”,点击下方的“执行”。名字为:restrict_buy,其他不变,保存后点“浏览”。

你要限购哪个套餐,就双击修改这个套餐的restrict_buy值,比如我这里设置套餐“IPLC专线 测试套餐”限购为2。

高级

本站特有的规矩,掌握了基础之后就要进阶高级了。因为限购功能简单,也玩不出什么花来(暂时),高级就完善一下功能更能贴合使用场景。鉴于这是高级,就不一步步截图了。

1、增加用户累计购买次数的提醒,以免用户被限购的莫名其妙。在 if ($restrict_buy < $num) 语句后,添加else语句

if ($restrict_buy &lt; $num)
{
$res['ret'] = 0;
$res['msg'] = '本套餐限购'.$restrict_buy.'件,您已达到限购上限,无法购买。';
return $response-&gt;getBody()-&gt;write(json_encode($res));
}else{
$res['ret'] = 1;
$res['msg'] = '本套餐限购'.$restrict_buy.'件,本次购买后您累计购买'.($num + 1).'件';
return $response-&gt;getBody()-&gt;write(json_encode($res));
}

2、默认不允许限购0件,按照正常人的逻辑,限购0件就等于不允许购买,既然不允许购买了为什么不直接下架呢,就喜欢挂着让用户眼馋吗?如果你真的想要眼馋用户,也可以。修改:if ($restrict_buy > 0) 为:if ($restrict_buy >= 0),然后进入phpmyadmin,修改 restrict_buy 字段的默认值为-1。再把原来该字段的值是0的全都手动修改为-1,否则你的所有套餐都无法购买。

3、修改限购数量需要进入phpmyadmin手动修改 restrict_buy 的值,比较麻烦。你可以将修改限购数量功能放进后台“编辑商品”里,具体操作方法请参考:限售教程,因为这两者很像就不再啰嗦。
推荐有一定php、html基础的同学尝试,无基础请勿尝试!!!

说明

  1. 默认不允许限购0件,限购0件即为不允许购买,所以直接对套餐进行下架即可。如果你钟情限购0件,请参考“高级”篇教程。
  2. 应用场景:有人会一直购买针对新用户的特价套餐来变相“白漂”,限购能很好解决这一问题。
  3. 如有遗漏、错误之处,请不吝赐教,你的建议能够帮助学者少走弯路,感谢!