Cum pot modifica șablonul de email pentru un utilizator nou

6 feb. 2015, 16:59:48
Vizualizări: 59.1K
Voturi: 11

Când adaug un client nou, emailul este trimis către noul utilizator în acest format:

From: WordPress [wordpress@siteurl.com]
Subject: [site name] Numele tău de utilizator și parola
Mesaj:
         username: user
         Password: password
         siteurl.com/wp-login.php

Acum vreau să schimb acest format astfel:

From: Numele Site-ului Meu [info@siteurl.com]
Subject: siteurl.com cont client activat
Mesaj:
       Contul tău de client a fost activat.

       Datele tale de autentificare sunt:

       Nume utilizator: email utilizator
       Parolă: password

       Mulțumim,
       abcd

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

Cum pot face acest lucru?

0
Toate răspunsurile la întrebare 3
0
21

Pentru utilizatorii din 2018 și ulterior:

Răspunsul lui David Gard încă funcționează, dar este depășit și există acum o metodă mai bună/curată de a face acest lucru (fără nevoie de plugin).

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

Exemplu de utilizare pentru emailul trimis către Administrator (puteți adăuga acest cod în functions.php al temei dumneavoastră):

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] Utilizator nou %s înregistrat.', $blogname, $user->user_login );
    $wp_new_user_notification_email['message'] = sprintf( "%s ( %s ) s-a înregistrat pe blogul dumneavoastră %s.", $user->user_login, $user->user_email, $blogname );
    return $wp_new_user_notification_email;
}
2 ian. 2018 21:30:59
0

E-mailul de notificare pentru utilizatorii noi este creat și trimis de funcția wp_new_user_notification(), care se găsește în wp-includes/pluggable.php.

Nu există un hook de filtrare în această funcție care să permită manipularea conținutului e-mailului, dar desigur puteți suprascrie orice funcție pluggable prin intermediul unui plugin.

Notă - Puteți suprascrie funcții pluggable doar din cadrul unui plugin, nu din cadrul temei.

Consultați aici pentru mai multe detalii despre funcțiile pluggable și o listă completă a acestora - http://codex.wordpress.org/Pluggable_Functions

Acest cod va crea plugin-ul care va fi folosit în locul celui din wp-includes/pluggable.php (salvați-l într-un fișier separat în wp-content/plugins/).

Nu l-am personalizat pentru dvs., dar acest cod vă va ghida în direcția corectă.

<?php
/**
 * Plugin Name: E-mail personalizat de notificare pentru utilizatori noi
 * Description: Suprascrie funcția pluggable 'wp_new_user_notification()' pentru a permite trimiterea unui e-mail personalizat
 * Author: David Gard
 * Version: 1.0
 */

if ( !function_exists('wp_new_user_notification') ) :
/**
 * Pluggable - Trimite datele de autentificare prin e-mail unui utilizator nou înregistrat
 *
 * De asemenea, se trimite o notificare de înregistrare nouă către e-mailul administratorului.
 *
 * @since 2.0.0
 *
 * @param int    $user_id        ID-ul utilizatorului.
 * @param string $plaintext_pass Opțional. Parola în text clar a utilizatorului. Valoare implicită - gol.
 */
function wp_new_user_notification($user_id, $plaintext_pass = ''){

    $user = get_userdata($user_id);

    // Opțiunea blogname este escapată cu esc_html la salvarea în baza de date în sanitize_option
    // dorim să anulăm acest lucru pentru zona de text simplu a e-mailurilor.
    $blogname = wp_specialchars_decode(get_option('blogname'), ENT_QUOTES);

    $message  = sprintf(__('Înregistrare utilizator nou pe site-ul dvs. %s:'), $blogname) . "\r\n\r\n";
    $message .= sprintf(__('Nume de utilizator: %s'), $user->user_login) . "\r\n\r\n";
    $message .= sprintf(__('E-mail: %s'), $user->user_email) . "\r\n";

    @wp_mail(get_option('admin_email'), sprintf(__('[%s] Înregistrare utilizator nou'), $blogname), $message);

    if ( empty($plaintext_pass) )
        return;

    $message  = sprintf(__('Nume de utilizator: %s'), $user->user_login) . "\r\n";
    $message .= sprintf(__('Parolă: %s'), $plaintext_pass) . "\r\n";
    $message .= wp_login_url() . "\r\n";

    wp_mail($user->user_email, sprintf(__('[%s] Numele și parola dvs. de utilizator'), $blogname), $message);

}
endif;
6 feb. 2015 18:58:27
0

Dacă vă referiți la o configurare multisite, aceasta poate fi configurată printr-un șablon stabilit în baza de date în două secțiuni:

E-mail de bun venit

și

E-mail de bun venit utilizator

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

Îl puteți personaliza după preferințele dumneavoastră.

30 aug. 2017 23:02:18