diff --git a/includes/core/class-fields.php b/includes/core/class-fields.php index 9920e7fb..8b29cf19 100644 --- a/includes/core/class-fields.php +++ b/includes/core/class-fields.php @@ -3690,11 +3690,11 @@ if ( ! class_exists( 'um\core\Fields' ) ) { //fix when customers change options for role (radio/dropdown) fields $intersected_options = array(); - foreach ( $options as $option ) { - if ( false !== $search_key = array_search( $option, $roles ) ) { - $intersected_options[ $search_key ] = $option; - } else { - $intersected_options[] = $option; + foreach ( $options as $key => $title ) { + if ( false !== $search_key = array_search( $title, $roles ) ) { + $intersected_options[ $search_key ] = $title; + } elseif ( isset( $roles[ $key ] ) ) { + $intersected_options[ $key ] = $title; } } diff --git a/includes/core/class-form.php b/includes/core/class-form.php index 4e1c39ba..632756ca 100644 --- a/includes/core/class-form.php +++ b/includes/core/class-form.php @@ -587,7 +587,6 @@ if ( ! class_exists( 'um\core\Form' ) ) { function custom_field_roles( $custom_fields ) { $fields = maybe_unserialize( $custom_fields ); - if ( ! is_array( $fields ) ) { return false; } @@ -606,22 +605,18 @@ if ( ! class_exists( 'um\core\Form' ) ) { foreach ( $fields as $field_key => $field_settings ) { - if ( strstr( $field_key , 'role_' ) ) { - if ( is_array( $field_settings['options'] ) ) { - //$option_pairs = apply_filters( 'um_select_options_pair', null, $field_settings ); - - $intersected_options = array(); - foreach ( $field_settings['options'] as $option ) { - if ( false !== $search_key = array_search( $option, $roles ) ) { - $intersected_options[ $search_key ] = $option; - } else { - $intersected_options[] = $option; - } + if ( strstr( $field_key, 'role_' ) && is_array( $field_settings['options'] ) ) { + $intersected_options = array(); + foreach ( $field_settings['options'] as $key => $title ) { + if ( false !== $search_key = array_search( $title, $roles ) ) { + $intersected_options[ $search_key ] = $title; + } elseif ( isset( $roles[ $key ] ) ) { + $intersected_options[ $key ] = $title; } - - //return ! empty( $option_pairs ) ? array_keys( $field_settings['options'] ) : array_values( $field_settings['options'] ); - return array_keys( $intersected_options ); } + + // getting roles only from the first role fields + return array_keys( $intersected_options ); } } diff --git a/includes/core/class-shortcodes.php b/includes/core/class-shortcodes.php index cf373e4b..c9fcd0fe 100644 --- a/includes/core/class-shortcodes.php +++ b/includes/core/class-shortcodes.php @@ -920,9 +920,9 @@ if ( ! class_exists( 'um\core\Shortcodes' ) ) { * * @return mixed|string */ - function get_template_name($file) { - $file = basename($file); - $file = preg_replace('/\\.[^.\\s]{3,4}$/', '', $file); + function get_template_name( $file ) { + $file = basename( $file ); + $file = preg_replace( '/\\.[^.\\s]{3,4}$/', '', $file ); return $file; } @@ -934,32 +934,32 @@ if ( ! class_exists( 'um\core\Shortcodes' ) ) { * * @return mixed */ - function get_templates($excluded = null) { + function get_templates( $excluded = null ) { - if ($excluded) { - $array[$excluded] = __('Default Template', 'ultimate-member'); + if ( $excluded ) { + $array[ $excluded ] = __( 'Default Template', 'ultimate-member' ); } - $paths[] = glob(um_path . 'templates/' . '*.php'); + $paths[] = glob( um_path . 'templates/' . '*.php' ); - if (file_exists(get_stylesheet_directory() . '/ultimate-member/templates/')) { - $paths[] = glob(get_stylesheet_directory() . '/ultimate-member/templates/' . '*.php'); + if ( file_exists( get_stylesheet_directory() . '/ultimate-member/templates/' ) ) { + $paths[] = glob( get_stylesheet_directory() . '/ultimate-member/templates/' . '*.php' ); } - if( isset( $paths ) && ! empty( $paths ) ){ + if ( isset( $paths ) && ! empty( $paths ) ) { - foreach ($paths as $k => $files) { + foreach ( $paths as $k => $files ) { - if( isset( $files ) && ! empty( $files ) ){ + if ( isset( $files ) && ! empty( $files ) ) { - foreach ($files as $file) { + foreach ( $files as $file ) { $clean_filename = $this->get_template_name( $file ); if ( 0 === strpos( $clean_filename, $excluded ) ) { $source = file_get_contents( $file ); - $tokens = token_get_all( $source ); + $tokens = @\token_get_all( $source ); $comment = array( T_COMMENT, // All comments since PHP5 T_DOC_COMMENT, // PHPDoc comments @@ -967,8 +967,8 @@ if ( ! class_exists( 'um\core\Shortcodes' ) ) { foreach ( $tokens as $token ) { if ( in_array( $token[0], $comment ) && strstr( $token[1], '/* Template:' ) && $clean_filename != $excluded ) { $txt = $token[1]; - $txt = str_replace('/* Template: ', '', $txt ); - $txt = str_replace(' */', '', $txt ); + $txt = str_replace( '/* Template: ', '', $txt ); + $txt = str_replace( ' */', '', $txt ); $array[ $clean_filename ] = $txt; } } @@ -984,7 +984,6 @@ if ( ! class_exists( 'um\core\Shortcodes' ) ) { } return $array; - }