Cum pot modifica șablonul de email pentru un utilizator nou
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?
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:
- wp_new_user_notification_email - personalizează emailul trimis către Utilizator
- wp_new_user_notification_email_admin - personalizează emailul trimis către Administrator
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;
}

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;

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ă.
