- $dao = new CRM_Member_DAO_Membership();
- $dao->contact_id = $contactID;
- $pendingStatusId = array_search('Pending', CRM_Member_PseudoConstant::membershipStatus());
- $dao->whereAdd("status_id != $pendingStatusId");
-
- if ($isTest) {
- $dao->is_test = $isTest;
- }
- else {
- $dao->whereAdd('is_test IS NULL OR is_test = 0');
- }
+ $membershipQuery = \Civi\Api4\Membership::get(FALSE)
+ ->addWhere('contact_id', '=', $contactID)
+ ->addWhere('status_id:name', '<>', 'Pending')
+ ->addWhere('is_test', '=', $isTest)
+ //CRM-4297
+ ->addOrderBy('end_date', 'DESC');