Beispiel #1
0
 static function getPointsEarned($controller, $cart)
 {
     $pointRule = $controller->getPointRule();
     if ($pointRule) {
         if (is_callable($pointRule)) {
             $points = $pointRule($controller, $cart);
             return $points;
         }
         $isEligible = TRUE;
         if ($isEligibleFunc = Helper_Structure::getArrayValue($pointRule, 'is_earn_eligible')) {
             $isEligible = $isEligibleFunc($controller, $cart);
         }
         if ($eligibleMemberTypes = Helper_Structure::getArrayValue($pointRule, 'eligible_member_types')) {
             $isEligible = self::isMemberEligible($controller, Helper_String::commaStrToArr($eligibleMemberTypes));
         }
         if ($isEligible) {
             $spent = Helper_Cart::getAmountSpent($cart);
             if (!empty($pointRule['with_exclude_sale_items'])) {
                 $saleItems = array_filter($cart['items'], function ($x) {
                     return !empty($x['is_sale']);
                 });
                 $saleTotal = self::getItemTotal($saleItems);
                 $spent = max($spent - $saleTotal, 0);
             }
             return self::getPointsEarnedByAmountSpent($controller, $spent);
         }
     }
     return 0;
 }