WHMCS 单次订购限制数量上限
whmcs 在默认情况下, 购物车是可以选择无限数量的产品.
虽然说可以设置产品的上限数量, 但也可以将当前剩余可用的数量全部暂用完.
然后后台就会产生一大堆无用的数据, 并且大量订单会导致数据库出现异常
所以我们需要防止这种事情发生
因为 WHMCS 是加密的关系, 并不能够直接修改购物车的代码, 但是他有 Hooks 可以判断当前购物车内产品的数量
我们利用到的是 ShoppingCartValidateCheckout
在结账时检查数量
<?php
use Illuminate\Database\Capsule\Manager as Capsule;
add_hook('ShoppingCartValidateCheckout', 1, function($vars) {
$cartcount = 0;
foreach($_SESSION['cart']['products'] as $k => $v) {
if($v['qty'] > 0) {
$cartcount += $v['qty'];
} else {
$cartcount += 1;
}
}
$uid = $_SESSION['uid'];
$langage = $_SESSION['Language'];
$maxLimit = $uid ? 10 : 5;
$msg = "<strong>You have been reached your products limit.</strong>";
if($langage == 'chinese') {
$msg = "<strong>单次订购数量到达上限</strong>";
}
if($cartcount > $maxLimit) {
return sprintf($msg);
}
});
在 whmcs 根目录下的 /includes/hooks 新建一个 PHP 文件, 并将上面的代码复制进去即可
【声明】本文 WHMCS 单次订购限制数量上限 为柠之漠然原创文章,转载请注明出自
枫之落叶
并保留本文有效链接:https://blog.shiniv.com/2017/07/whmcs-shopping-cart-limit-product-count/ , 转载请保留本声明!