De api returned een hoop memberships, maar ik hoef er maar een paar te tonen aan de hand van welke duration je kiest.
Dit werkt ook gewoon, overigens haal ik ook de '1' uit de membership namen. Vervolgens zijn er nog wat handelingen die allemaal werken, alleen krijgen ik het sorteren niet aan de praat.
Ik wil zeg maar de volgende volgordes voor elkaar krijgen:
Flexibel:
'Pay Per Week'
1 jaar:
'Smart Choice', 'Smart Duo'
2 jaar:
'Smart Choice 2jr', 'Smart Duo 2jr'
Hier is de code die ik gebruik
function get_memberships(){
$location_id = htmlspecialchars(trim($_GET['location_id']));
$memberships = (new SportivityClient($location_id))->getMemberships();
// wp_send_json($memberships);
$duration = htmlspecialchars(trim($_GET['duration']));
$memberships = array_filter($memberships, function($mem) use ($duration) {
switch($duration){
case 'Flexibel':
return in_array($mem['Description'], ["Pay Per Week 1"]);
case '1 Jaar':
return in_array($mem['Description'], ["Smart Choice 1", "Smart Duo 1"]);
case '2 Jaar':
return in_array($mem['Description'], ["Smart Choice 2jr 1", "Smart Duo 2jr 1"]);
}
});
$memberships = array_values($memberships);
$savedMemberships = function_exists('getSavedMemberships') ? getSavedMemberships() : [];
foreach($memberships as $key => $value){
$memberships[$key]['Description'] = rtrim($memberships[$key]['Description'], '1');
if($memberships[$key]['Action'] == true){
$savedMembershipKey = array_search($memberships[$key]['Description'], array_column($savedMemberships, 'title'));
if ($savedMembershipKey === false) {
continue;
}
$memberships[$key]['OriginalPrice'] = $savedMemberships[$savedMembershipKey]['normalPrice'];
}
}
$order = [['Description' => 'Pay Per Week'], ['Description' => 'Smart Choice'], ['Description' => 'Smart Choice 2jr'], ['Description' => 'Smart Duo', 'Smart Duo 2jr']];
usort($memberships, function (array $a, array $b) use ($order) {
$pos_a = array_search($a['Description'], $order);
$pos_b = array_search($b['Description'], $order);
return strcmp($pos_a, $pos_b);
});
wp_send_json($memberships);
}
Als iemand me zou kunnen helpen met het sorteren zou dat heel fijn zijn. Dit is namelijk echt een php onderdeel waar ik vaak tegen aan loop omdat ik het best verwarrend vind.