The get_comment_author_email WordPress PHP filter allows you to modify the comment author’s email address before it’s displayed or used in other functions.
Usage
add_filter('get_comment_author_email', 'your_function_name', 10, 3); function your_function_name($comment_author_email, $comment_id, $comment) { // your custom code here return $comment_author_email; }
Parameters
$comment_author_email
(string) – The comment author’s email address.$comment_id
(string) – The comment ID as a numeric string.$comment
(WP_Comment) – The comment object.
More information
See WordPress Developer Resources: get_comment_author_email
Examples
Anonymize Email Addresses
To anonymize email addresses before displaying them, you can use the get_comment_author_email
filter.
add_filter('get_comment_author_email', 'anonymize_email', 10, 3); function anonymize_email($comment_author_email, $comment_id, $comment) { // Replace the email address with '[email protected]' $comment_author_email = '[email protected]'; return $comment_author_email; }
Append Text to Email Addresses
To append a custom text to email addresses before displaying them, you can use the get_comment_author_email
filter.
add_filter('get_comment_author_email', 'append_text_to_email', 10, 3); function append_text_to_email($comment_author_email, $comment_id, $comment) { // Append '-example' to the email address $comment_author_email .= '-example'; return $comment_author_email; }
Remove Domain from Email Addresses
To remove the domain part from email addresses, you can use the get_comment_author_email
filter.
add_filter('get_comment_author_email', 'remove_domain_from_email', 10, 3); function remove_domain_from_email($comment_author_email, $comment_id, $comment) { // Remove the domain part from the email address $comment_author_email = strstr($comment_author_email, '@', true); return $comment_author_email; }
Change Email Domain
To change the email domain for all comment authors, you can use the get_comment_author_email
filter.
add_filter('get_comment_author_email', 'change_email_domain', 10, 3); function change_email_domain($comment_author_email, $comment_id, $comment) { // Change the domain to 'example.com' $comment_author_email = preg_replace('/@[^@]+(\.[^@]+)$/', '@example.com', $comment_author_email); return $comment_author_email; }