No data available."; } // If $cache true then return cached data. if ( $cache ) { self::$options = Cache::get( $cache_key ); if ( self::$options ) { if ( $selected !== '' && is_string( $selected ) ) { $selected = esc_attr( $selected ); self::$options = str_replace( "value=\"$selected\"", "value=\"$selected\" selected", self::$options ); } elseif ( $selected !== '' && is_array( $selected ) ) { foreach ( $selected as $selectedValue ) { $selectedValue = esc_attr( $selectedValue ); self::$options = str_replace( "value=\"$selectedValue\"", "value=\"$selectedValue\" selected", self::$options ); } } return self::$options; } } if ( count($data) !== count($data, COUNT_RECURSIVE) ) { foreach ( $data as $value ) { if ( isset( $value['optionGroup'] ) ) { self::$options .= ""; } if ( isset( $value['options'] ) && ! empty( $value['options'] ) ) { foreach ( $value['options'] as $optionKey => $option ) { self::$options .= sprintf( '', $optionKey, $option ); } self::$options .= isset( $value['optionGroup'] ) ? '' : ''; } } } else { foreach ( $data as $optionKey => $option ) { self::$options .= sprintf( '', $optionKey, $option ); } } // If $cache true then set cache. if ( $cache ) { Cache::set( $cache_key, self::$options ); } if ( $selected !== '' && is_string( $selected ) ) { //$selected = esc_attr( $selected ); self::$options = str_replace( "value=\"$selected\"", "value=\"$selected\" selected", self::$options ); } elseif ( $selected !== '' && is_array( $selected ) ) { foreach ( $selected as $selectedValue ) { $selectedValue = esc_attr( $selectedValue ); self::$options = str_replace( "value=\"$selectedValue\"", "value=\"$selectedValue\" selected", self::$options ); } } return self::$options; } }