Cum pot schimba șablonul de e-mail pentru noul utilizator (WordPress, Șabloane, E-Mail)

deemi-D-nadeem a intrebat.

Când adaug un nou client, e-mailul merge la noul utilizator în acest format:

From: WordPress [[email protected]]
Subject: [site name] Your user name and password
Message:
         username: user
         Password: password
         siteurl.com/wp-login.php

Acum vreau să schimb acest format astfel:

From: My Site Name [[email protected]]
Subject: siteurl.com customer account activated
Message:
       Your customer account has been activated.

       Your Login credentials are:

       Username: user email
       Password: password

       Thanks,
       abcd

Am încercat acest răspuns, dar nu funcționează.

Cum pot să fac acest lucru?

3 răspunsuri
Edu Wass

Pentru utilizatorii din 2018 și mai departe:

Răspunsul lui David Gard încă funcționează, dar este vechi și există o nouă modalitate mai bună/mai curată de a face acest lucru (nu mai este nevoie de un plugin).

Începând cu WordPress 4.9.0 există filtre noi pe care le puteți utiliza pentru a personaliza e-mailurile de înregistrare:

Exemplu de utilizare privind emailul trimis către Admin (puteți lipi acest lucru în directorul temei dvs. functions.php ):

add_filter( 'wp_new_user_notification_email_admin', 'custom_wp_new_user_notification_email', 10, 3 );

function custom_wp_new_user_notification_email( $wp_new_user_notification_email, $user, $blogname ) {
    $wp_new_user_notification_email['subject'] = sprintf( '[%s] New user %s registered.', $blogname, $user->user_login );
    $wp_new_user_notification_email['message'] = sprintf( "%s ( %s ) has registerd to your blog %s.", $user->user_login, $user->user_email, $blogname );
    return $wp_new_user_notification_email;
}

David Gard

Emailul de notificare a unui nou utilizator este creat și trimis de funcția wp_new_user_notification(), care se găsește în wp-includes/plugable.php

Nu există niciun cârlig de filtrare în cadrul acestei funcții care să vă permită să manipulați ieșirea e-mailului, însă, desigur, puteți suprascrie orice funcție plugabilă prin intermediul unui plugin.

Notă – Puteți suprascrie funcțiile pluggable doar din cadrul unui plugin, nu și din cadrul temei dumneavoastră.

Consultați aici pentru mai multe detalii despre funcțiile plugabile și o listă completă a celor disponibile – http://codex.wordpress.org/Pluggable_Functions

Acest cod va crea pluginul care va fi utilizat în locul celui din wp-includes/plugable.php (salvați-l în propriul său fișier în wp-content/plugins/).

Nu l-am personalizat pentru tine, dar acest lucru ar trebui să te pună pe drumul tău.

<?php
/**
 * Plugin Name: Custom new user notification email
 * Description: Overwrites the pluggable 'wp_new_user_notification()' plugin to allow the sending of a custom email
 * Author: David Gard
 * Version: 1.0
 */

if ( !function_exists('wp_new_user_notification') ) :
/**
 * Pluggable - Email login credentials to a newly-registered user
 *
 * A new user registration notification is also sent to admin email.
 *
 * @since 2.0.0
 *
 * @param int    $user_id        User ID.
 * @param string $plaintext_pass Optional. The user's plaintext password. Default empty.
 */
function wp_new_user_notification($user_id, $plaintext_pass = ''){

    $user = get_userdata($user_id);

    // The blogname option is escaped with esc_html on the way into the database in sanitize_option
    // we want to reverse this for the plain text arena of emails.
    $blogname = wp_specialchars_decode(get_option('blogname'), ENT_QUOTES);

    $message  = sprintf(__('New user registration on your site %s:'), $blogname) . "r
r
";
    $message .= sprintf(__('Username: %s'), $user->user_login) . "r
r
";
    $message .= sprintf(__('E-mail: %s'), $user->user_email) . "r
";

    @wp_mail(get_option('admin_email'), sprintf(__('[%s] New User Registration'), $blogname), $message);

    if ( empty($plaintext_pass) )
        return;

    $message  = sprintf(__('Username: %s'), $user->user_login) . "r
";
    $message .= sprintf(__('Password: %s'), $plaintext_pass) . "r
";
    $message .= wp_login_url() . "r
";

    wp_mail($user->user_email, sprintf(__('[%s] Your username and password'), $blogname), $message);

}
endif;

Richard Dinh

Dacă vă referiți la o configurație multisite, acest lucru este configurabil printr-un șablon care este configurat în baza de date sub 2 secțiuni:

Email de bun venit

și

Email de bun venit pentru utilizator

http://yoursite/wp-admin/network/settings.php

Îl puteți personaliza după bunul dumneavoastră plac.