Update grandchild repeater field with value per row

enter image description here

I’m trying to take the following data from a table:

And input it to a nested ACF repeater field. I’ve got very close in that it’s creating the correct amount of tables (3 from the example), the correct amount of columns for each table.

The last part isn’t quite working, it’s only inputting the last row of data into the “Information” repeater, which suggests it’s not iterating the row numbers, therefore just inputting it to row 1.

Where am I going wrong (see code at the bottom)? So for the first table, each information table should have 4 rows of data in it for each column.

  • Top repeater (product codes): field_5ae0882f9d6f9
    • Nested repeater 1 (table): field_5b3f409de191a
      • Nested repeater 2 (information): field_5ae088999d6fb
        • Field to update (text): field_5ae088b79d6fc

Here’s the code:

     $value = array();
      $rowcount = 1;
      while($row = next($rows)){

          $cells = $row->find('td');
          $columnsCount = count($cells);
          $counter = 1;
          foreach ($cells as $cell) {
            $value = array(
              "field_5ae088999d6fb" => array(
                array("field_5ae088b79d6fc" => strip_tags($cell->innertext))
              )
            );
            update_sub_row( array('field_5ae0882f9d6f9', $tablecounter, 'field_5b3f409de191a'), $counter, $value, $post_id );
            $value = array();
            $counter++;
          }

        $rowcount++;

  }

  $tablecounter++;

Read more here:: Update grandchild repeater field with value per row

Leave a Reply

Your email address will not be published. Required fields are marked *