Creazione di e-mail di commento personalizzate Comprensione dell'API

Quando si tratta di lavorare con e-mail in WordPress, la maggior parte degli utenti ha familiarità con le funzioni e / o le notifiche di base.

In particolare, siamo abituati a vedere le email per:

  • Registrazioni degli utenti
  • Promemoria password
  • Notifiche di commento
  • … e così via.

Quando si tratta di creare temi più avanzati - o anche applicazioni - non è raro esternalizzare la funzionalità di posta elettronica al fine di fornire un'esperienza migliore ai nostri utenti.

Questo per dire che se lo fossimo andando per inviarli via email, vorremmo rendere l'e-mail il più bello possibile. Questo di solito richiede che includiamo il marchio coerente, un layout più flessibile e un numero maggiore di elementi in stile.

Per certe e-mail, questo ha un significato totale soprattutto quando si tratta di ricevere messaggi, newsletter e cose simili.

Ma se desideri fornire un'esperienza coerente per tutto il tuo sito dal modo in cui appare, ad esempio, in che modo vengono visualizzate le email delle notifiche dei commenti, puoi farlo con l'API nativa di WordPress.

Quindi, in questa serie in due parti, daremo un'occhiata all'API per personalizzare la nostra moderazione dei commenti e le e-mail di notifica dei commenti.

Nella prima parte della serie, esamineremo la funzione responsabile dell'invio dell'e-mail e dei ganci forniti. Esamineremo le funzionalità del gancio e quindi esamineremo come funziona l'intero processo.

Dopodiché, termineremo la serie dando un'occhiata a un esempio pratico di come possiamo personalizzare completamente l'email di notifica dei commenti in base alle nostre esigenze.


La funzione e i ganci

La funzione che è responsabile dell'invio di e-mail di notifica dei commenti è la funzione wp_notify_postauthor.

Al momento di scrivere questo articolo, la documentazione per questa funzione è un po 'debole. Sebbene descriva correttamente ciò che la funzione accetta e ciò che restituisce, la sua descrizione è un po 'oscura.

Si legge:

Questa funzione può essere sostituita tramite plugin. Se i plugin non ridefiniscono queste funzioni, verrà utilizzata al suo posto.

Sanifica un URL per l'uso in un reindirizzamento.

Ora, i due takeaway più importanti da questa parte della documentazione sono i seguenti:

  • "La funzione può essere sostituita tramite plugin."
  • "Sanitizza un URL per l'uso in un reindirizzamento".

Forse la parte più criptica della documentazione è che la funzione può essere sostituita all'ingrosso tramite plugin; tuttavia, la funzione offre anche diversi filtri a cui è possibile collegarsi per manipolare i dati.

In effetti, questo porta a una strategia importante quando si tratta di sviluppare progetti open source.

Una strategia per lo sviluppo open source

Uno degli aspetti più potenti dello sviluppo open source è la sua stessa natura: è open source.

Caso in questione: quando la documentazione ti lascia con qualcosa a desiderare, la prossima cosa migliore è aprire il codice sorgente e rivedere esattamente cosa sta succedendo.

Per fare questo, si tratta semplicemente di localizzare la funzione nell'applicazione principale. Puoi farlo dal tuo IDE o sfogliando il WordPress Trac.

Indipendentemente da ciò, per gli scopi di questo post, la funzione in questione si trova in wp-includes / pluggable.php.

Una volta individuato, possiamo quindi iniziare a individuare quali aspetti del plug-in sono sovrascrivibili dai plug-in.


Le sue capacità

Nota che parte di ciò che rende WordPress così potente è il suo sistema di aggancio. Ricorda da un post precedente che esistono due tipi di hook: azioni e filtri.

  • Le azioni sono eventi che si attivano nel ciclo di vita della pagina di WordPress quando si verificano determinati eventi.
  • I filtri sono funzioni che sono principalmente responsabili dell'intercettazione, della gestione e della restituzione dei dati prima di renderli nel browser.

Poiché desideriamo modificare il contenuto e / o lo stile di un'e-mail, cerchiamo funzionalità specifiche per il rendering di contenuti di un'email. Pertanto, dobbiamo cercare un filtro.

E poiché stiamo cercando funzionalità specifiche per il rendering di contenuti per un'email, dobbiamo cercare un filtro.

Quindi, con tutto ciò detto, stiamo cercando una chiamata (o chiamate) a apply_filters e questa funzione fornisce tre:

  • $ notify_message = apply_filters ('comment_notification_text', $ notify_message, $ comment_id);
  • $ subject = apply_filters ('comment_notification_subject', $ subject, $ comment_id);
  • $ message_headers = apply_filters ('comment_notification_headers', $ message_headers, $ comment_id);

Ma a che serve localizzare i filtri se in realtà non sappiamo come usarli?


Come funziona

Nel rivedere il codice sopra, vedrai che WordPress sta filtrando i dati attraverso tre funzioni specifiche ognuna delle quali sembra relativamente cleer, giusto?

  • comment_notification_text è responsabile della gestione del contenuto effettivo dell'e-mail
  • comment_notification_subject gestisce la riga dell'oggetto dell'e-mail
  • comment_notification_headers gestire il modo in cui viene eseguita la posta elettronica (in genere è qui che viene impostato il testo normale, ad esempio HTML).

Abbastanza facile, giusto? Certo, questo è solo per metà.

Oltre a capire cosa fa ogni funzione, non vale molto la pena finché non sappiamo come utilizzare effettivamente i filtri.


Conclusione

Nel prossimo articolo, costruiremo il nostro plug-in che fornirà e-mail di notifica personalizzate.

Nello specifico, mireremo a fornire un'esperienza più coerente con il resto del sito, personalizzeremo il contenuto dell'e-mail e esamineremo come e perché dovremmo gestire le intestazioni inviate con ogni email.

Useremo anche l'ultimo tema - Twentytwelve - che viene fornito con WordPress 3.5. Quindi, nel frattempo, vai avanti e ottieni la configurazione dell'ambiente di sviluppo in modo da essere pronto per andare con il prossimo articolo.


Una nota sulla documentazione

Una delle cose più belle sullo sviluppo dell'open source è la capacità di chiunque di contribuire al progetto. Quando noi, come sviluppatori, pensiamo di contribuire a un progetto, spesso pensiamo di contribuire al suo codice base.

Ma un progetto open source è molto di più: include documentazione, risorse immagine, varie dipendenze e così via.

Al momento della stesura iniziale di questo post, la documentazione di wp_notify_postauthor aveva bisogno di qualche miglioramento. Come tale, ho contribuito ad aggiornare il Codex durante la stesura di questo post.

Un invito all'azione

Se sei coinvolto nella comunità di WordPress a qualsiasi titolo e sei in grado di contribuire in qualche modo - anche se sta aggiornando la documentazione - allora ti invito vivamente a farlo perché aiuta molte migliaia di persone in tutto il mondo che usano WordPress.


risorse

  • wp_notify_postauthor
  • WordPress Trac
  • Comprensione di azioni e filtri
  • WordPress 3.5 RC3
  • Twentytwelve