It’s a bit of a short answer, but actually @takayukister is right. It is working.
The front-end code will indeed display with the value and HTML having the same value, but in you email messages or databases, [your-recipient]
will render the value after the pipe.
So the correct value is used in the back end. I agree this is a bit strange but it kind of makes sense if you think about it. For one, it hides the e-mail addresses from the front-end, making sure bots can’t get their hands on the email addresses.
In most cases however, I think it would make a lot of sense to display the value after the pipe as the actual value of the drop down list. Since modifying the plugin code is bad practice, here’s a code snippet that you can add to your functions.php file:
add_filter('wpcf7_form_tag','bdwm_form_tag',10,1);
function bdwm_form_tag($scanned_tag) {
$pipes = new WPCF7_Pipes( $scanned_tag['raw_values'] );
$scanned_tag['values'] = $pipes->collect_afters();
return $scanned_tag;
}