программа поощрений / лояльности раздает всем бесплатные деньги

Мое приложение поощряет лояльность, печатая код купона на странице квитанции / благодарности каждый 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-й заказ?

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';
}
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]