Recently I tried to use contact form 7 to display a contact form which contains a special email tag (e.g. [_post_title] ) in the subject field with do_shortcode().
It simply didn’t work. I tried this fix but without success. The special tag wasn’t resolved, either .
Maybe there are some limitations in the way, WordPress has implemented do_shortcode(). Some information about that is here
Nevertheless, I had to solve my problem and this is my hack:
// this goes inside the loop $my_post_title=get_the_title( get_the_ID()); ob_start(); echo do_shortcode('[contact-form-7 id="2070" title="Product inquiery"]'); $unresolved=ob_get_contents(); ob_end_clean(); echo preg_replace('/_post_title/',$my_post_title,$unresolved);
As you can see, I had to give up the idea of using the special tag [_post_title] inside contact form 7 and I’m using the string „_post_title“ in my form, instead.
Then php output buffer and preg_replace will do the work for me.