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