From 861eb932fd57a6268e7be9e024cc9ee611d4f344 Mon Sep 17 00:00:00 2001 From: Michel Weimerskirch Date: Thu, 14 Aug 2014 10:40:45 +0200 Subject: [PATCH] Fixed regression with "multicheck" fields --- helpers/cmb_Meta_Box_field.php | 4 ++-- init.php | 19 +++++++++---------- 2 files changed, 11 insertions(+), 12 deletions(-) diff --git a/helpers/cmb_Meta_Box_field.php b/helpers/cmb_Meta_Box_field.php index 1f155da..ddf4994 100644 --- a/helpers/cmb_Meta_Box_field.php +++ b/helpers/cmb_Meta_Box_field.php @@ -447,8 +447,8 @@ public function _set_field_defaults( $args ) { $args['default'] = apply_filters( 'cmb_default_filter', $args['default'], $args, $this->object_type, $this->object_type ); $args['allow'] = 'file' == $args['type'] && ! isset( $args['allow'] ) ? array( 'url', 'attachment' ) : array(); $args['save_id'] = 'file' == $args['type'] && ! ( isset( $args['save_id'] ) && ! $args['save_id'] ); - // $args['multiple'] = isset( $args['multiple'] ) ? $args['multiple'] : ( 'multicheck' == $args['type'] ? true : false ); - $args['multiple'] = isset( $args['multiple'] ) ? $args['multiple'] : false; + $args['multiple'] = isset( $args['multiple'] ) ? $args['multiple'] : ( 'multicheck' == $args['type'] ? true : false ); + // $args['multiple'] = isset( $args['multiple'] ) ? $args['multiple'] : false; $args['repeatable'] = isset( $args['repeatable'] ) && $args['repeatable'] && ! $this->repeatable_exception( $args['type'] ); $args['inline'] = isset( $args['inline'] ) && $args['inline'] || false !== stripos( $args['type'], '_inline' ); $args['on_front'] = ! ( isset( $args['on_front'] ) && ! $args['on_front'] ); diff --git a/init.php b/init.php index adfedf6..29de5bd 100644 --- a/init.php +++ b/init.php @@ -657,16 +657,15 @@ public static function save_field( $new_value, $field ) { $name = $field->id(); $old = $field->get_data(); - // if ( $field->args( 'multiple' ) && ! $field->args( 'repeatable' ) && ! $field->group ) { - // $field->remove_data(); - // if ( ! empty( $new_value ) ) { - // foreach ( $new_value as $add_new ) { - // self::$updated[] = $name; - // $field->update_data( $add_new, $name, false ); - // } - // } - // } else - if ( ! empty( $new_value ) && $new_value != $old ) { + if ( $field->args( 'multiple' ) && ! $field->args( 'repeatable' ) && ! $field->group ) { + $field->remove_data(); + if ( ! empty( $new_value ) ) { + foreach ( $new_value as $add_new ) { + self::$updated[] = $name; + $field->update_data( $add_new, false ); + } + } + } elseif ( ! empty( $new_value ) && $new_value != $old ) { self::$updated[] = $name; return $field->update_data( $new_value ); } elseif ( empty( $new_value ) ) {