WHMCS 单次订购限制数量上限

WHMCS 单次订购限制数量上限

admin
2021-05-04 / 0 评论 / 9 阅读 / 正在检测是否收录...

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 文件, 并将上面的代码复制进去即可

0

评论 (0)

取消