acf_field_flexible_content::delete_row()publicACF 5.5.8

This function will delete a value row

Метод класса: acf_field_flexible_content{}

Хуков нет.

Возвращает

true|false.

Использование

$acf_field_flexible_content = new acf_field_flexible_content();
$acf_field_flexible_content->delete_row( $i, $field, $post_id );
$i(int) (обязательный)
-
$field(массив) (обязательный)
-
$post_id(разное) (обязательный)
-

Список изменений

С версии 5.5.8 Введена.

Код acf_field_flexible_content::delete_row() ACF 6.0.4

function delete_row( $i, $field, $post_id ) {

	// vars
	$value = acf_get_metadata( $post_id, $field['name'] );

	// bail early if no value
	if ( ! is_array( $value ) || ! isset( $value[ $i ] ) ) {
		return false;
	}

	// get layout
	$layout = $this->get_layout( $value[ $i ], $field );

	// bail early if no layout
	if ( ! $layout || empty( $layout['sub_fields'] ) ) {
		return false;
	}

	// loop
	foreach ( $layout['sub_fields'] as $sub_field ) {

		// modify name for delete
		$sub_field['name'] = "{$field['name']}_{$i}_{$sub_field['name']}";

		// delete value
		acf_delete_value( $post_id, $sub_field );

	}

	// return
	return true;

}