$value ) { if ( qtrad_value_has_markers( $value ) ) { $names[] = (string) $name; } } $names = array_merge( $names, $stored ); } else { $options = array_merge( $options, array_fill_keys( $stored, '' ) ); foreach ( qtrad_option_patterns() as $pattern ) { if ( false === strpos( $pattern, '%' ) ) { $names[] = $pattern; continue; } $regex = '/^' . str_replace( array( '%', '_' ), array( '.*', '.' ), preg_quote( $pattern, '/' ) ) . '$/D'; foreach ( array_keys( $options ) as $name ) { if ( preg_match( $regex, (string) $name ) ) { $names[] = (string) $name; } } } } return array_values( array_unique( array_filter( $names, function ( $name ) { return ! qtrad_option_is_raw( $name ); } ) ) ); } function qtrad_value_has_markers( $value ) { if ( ! is_string( $value ) ) { $value = maybe_serialize( $value ); } return is_string( $value ) && ( false !== strpos( $value, '[:' ) || false !== strpos( $value, '