Пример #1
0
/**
 * Get promotion dynamic properties
 *
 * @param array $promotion_id promotion ID
 * @param array $promotion promotion condition
 * @param array $condition condition
 * @param array $cart cart
 * @param array $auth auth information
 * @return mixed
 */
function fn_promotion_get_dynamic($promotion_id, $promotion, $condition, &$cart, &$auth = NULL)
{
    if ($condition == 'number_of_usages') {
        $usages = db_get_field("SELECT number_of_usages FROM ?:promotions WHERE promotion_id = ?i", $promotion_id);
        return (int) $usages + 1;
    } elseif ($condition == 'once_per_customer') {
        if (empty($cart['user_data'])) {
            return 'Y';
        }
        // This is checkbox with values (Y/N), so we need to return appropriate values
        return fn_promotion_check_existence($promotion_id, $cart) ? 'N' : 'Y';
    }
}
Пример #2
0
/**
 * Get promotion dynamic properties
 *
 * @param array $promotion_id promotion ID
 * @param array $promotion promotion condition
 * @param array $condition condition
 * @param array $cart cart
 * @param array $auth auth information
 * @return mixed
 */
function fn_promotion_get_dynamic($promotion_id, $promotion, $condition, &$cart, &$auth = NULL)
{
    if ($condition == 'number_of_usages') {
        $usages = db_get_field("SELECT number_of_usages FROM ?:promotions WHERE promotion_id = ?i", $promotion_id);
        return intval($usages) + 1;
    } elseif ($condition == 'once_per_customer') {
        $exists = fn_promotion_check_existence($promotion_id, $cart);
        if (empty($cart['user_data'])) {
            return 'Y';
        }
        $promotion_data = fn_get_promotion_data($promotion_id);
        $coupon_exist = false;
        if (!empty($promotion_data['conditions']['conditions'])) {
            foreach ($promotion_data['conditions']['conditions'] as $val) {
                if ($val['condition'] == 'coupon_code') {
                    $coupon_exist = fn_promotion_validate_coupon($val, $cart);
                    if (!empty($coupon_exist) && $exists) {
                        fn_set_notification('W', __('warning'), __('text_can_be_used_once'), "K", 'error_coupon_already_used');
                        $_SESSION['promotion_notices']['promotion']['messages'][] = 'coupon_already_used';
                    }
                    break;
                }
            }
        }
        if ($exists) {
            return 'N';
        }
        return 'Y';
        // this is checkbox with values (Y/N), so we need to return appropriate values
    }
}