1

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

enter image description here

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.

enter image description here

  • 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++;

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.