name = 'repeater'; $this->defaults = array( 'acfe_repeater_stylised_button' => 0, ); $this->add_field_action('acf/render_field_settings', array($this, '_render_field_settings'), 0); } /** * _render_field_settings * * acf/render_field_settings:0 * * @param $field */ function _render_field_settings($field){ // stylised button acf_render_field_setting($field, array( 'label' => __('Stylised Button', 'acfe'), 'name' => 'acfe_repeater_stylised_button', 'key' => 'acfe_repeater_stylised_button', 'instructions' => __('Better row button integration'), 'type' => 'true_false', 'message' => '', 'default_value' => false, 'ui' => true, )); } /** * field_wrapper_attributes * * @param $wrapper * @param $field * * @return mixed */ function field_wrapper_attributes($wrapper, $field){ // stylised button if($field['acfe_repeater_stylised_button']){ $wrapper['data-acfe-repeater-stylised-button'] = 1; } // lock sortable $lock = false; $lock = apply_filters("acfe/repeater/lock", $lock, $field); $lock = apply_filters("acfe/repeater/lock/name={$field['_name']}", $lock, $field); $lock = apply_filters("acfe/repeater/lock/key={$field['key']}", $lock, $field); if($lock){ $wrapper['data-acfe-repeater-lock'] = 1; } // remove actions $remove = false; $remove = apply_filters("acfe/repeater/remove_actions", $remove, $field); $remove = apply_filters("acfe/repeater/remove_actions/name={$field['_name']}", $remove, $field); $remove = apply_filters("acfe/repeater/remove_actions/key={$field['key']}", $remove, $field); if($remove){ $wrapper['data-acfe-repeater-remove-actions'] = 1; } // return return $wrapper; } /** * format_front_value * * @param $formatted * @param $unformatted * @param $post_id * @param $field * @param $form * * @return string */ function format_front_value($formatted, $unformatted, $post_id, $field, $form){ // vars $value = acf_get_array($unformatted); $return = ''; // loop values foreach($value as $i => $sub_fields){ $array = array(); $return .= "
\n- "; // loop subfields keys foreach($sub_fields as $key => $val){ // get subfield $sub_field = acf_get_field($key); // validate if($sub_field){ // label $label = !empty($sub_field['label']) ? $sub_field['label'] : $sub_field['name']; // value $sub_field['name'] = $field['name'] . '_' . $i . '_' . $sub_field['name']; $val = acfe_form_format_value($val, $sub_field); // append $array[] = "{$label}: {$val}"; } } // merge $return .= implode('. ', $array); } // return return $return; } } acf_new_instance('acfe_field_repeater'); endif;