$regexMatchParameter = '([^/]+)'; is very useful
/**
* Add User key parameter to the Query
*
* @hooked 'init'
*/
function addUserOptLinksEndpoint()
{
$regexMatchParameter = '([^/]+)';
add_rewrite_endpoint('endpoint', EP_ALL);
add_rewrite_rule('endpoint/' . $regexMatchParameter . '/?', 'index.php?e=$matches[1]', 'top');
add_rewrite_tag('%e%', $regexMatchParameter);
add_rewrite_tag('%campaign%', $regexMatchParameter);
add_rewrite_tag('%opt_out%', $regexMatchParameter);
}
add_action('init', 'addUserOptLinksEndpoint');function parseAddUserOptLinksEndpoint()
{
/**
* Add sanitizer on the Fields
*/
$user_email = sanitize_email( urldecode( get_query_var('e') ) );
$user_campaign = sanitize_text_field( get_query_var('campaign') );
$user_opt_out = sanitize_text_field( get_query_var('opt_out') );
/**
* Check the fields are empty or not
*/
if( ( empty($user_email) || empty($user_campaign) || empty($user_opt_out) ) ) {
return;
}
/**
* check the email id is valid or not.
*/
if( is_wp_error( $user ) && $checkCampaign != $user_campaign && $checkOptOutValue != $user_opt_out ){
return;
}
}
add_action('template_redirect', 'parseAddUserOptLinksEndpoint');