Home Forums ACF PRO Automatically remove old repeater rows


Automatically remove old repeater rows

  • Is there a way to automatically remove old repeater rows older than the current date?

    I have a repeater called “departures” with sub fields “date” “price” “status”

    If the row has a “date” that is older than today’s date then I’d like it to be deleted, that way the customer doesn’t need to manage and manually remove old departure listings.

    Is this possible? Has anyone come across this before?

  • Create an acf/load_value filter for the repeater. The value at this point should be an array of repeater rows. You should be able to remove the ones you don’t want and then re-order the array so the indexes are consecutive.

    something like:

    function remove_old_departures($value, $post_id, $field) {
      $new_value = array();
      if (is_array($value) && count($value)) {
        foreach ($value as $row) {
          // logic to decide if your keeping the row
          // if you want to keep the row
          $new_value[] = $row;
      return $new_value;
    add_filter('acf/load_value/key=field_123456...', 'remove_old_departures', 10, 3)
Viewing 2 posts - 1 through 2 (of 2 total)

You must be logged in to reply to this topic.