prevent users from changing their email address

The only correct solution (Other answers I see are faulty, vulnerable or incomplete. All of them can be bypassed.) This plugin does correctly: class DisableMailChange { public function __construct() { //prevent email change add_action( ‘personal_options_update’, [$this, ‘disable_mail_change_BACKEND’], 5 ); add_action( ‘show_user_profile’, [$this, ‘disable_mail_change_HTML’] ); } public function disable_mail_change_BACKEND($user_id) { if ( !current_user_can( ‘manage_options’ ) ) … Read more

“Reply-to Address” Email

If and when you are using wp_mail(), then you can just set Reply-To for the $headers parameter. Exemplary usage below: $to = “[email protected]”; $subject = “Using Reply-To with wp_mail”; $message = “This is an example for using Reply-To with wp_mail.”; $headers[] = ‘Reply-To: Name Name <[email protected]>’; $attachments = array(); wp_mail( $to, $subject, $message, $headers, $attachments … Read more

User Without Email?

It’s possible, just no so easily via the Users page without some hackery. The WordPress API will let you insert users without email addresses, so a little custom plugin to accept a login name and password, and a call to wp_insert_user or wp_update_user should work for you. Unfortunately I don’t have time to code it … Read more

Missing URL in password reset email

The problem is the < and > which surround the reset URL in wp-login.php. You can remove them using retrieve_password_message in your theme functions.php file like below: add_filter(“retrieve_password_message”, “mapp_custom_password_reset”, 99, 4); function mapp_custom_password_reset($message, $key, $user_login, $user_data ) { $message = “Someone has requested a password reset for the following account: ” . sprintf(__(‘%s’), $user_data->user_email) . … Read more

How do you update user_email on the front end in WP 3.3?

You need to use wp_update_user() for the email, as it is not user-meta but core user data. The code should look something like this: $args = array( ‘ID’ => $current_user->id, ‘user_email’ => esc_attr( $_POST[‘user_email’] ) ); wp_update_user( $args ); Note: that’s untested, but it should work out of the box.

How do I customise the new user welcome email

SB Welcome Email Editor works by replacing wp_new_user_notification() with an own version. The original version can be found in wp-includes/pluggable.php, the plugin uses an elaborate replacement with all kinds of options. You can do this to: create a new plugin (just a PHP file in wp-content/plugins/), and define wp_new_user_notification($user_id, $plaintext_pass=””) there. This will then be … Read more

Do something after sending email

Using the PHPMailer class with an action callback: I did some digging into the PHPMailer class and found that it supports a custom action. Here’s how the callback is activated with the doCallback() method in the class. There’s also a PHPMailer test on GitHub using this feature via the callbackAction() callback. We can set it … Read more

Alert Email when any Post or Page is Changed

There’s a few plugins that handle email notifications, but they all seem to act like a subscription service for (all) WordPress users. To notify just you when a post or page is published: /** * Send an email notification to the administrator when a post is published. * * @param string $new_status * @param string … Read more

Disable user registration password email

You can intercept this email before it is sent using the phpmailer_init hook. By default, this hook fires before any email is sent. In the function below, $phpmailer will be an instance of PHPMailer, and you can use its methods to remove the default recipient and manipulate the email before it is sent. add_action(‘phpmailer_init’, ‘wse199274_intercept_registration_email’); … Read more