Come posso modificare il template email per i nuovi utenti

6 feb 2015, 16:59:48
Visualizzazioni: 59.1K
Voti: 11

Quando aggiungo un nuovo cliente, l'email viene inviata al nuovo utente in questo formato:

From: WordPress [wordpress@siteurl.com]
Subject: [site name] Il tuo nome utente e password 
Message:
         username: utente
         Password: password
         siteurl.com/wp-login.php

Ora voglio modificare questo formato in questo modo:

From: Nome Mio Sito [info@siteurl.com]
Subject: siteurl.com account cliente attivato
Message:
       Il tuo account cliente è stato attivato.

       Le tue credenziali di accesso sono:

       Username: email utente
       Password: password

       Grazie,
       abcd

Ho provato questa risposta ma non funziona.

Come posso fare?

0
Tutte le risposte alla domanda 3
0
21

Per gli utenti dal 2018 in poi:

La risposta di David Gard funziona ancora ma è datata e ora esiste un modo migliore/pulito per farlo (non c'è più bisogno di un plugin).

A partire da WordPress 4.9.0 sono disponibili nuovi filtri per personalizzare le email di registrazione:

Esempio di utilizzo per l'email inviata all'Amministratore (puoi incollare questo nel file functions.php del tuo tema):

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] Nuovo utente %s registrato.', $blogname, $user->user_login );
    $wp_new_user_notification_email['message'] = sprintf( "%s ( %s ) si è registrato nel tuo blog %s.", $user->user_login, $user->user_email, $blogname );
    return $wp_new_user_notification_email;
}
2 gen 2018 21:30:59
0

L'email di notifica per il nuovo utente viene creata e inviata dalla funzione wp_new_user_notification(), che si trova in wp-includes/plugable.php

Non esiste un hook filter all'interno di questa funzione che permetta di manipolare l'output dell'email, tuttavia puoi ovviamente sovrascrivere qualsiasi funzione pluggable tramite un plugin.

Nota - Puoi sovrascrivere le funzioni pluggable solo da un plugin, non dal tuo tema.

Vedi qui per maggiori dettagli sulle funzioni pluggable e una lista completa di quelle disponibili - http://codex.wordpress.org/Pluggable_Functions

Questo codice creerà il plugin che verrà utilizzato al posto di quello in wp-includes/plugable.php (salvalo in un file separato in wp-content/plugins/).

Non l'ho personalizzato per te, ma questo dovrebbe darti una buona base di partenza.

<?php
/**
 * Plugin Name: Email personalizzata per notifica nuovo utente
 * Description: Sovrascrive la funzione pluggable 'wp_new_user_notification()' per permettere l'invio di un'email personalizzata
 * Author: David Gard
 * Version: 1.0
 */

if ( !function_exists('wp_new_user_notification') ) :
/**
 * Pluggable - Invia le credenziali di accesso a un utente appena registrato
 *
 * Viene inviata anche una notifica di registrazione nuova all'email dell'amministratore.
 *
 * @since 2.0.0
 *
 * @param int    $user_id        ID dell'utente.
 * @param string $plaintext_pass Opzionale. La password in chiaro dell'utente. Default vuoto.
 */
function wp_new_user_notification($user_id, $plaintext_pass = ''){

    $user = get_userdata($user_id);

    // L'opzione blogname viene escapata con esc_html quando viene salvata nel database in sanitize_option
    // vogliamo invertire questo processo per il testo semplice delle email.
    $blogname = wp_specialchars_decode(get_option('blogname'), ENT_QUOTES);

    $message  = sprintf(__('Nuova registrazione utente sul tuo sito %s:'), $blogname) . "\r\n\r\n";
    $message .= sprintf(__('Username: %s'), $user->user_login) . "\r\n\r\n";
    $message .= sprintf(__('Email: %s'), $user->user_email) . "\r\n";

    @wp_mail(get_option('admin_email'), sprintf(__('[%s] Nuova Registrazione Utente'), $blogname), $message);

    if ( empty($plaintext_pass) )
        return;

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

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

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

Se ti riferisci a una configurazione multisito, questa è configurabile attraverso un template che viene impostato nel database sotto 2 sezioni:

Email di Benvenuto

e

Email di Benvenuto Utente

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

Puoi personalizzarla come preferisci.

30 ago 2017 23:02:18