Thank you for the direction! I was able to create a smart tag that allows adding email from http $_POST.
NOTE: It also supports query var if you are already linking your form page using query var and email (you should not!).
Here is the code if anyone interested!
/**
* Register the Smart Tag so it will be available to select in the form builder.
*
* @link https://wpforms.com/developers/how-to-create-a-custom-smart-tag/
*
*/
function aud_http_request_email( $tags ) {
// Key is the tag, item is the tag name.
$tags['http_request_email'] = '$_REQUEST Email';
return $tags;
}
add_filter( 'wpforms_smart_tags', 'aud_http_request_email' );
/**
* Process the Smart Tag.
*
* @link https://wpforms.com/developers/how-to-create-a-custom-smart-tag/
*
*/
function aud_http_request_email_smart_tag_process( $content, $tag ) {
// Only run if it is our desired tag.
if ( 'http_request_email' === $tag ) {
if( isset( $_REQUEST['email'] ) && is_email( $_REQUEST['email'] ) ){
// Replace the tag email
return sanitize_email( $_REQUEST['email'] );
}
// replace tag with empty string
return '';
}
return $content;
}
add_filter( 'wpforms_smart_tag_process', 'aud_http_request_email_smart_tag_process', 10, 2 );
# How to use this code?
You can use https://www.ads-software.com/plugins/code-snippets/ plugin to add this code into your site. Or you can paste the php into your themes functions.php file.