init_acf_settings(); parent::__construct(); } /** * Initialize */ public function init_acf_settings() { $types = Fields\Field::get_types(); foreach ( $types as $type => $supports ) { if ( $supports[ 'column' ] ) { add_action( "acf/render_field_settings/type={$type}", [ $this, 'render_column_settings' ] ); } if ( $supports[ 'quickedit' ] || $supports[ 'bulkedit' ] ) { add_action( "acf/render_field_settings/type={$type}", [ $this, 'render_edit_settings' ] ); } } } /** * */ public function render_column_settings( $field ) { // show column: todo: allow sortable //* acf_render_field_setting( $field, [ 'label' => __('Column View','acf-quickedit-fields'), 'instructions' => '', 'type' => 'column_setting', 'name' => 'column', 'message' => __("Show a column in the posts list table", 'acf-quickedit-fields'), 'width' => 50, 'field' => $field, ]); } /** * @action acf/render_field/type=column_setting */ public function render_column_setting( $field ) { $field_object = Fields\Field::getFieldObject( $field['field'] ); // parse default values $field['field'] = wp_parse_args( $field['field'], [ 'show_column' => false, 'show_column_sortable' => false, ] ); echo '
'; acf_render_field_wrap( [ 'label' => __('Show Column','acf-quickedit-fields'), 'instructions' => '', 'type' => 'true_false', 'name' => 'show_column', 'ui' => 1, 'message' => __("Show column in list tables", 'acf-quickedit-fields'), 'prefix' => $field['prefix'], 'value' => $field['field']['show_column'], ], 'div', 'label' ); if ( $field_object->is_sortable() ) { acf_render_field_wrap( [ 'label' => __('Sortable Column','acf-quickedit-fields'), 'instructions' => '', 'type' => 'true_false', 'name' => 'show_column_sortable', 'ui' => 1, 'message' => __("Make this column sortable", 'acf-quickedit-fields'), 'prefix' => $field['prefix'], 'value' => $field['field']['show_column_sortable'], ], 'div', 'label' ); } echo '
'; $weight_field = [ 'label' => __('Column Weight','acf-quickedit-fields'), 'instructions' => __('Columns with a higher weight will be pushed to the right. The leftmost WordPress column has a weight of 0, the next one 100 and so on. Leave empty to place a column to the rightmost position.','acf-quickedit-fields'), 'type' => 'number', 'name' => 'show_column_weight', 'message' => __("Column Weight", 'acf-quickedit-fields'), 'default_value' => '1000', 'min' => '-10000', 'max' => '10000', 'step' => '1', 'placeholder' => '', 'wrapper' => [ 'width' => 50, ], 'prefix' => $field['prefix'], ]; if ( isset( $field['field']['show_column_weight'] ) ) { $weight_field['value'] = $field['field']['show_column_weight']; } else { $weight_field['value'] = $weight_field['default_value']; } acf_render_field_wrap( $weight_field, 'div', 'label' ); } /** * @inheritdoc */ public function render_edit_settings( $field ) { // add to quick edit acf_render_field_setting( $field, [ 'label' => __('Editing','acf-quickedit-fields'), 'instructions' => '', 'type' => 'edit_setting', 'name' => 'edit', 'field' => $field, ]); } /** * @action acf/render_field/type=edit_setting */ public function render_edit_setting( $field ) { $field_object = Fields\Field::getFieldObject( $field['field'] ); $types = Fields\Field::get_types(); // parse default values $field['field'] = wp_parse_args( $field['field'], [ 'allow_quickedit' => false, 'allow_bulkedit' => false, ] ); if ( $types[ $field['field']['type'] ]['quickedit'] ) { acf_render_field_wrap( [ 'label' => __('QuickEdit','acf-quickedit-fields'), 'instructions' => '', 'type' => 'true_false', 'name' => 'allow_quickedit', 'ui' => 1, 'ui_on_text' => __('Enabled','acf-quickedit-fields'), 'ui_off_text' => __('Disabled','acf-quickedit-fields'), 'prefix' => $field['prefix'], 'value' => $field['field']['allow_quickedit'], 'wrapper' => [ 'width' => 50, ], ], 'div', 'label' ); } if ( $types[ $field['field']['type'] ]['bulkedit'] ) { acf_render_field_wrap( [ 'label' => __('Bulk Edit','acf-quickedit-fields'), 'instructions' => '', 'type' => 'true_false', 'name' => 'allow_bulkedit', 'ui' => 1, 'ui_on_text' => __('Enabled','acf-quickedit-fields'), 'ui_off_text' => __('Disabled','acf-quickedit-fields'), 'prefix' => $field['prefix'], 'value' => $field['field']['allow_bulkedit'], 'wrapper' => [ 'width' => 50, ], ], 'div', 'label' ); } } }