diff --git a/includes/admin/core/class-admin-builder.php b/includes/admin/core/class-admin-builder.php index cfad932d..243b4c33 100644 --- a/includes/admin/core/class-admin-builder.php +++ b/includes/admin/core/class-admin-builder.php @@ -1014,7 +1014,7 @@ if ( ! class_exists( 'um\admin\core\Admin_Builder' ) ) { field_input( $opt ); + $metabox->field_input( $opt, $arg2 ); } } ?> @@ -1023,7 +1023,7 @@ if ( ! class_exists( 'um\admin\core\Admin_Builder' ) ) { field_input( $opt ); + $metabox->field_input( $opt, $arg2 ); } } ?> @@ -1032,7 +1032,7 @@ if ( ! class_exists( 'um\admin\core\Admin_Builder' ) ) { field_input( $opt ); + $metabox->field_input( $opt, $arg2 ); } } ?> @@ -1040,7 +1040,7 @@ if ( ! class_exists( 'um\admin\core\Admin_Builder' ) ) { field_input( $opt ); + $metabox->field_input( $opt, $arg2 ); } } diff --git a/includes/admin/core/class-admin-metabox.php b/includes/admin/core/class-admin-metabox.php index 948ebd5d..8605036b 100644 --- a/includes/admin/core/class-admin-metabox.php +++ b/includes/admin/core/class-admin-metabox.php @@ -1357,6 +1357,10 @@ if ( ! class_exists( 'um\admin\core\Admin_Metabox' ) ) { $this->edit_mode_value = isset( $this->edit_array[ $real_attr ] ) ? $this->edit_array[ $real_attr ] : null; } $form_data = UM()->query()->post_data( $form_id ); + if ( empty( $form_data['mode'] ) && ! empty( $_POST['form_mode'] ) ) { + // Case when we add new form with no form mode in postmeta. Then get form mode from AJAX request. + $form_data['mode'] = sanitize_key( $_POST['form_mode'] ); + } switch ( $attribute ) { default: @@ -1490,7 +1494,7 @@ if ( ! class_exists( 'um\admin\core\Admin_Metabox' ) ) { break; case '_validate': - if ( 'login' === $form_data['mode'] && in_array( $field_args['metakey'], array( 'username', 'user_login', 'user_email' ) ) ) { + if ( array_key_exists( 'mode', $form_data ) && 'login' === $form_data['mode'] && in_array( $field_args['metakey'], array( 'username', 'user_login', 'user_email' ), true ) ) { return; } ?> diff --git a/includes/core/class-query.php b/includes/core/class-query.php index 2a4fbe49..0885cc6c 100644 --- a/includes/core/class-query.php +++ b/includes/core/class-query.php @@ -412,43 +412,40 @@ if ( ! class_exists( 'um\core\Query' ) ) { return false; } - /** * Get post data * - * @param $post_id + * @param int $post_id * - * @return mixed + * @return array */ - function post_data( $post_id ) { + public function post_data( $post_id ) { $array['form_id'] = $post_id; - $mode = $this->get_attr('mode', $post_id); - $meta = get_post_custom( $post_id ); - foreach ($meta as $k => $v){ - if ( strstr($k, '_um_'.$mode.'_' ) ) { - $k = str_replace('_um_'.$mode.'_', '', $k); - $array[$k] = $v[0]; - } elseif ($k == '_um_mode'){ - $k = str_replace('_um_', '', $k); - $array[$k] = $v[0]; - } elseif ( strstr($k, '_um_') ) { - $k = str_replace('_um_', '', $k); - $array[$k] = $v[0]; + $mode = $this->get_attr( 'mode', $post_id ); + $meta = get_post_custom( $post_id ); + foreach ( $meta as $k => $v ) { + if ( strstr( $k, '_um_' . $mode . '_' ) ) { + $k = str_replace( '_um_' . $mode . '_', '', $k ); + $array[ $k ] = $v[0]; + } elseif ( '_um_mode' === $k ) { + $k = str_replace( '_um_', '', $k ); + $array[ $k ] = $v[0]; + } elseif ( strstr( $k, '_um_' ) ) { + $k = str_replace( '_um_', '', $k ); + $array[ $k ] = $v[0]; } - } - foreach( $array as $k => $v ) { - if ( strstr( $k, 'login_') || strstr( $k, 'register_' ) || strstr( $k, 'profile_' ) ){ - if ( $mode != 'directory' ) { - unset($array[$k]); + foreach ( $array as $k => $v ) { + if ( strstr( $k, 'login_' ) || strstr( $k, 'register_' ) || strstr( $k, 'profile_' ) ) { + if ( 'directory' !== $mode ) { + unset( $array[ $k ] ); } } } return $array; } - /** * Capture selected value *