protected function render_repeater_rows() {
		$items  = $this->get_settings_properties();
		$values = $this->get_value();
		$values = is_array( $values ) ? $values : [];
		$slugs  = wp_list_pluck( $items, 'slug' );

		// Remove values that don't exists in the slugs array.
		foreach ( $values as $index => $value ) {
			if ( ! is_array( $value ) ) {
				continue;
			}

			$keys = array_keys( $value );

			foreach ( $slugs as $slug ) {
				if ( in_array( $slug, $keys, true ) ) {
					continue;
				}

				$values[$index][$slug] = '';
			}
		}

		$values      = array_filter( $values );
		$closed_rows = $this->get_setting( 'closed_rows', true );

		foreach ( $values as $row ):
			?>
			<tr <?php echo $closed_rows ? 'class="closed"' : ''; ?>>
				<td class="handle">
					<span class="toggle"></span>
					<span class="count"><?php echo esc_html( $this->counter + 1 ); ?></span>
				</td>
				<?php
				$this->render_properties( $items, $row );
				$this->counter ++;
				?>
				<td class="last">
					<span>
						<a title="<?php esc_attr_e( 'Remove', 'papi' ); ?>" href="#" class="repeater-remove-item">x</a>
					</span>
				</td>
			</tr>
			<?php
		endforeach;
	}
protected function render_repeater_rows() {
		$items  = $this->get_settings_properties();
		$values = $this->get_value();
		$values = is_array( $values ) ? $values : [];
		$slugs  = wp_list_pluck( $items, 'slug' );

		// Remove values that don't exists in the slugs array.
		foreach ( $values as $index => $value ) {
			if ( ! is_array( $value ) ) {
				continue;
			}

			$keys = array_keys( $value );

			foreach ( $slugs as $slug ) {
				if ( in_array( $slug, $keys, true ) ) {
					continue;
				}

				$values[$index][$slug] = '';
			}
		}

		$values      = array_filter( $values );
		$closed_rows = $this->get_setting( 'closed_rows', true );

		foreach ( $values as $row ):
			?>
			<tr <?php echo $closed_rows ? 'class="closed"' : ''; ?>>
				<td class="handle">
					<span class="toggle"></span>
					<span class="count"><?php echo esc_html( $this->counter + 1 ); ?></span>
				</td>
				<?php
				$this->render_properties( $items, $row );
				$this->counter ++;
				?>
				<td class="last">
					<span>
						<a title="<?php esc_attr_e( 'Remove', 'papi' ); ?>" href="#" class="repeater-remove-item">x</a>
					</span>
				</td>
			</tr>
			<?php
		endforeach;
	}
protected function render_repeater_rows ( ) { $ items = $ this -> get_settings_properties ( ) ; $ values = $ this -> get_value ( ) ; $ values = is_array ( $ values ) ? $ values : [ ] ; $ slugs = wp_list_pluck ( $ items , 'slug' ) ; // Remove values that don't exists in the slugs array. foreach ( $ values as $ index => $ value ) { if ( ! is_array ( $ value ) ) { continue ; } $ keys = array_keys ( $ value ) ; foreach ( $ slugs as $ slug ) { if ( in_array ( $ slug , $ keys , true ) ) { continue ; } $ values [ $ index ] [ $ slug ] = '' ; } } $ values = array_filter ( $ values ) ; $ closed_rows = $ this -> get_setting ( 'closed_rows' , true ) ; foreach ( $ values as $ row ) : ?>
			<tr <?php echo $ closed_rows ? 'class="closed"' : '' ; ?>>
				<td class="handle">
					<span class="toggle"></span>
					<span class="count"><?php echo esc_html ( $ this -> counter + 1 ) ; ?></span>
				</td>
				<?php $ this -> render_properties ( $ items , $ row ) ; $ this -> counter ++ ; ?>
				<td class="last">
					<span>
						<a title="<?php esc_attr_e ( 'Remove' , 'papi' ) ; ?>" href="#" class="repeater-remove-item">x</a>
					</span>
				</td>
			</tr>
			<?php endforeach ; }
Render repeater rows.
Render repeater rows .