Support

Account

Home Forums ACF PRO Automatically remove old repeater rows

Helping

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 https://www.advancedcustomfields.com/resources/acfload_value/ 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)

The topic ‘Automatically remove old repeater rows’ is closed to new replies.