Exemplo n.º 1
0
function rzGetMembershipId($sUserId)
{
    $aMembership = getMemberMembershipInfo_current($sUserId);
    return $aMembership["ID"];
}
/**
 * Retrieves information about membership for a given member at a given moment.
 *
 * If there are no memberships purchased/assigned to the
 * given member or all of them have expired at the given point,
 * the member is assumed to be a standard member, and the function
 * returns    information about the Standard membership. This will
 * also happen if a member wasnt actually registered in the database
 * at that point - the function will still return info about Standard
 * membership, not the Non-member one.
 *
 * If there is no profile with the given $iMemberId,
 * the function returns information about the Non-member
 * predefined membership.
 *
 * The Standard and Non-member memberships have their
 * DateStarts and DateExpires attributes set to NULL.
 *
 * @param int $iMemberId    - ID of a member to get info about
 * @param int $time         - specifies the time to use when determining membership;
 *                          if not specified, the function takes the current time
 *
 * @return array(    'ID'            => membership id,
 *                    'Name'            => membership name,
 *                    'DateStarts'    => (UNIX timestamp) date/time purchased,
 *                    'DateExpires'    => (UNIX timestamp) date/time expires )
 *
 */
function getMemberMembershipInfo($iMemberId, $iTime = '')
{
    $iTime = $iTime == '' ? time() : (int) $iTime;
    $aMembershipCurrent = getMemberMembershipInfo_current($iMemberId, $iTime);
    if (in_array($aMembershipCurrent['ID'], array(MEMBERSHIP_ID_STANDARD, MEMBERSHIP_ID_NON_MEMBER))) {
        return $aMembershipCurrent;
    }
    $aMembership = $aMembershipCurrent;
    do {
        $iDateStarts = $aMembership['DateStarts'];
        $aMembership = getMemberMembershipInfo_current($iMemberId, (int) $iDateStarts < 1 ? 0 : $iDateStarts - 1);
    } while ($aMembership['ID'] == $aMembershipCurrent['ID'] && (int) $aMembership['DateStarts']);
    $aMembership = $aMembershipCurrent;
    do {
        $iDateExpires = $aMembership['DateExpires'];
        $aMembership = getMemberMembershipInfo_current($iMemberId, $iDateExpires);
    } while ($aMembership['ID'] == $aMembershipCurrent['ID'] && (int) $aMembership['DateExpires']);
    $aMembershipCurrent['DateStarts'] = $iDateStarts;
    $aMembershipCurrent['DateExpires'] = $iDateExpires;
    return $aMembershipCurrent;
}
/**
 * This is an internal function - do NOT use it outside of membership_levels.inc.php!
 */
function getMemberMembershipInfo_latest($memberID, $time = '')
{
    $time = $time == '' ? time() : (int) $time;
    $originalMembership = getMemberMembershipInfo_current($memberID, $time);
    if ($originalMembership['ID'] == MEMBERSHIP_ID_STANDARD || $originalMembership['ID'] == MEMBERSHIP_ID_NON_MEMBER) {
        return $originalMembership;
    }
    $arrMembership = $originalMembership;
    $lastMembership = $originalMembership;
    do {
        $dateExpires = $arrMembership['DateExpires'];
        $arrMembership = getMemberMembershipInfo_current($memberID, $dateExpires);
        if (!is_null($dateExpires)) {
            $lastMembership = $arrMembership;
        }
    } while ($arrMembership['ID'] != MEMBERSHIP_ID_STANDARD && (int) $arrMembership['DateExpires']);
    $arrMembership = $lastMembership;
    do {
        $dateStarts = $arrMembership['DateStarts'];
        $arrMembership = getMemberMembershipInfo_current($memberID, $dateStarts - 1);
    } while ($arrMembership['ID'] == $lastMembership['ID'] && (int) $arrMembership['DateStarts']);
    $originalMembership['DateStarts'] = $dateStarts;
    $originalMembership['DateExpires'] = $dateExpires;
    return $originalMembership;
}