奖励/忠诚度计划正在向所有人发放免费资金

时间:2018-03-20 09:55:56

标签: php e-commerce modulo reward-system

我的应用程序通过每15个订单在收据/感谢页面上打印优惠券代码来奖励忠诚度。优惠券价值等于之前15个订单之一的总价格,随机抽取。

这已经有一段时间了,但现在由于某种原因,每个新用户都会在第一个订单上获得优惠券代码:

$count = dbFuncs::countRewardsProgress($_SESSION['user_id'])['count'];
$displayRewardsCode = dbFuncs::displayRewardsCode()['rewardsCode'];

        if ( $count > 0 ) {
            $remainder = $count % 15;
        }


        if($remainder == 0) {

            echo "Congratulations, You've earned a $$previousOrderValueRoulette coupon code! We thank you for your continued business.";
            echo "<br />";
            echo "<br />";
            echo 'Coupon code: ';
            echo $displayRewardsCode;

            dbFuncs::assignRewardsCode($previousOrderValueRoulette, $_SESSION['user_id'], $displayRewardsCode);

        } else {
            echo 'rewards progress: ';
            echo $count;
            echo '/15 orders completed';
        }

我如何确保客户每15个订单只收到一张优惠券?

1 个答案:

答案 0 :(得分:0)

因为如果$count为0,则$reminder未初始化,因此在下一个条件中它等于0。

要解决此问题,请更改第二个条件以检查$count是否大于0

    if ( $count > 0 ) {
        $remainder = $count % 15;
    }


    if($count > 0 && $remainder == 0) {

        echo "Congratulations, You've earned a $$previousOrderValueRoulette coupon code! We thank you for your continued business.";
        echo "<br />";
        echo "<br />";
        echo 'Coupon code: ';
        echo $displayRewardsCode;

        dbFuncs::assignRewardsCode($previousOrderValueRoulette, $_SESSION['user_id'], $displayRewardsCode);

    } else {
        echo 'rewards progress: ';
        echo $count;
        echo '/15 orders completed';
    }