acf_field_repeater::ajax_get_rows()
Returns an array of rows used to populate the repeater table over AJAX.
Метод класса: acf_field_repeater{}
Хуков нет.
Возвращает
null|WP_Error
.
Использование
$acf_field_repeater = new acf_field_repeater(); $acf_field_repeater->ajax_get_rows();
Список изменений
С версии 6.0.0 | Введена. |
Код acf_field_repeater::ajax_get_rows() acf field repeater::ajax get rows ACF 6.0.4
public function ajax_get_rows() { if ( ! acf_verify_ajax() ) { $error = array( 'error' => __( 'Invalid nonce.', 'acf' ) ); wp_send_json_error( $error, 401 ); } $args = acf_request_args( array( 'field_name' => '', 'field_key' => '', 'post_id' => 0, 'rows_per_page' => 0, 'refresh' => false, ) ); if ( '' === $args['field_name'] || '' === $args['field_key'] ) { $error = array( 'error' => __( 'Invalid field key or name.', 'acf' ) ); wp_send_json_error( $error, 404 ); } $field = acf_get_field( $args['field_key'] ); $post_id = acf_get_valid_post_id( $args['post_id'] ); $response = array(); if ( ! $field || ! $post_id ) { $error = array( 'error' => __( 'There was an error retrieving the field.', 'acf' ) ); wp_send_json_error( $error, 404 ); } // Make sure we have a valid field. $field = acf_validate_field( $field ); // Make sure that we only get a subset of the rows. $this->is_rendering = true; $args['rows_per_page'] = (int) $args['rows_per_page']; if ( $args['rows_per_page'] ) { $field['rows_per_page'] = $args['rows_per_page']; } /** * We have to swap out the field name with the one sent via JS, * as the repeater could be inside a subfield. */ $field['name'] = $args['field_name']; $field['value'] = acf_get_value( $post_id, $field ); $field = acf_prepare_field( $field ); $repeater_table = new ACF_Repeater_Table( $field ); $response['rows'] = $repeater_table->rows( true ); if ( $args['refresh'] ) { $response['total_rows'] = (int) acf_get_metadata( $post_id, $args['field_name'] ); } wp_send_json_success( $response ); }