WHMCS 单次订购限制数量上限

2017年7月10日 分类: whmcs (14 个脚步)

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 单次订购限制数量上限 【声明】本文 WHMCS 单次订购限制数量上限 为柠之漠然原创文章,转载请注明出自 枫之落叶
并保留本文有效链接:https://blog.shiniv.com/2017/07/whmcs-shopping-cart-limit-product-count/ , 转载请保留本声明!

标签: , ,
目前还没有任何评论.
你必须要启用 Javascript