Skip to content

Instantly share code, notes, and snippets.

@musicalbigfoot
Created April 9, 2015 04:05
Show Gist options
  • Save musicalbigfoot/f52dc92f52a6211aa022 to your computer and use it in GitHub Desktop.
Save musicalbigfoot/f52dc92f52a6211aa022 to your computer and use it in GitHub Desktop.
ACF: Update sort order of repeater fields - functions/php
add_action('wp_ajax_library_set_update_sort', 'library_set_update_sort');
add_action('wp_ajax_nopriv_library_set_update_sort', 'library_set_update_sort');
function library_set_update_sort() {
$return = array();
$order = array();
$new_order = $_POST['new_order'];
foreach ($new_order as $i => $row) {
$row = split('-', $row);
$my_library_id = $row[0];
$order[] = $row[1];
}
$library_expansions = get_field('expansions', 127);
$sorted_expansions = sortArrayByArray($library_expansions, $order);
update_field('expansions', $sorted_expansions, 127);
$return['success'] = "Sort order updated successfully.";
echo json_encode($return, true);
die();
}
function sortArrayByArray(Array $array, Array $orderArray) {
$ordered = array();
foreach($orderArray as $key) {
if(array_key_exists($key,$array)) {
$ordered[$key] = $array[$key];
unset($array[$key]);
}
}
return $ordered + $array;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment