You have to explicitly add shortcode evaluation to a text field for it to work. By default it is only defined for the_content
and the_excerpt
. If you look at the source of the first one you see this line:
$content = apply_filters( 'the_content', $content );
Among the default filters is this one:
add_filter( 'the_content', 'do_shortcode', 11 ); // AFTER wpautop()
So, for shortcodes to work in your case, you will have to modify the part where the text is echoed, to apply a filter first. Then you make do_shortcode
one of the filters applied.