Creazione di una pagina di benvenuto per il tuo prodotto WordPress codice parte 1

Nei primi due articoli di questa serie, ho scritto su quali sono le pagine di benvenuto e come stanno aiutando i prodotti a migliorare l'esperienza dell'utente collegando i punti, dopo di che ho scritto sull'API WordPress Transients che intendo utilizzare durante la creazione della pagina di benvenuto.

Codificare una pagina di benvenuto per il tuo plugin WordPress può essere un processo complicato. L'intero concetto ruota attorno al reindirizzamento degli utenti ad una particolare pagina impostando i transienti e infine cancellandoli. Iniziamo a costruire la pagina di benvenuto.

Pagina di benvenuto di WP Boilerplate

Ho intenzione di creare una pagina di benvenuto per WordPress sotto forma di un plugin che può essere utilizzato all'interno del tuo prodotto WordPress. La forma finale di questo plugin è ospitata su GitHub all'indirizzo WP-Welcome-Page-Boilerplate-For-TutsPlus.

A questo punto, presumo che tu abbia la seguente configurazione:

  • una macchina locale o un server web
  • una dashboard demo del sito Web di WordPress

Architettura plugin

Creerò un semplice plug-in che visualizza una pagina di benvenuto quando un utente installa e attiva il plug-in. Discutiamo l'architettura dei plugin:

  • WP-Welcome-Page-Boilerplate: Cartella che contiene il nostro plugin.
  • WP-Welcome-Page-Boilerplate /benvenuto: Cartella per la pagina di benvenuto relativa alle cose.
  • WP-Welcome-Page-Boilerplate / welcome / img: Cartella per immagini.
  • wp-welcome-page-boilerplate.php: Il file del plugin principale nella root. Questo file è responsabile della definizione delle costanti globali e richiede il file di inizializzazione, ad esempio welcome-init.php.
  • welcome-init.php: Il file di inizializzazione che è responsabile di tre cose: aggiungere un transitorio quando il plugin viene attivato, cancellarlo quando il plugin viene disattivato e infine aggiungere il file logico, cioè welcome-logic.php.
  • welcome-logic.php: Il file logico responsabile del reindirizzamento sicuro della pagina di benvenuto, creazione del sottomenu della pagina di benvenuto e aggiunta del file di visualizzazione della pagina di benvenuto, ad esempio welcome-view.php.
  • welcome-view.php: Il file di visualizzazione che è responsabile della visualizzazione della pagina di benvenuto ed è costruito con PHP e HTML.
  • Ci sono cartelle opzionali per immagini e CSS, e sono nominati in base al loro scopo.

È possibile visualizzare il seguente screenshot per verificare l'architettura. 

Plugin Flusso di lavoro

Il plugin funziona nel modo seguente:

  • Aggiunge un transitorio all'attivazione del plugin.
  • Elimina un transitorio alla disattivazione del plug-in.
  • Reindirizzamento sicuro alla pagina di benvenuto.

File base plugin standard

Cominciamo la nostra discussione con il contenuto del file di base, che è wp-welcome-page-boilerplate.php. Ecco il codice completo: 

La sezione header PHPDoc del plugin dice a WordPress che un file è un plugin. I parametri definiti indicano come vengono gestiti i dati. Come minimo, un'intestazione può contenere solo un nome di plugin, ma diversi pezzi possono e di solito dovrebbero essere inclusi. Puoi leggere i requisiti dell'intestazione nel Manuale per gli sviluppatori di Plugin WordPress.

Il prossimo set di codice esegue un controllo di sicurezza. Se qualcuno tenta di accedere direttamente a questo file, esegue il file ABSPATH controllare, che termina lo script se vi si accede da WordPress esterno.

Dopodiché, il codice ha il seguente aspetto:

// Versione plugin. if (! defined ('WPW_VERSION')) define ('WPW_VERSION', '1.0.0');  // Nome della cartella del plug-in. if (! defined ('WPW_NAME')) define ('WPW_NAME', trim (dirname (plugin_basename (__FILE__)), '/'));  // Directory dei plugin, inclusa la cartella. if (! defined ('WPW_DIR')) define ('WPW_DIR', WP_PLUGIN_DIR. '/'. WPW_NAME);  // URL del plug-in, inclusa la cartella. if (! defined ('WPW_URL')) define ('WPW_URL', WP_PLUGIN_URL. '/'. WPW_NAME);  // Plugin root file. if (! defined ('WPW_PLUGIN_FILE')) define ('WPW_PLUGIN_FILE', __FILE__); 

Ho definito alcune costanti globali che definiscono i dettagli della versione del plugin, della cartella radice, dell'URL e del file principale del plugin. 

Ognuno di questi contiene un if (! defined ()) dichiarazione, che aiuta a evitare eventuali errori dovuti alla ridefinizione di una costante globale. Raccomando di definire le costanti globali con il nome del pacchetto come prefisso. Il nome del pacchetto in questo plugin è WPW, Ad esempio, WordPress Welcome. Quindi, ogni costante ha un prefisso di WPW_.

Le costanti del plugin definite sono:

  • WPW_VERSION: Versione plug-in
  • WPW_NAME: Nome della cartella del plug-in
  • WPW_DIR: Directory dei plugin
  • WPW_URL: URL del plugin
  • WPW_PLUGIN_FILE: Plugin Root File

Una volta definite tutte queste costanti, inizieremo con i contenuti del nostro file di benvenuto.

Infine, ho richiesto l'inizializzatore di benvenuto e la logica di benvenuto.

if (file_exists (WPW_DIR. '/welcome/welcome-init.php')) require_once (WPW_DIR. '/welcome/welcome-init.php');  if (file_exists (WPW_DIR. '/welcome/welcome-logic.php')) require_once (WPW_DIR. '/welcome/welcome-logic.php');  

Mi piace mantenere il mio codice minimo, preciso e ben documentato. Quindi, invece di aggiungere ogni blocco di codice in un singolo file, preferisco creare singoli file, ognuno con un solo scopo. Ecco perché abbiamo un file di inizializzazione che inizializzerà tutto ciò che riguarda la pagina di benvenuto.

Il require_once () la dichiarazione richiede il welcome-init.php file, ma prima di richiedere un file, lo controllo sempre con il file esiste() Funzione PHP per evitare eventuali errori fatali nel caso in cui il file venga eliminato.

Gli stessi principi si applicano alla logica di benvenuto, che vedremo più avanti nella prossima parte della serie.

Puoi controllare il codice finale di wp-welcome-page-boilerplate.php file su GitHub.

Benvenuto Initializer

Per gestire tutti i file relativi alle pagine di benvenuto, ho creato una cartella separata denominata benvenuto e ha aggiunto un welcome-init.php file. L'intero codice di questo file controlla l'inizializzazione della pagina di benvenuto.

Studiamo il codice completo di questo file:

Il codice inizia con la documentazione incorporata sul file e un file ABSPATH dai un'occhiata. Ora avevo bisogno di un modo per aggiungere ed eliminare il transitorio quando il plugin è attivato e disattivato rispettivamente. 

Fortunatamente WordPress ci fornisce due ganci per questo scopo preciso. 

  • register_activation_hook (string $ file, richiamabile $ funzione): Questo hook viene attivato quando il plugin viene attivato. Prende come parametri il file $ principale del plugin e una funzione $ richiamabile.
  • register_deactivation_hook (string $ file, richiamabile $ funzione): Questo hook viene attivato quando il plugin viene disattivato. Prende il plugin $ file principale e una funzione $ richiamabile come parametri.

Quindi, ora abbiamo bisogno di usare questi ganci. Ho creato un transitorio per la pagina di benvenuto. Il set_transient () la funzione è chiamata all'interno dell'abitudine wpw_welcome_activate () funzione. Nel precedente articolo, abbiamo appreso che il impostato l'operazione richiede a chiave, valore e un data di scadenza come i suoi parametri. 

Pertanto, la chiave _welcome_redirect_wpw è impostato su un valore vero per 60 secondi. Questo definisce l'età massima dopo la quale il transitorio scade.

Il prossimo è il gancio di attivazione, e come sappiamo questo hook funziona solo quando viene attivato un plugin. Aggiunge il nostro transitorio al database. Una volta che il transitorio è nel database, significa che possiamo controllarlo e reindirizzare l'utente alla nostra pagina di benvenuto. Come reindirizzare l'utente? Questo è ciò che studieremo nel prossimo articolo.

Dopo di ciò, ho scritto il codice che viene eseguito alla disattivazione del plug-in. Vogliamo una funzionalità in cui il transitorio viene eliminato quando un utente disattiva il plug-in. Per farlo, ho chiamato il delete_transient () funzione, che prende la chiave _welcome_redirect_wpw come il suo parametro. Poi c'è il wpw_welcome_deactivate () funzione, che viene aggiunta al hook di disattivazione del plugin. 

Questa parte è facoltativa, ma voglio che i miei utenti visualizzino la pagina di benvenuto ogni volta che attivano il plug-in. Se non lo fai, puoi sicuramente ignorare la cancellazione del tuo transitorio.

Finora, ho discusso la parte del codice che è necessaria per creare ed eliminare un transitorio. Ma manca ancora il codice per la logica di benvenuto, che reindirizza gli utenti alla pagina di benvenuto. Lo affronteremo dopo.

Conclusione

Questo è per oggi. Quindi, siamo a metà strada. Il file di base e l'inizializzatore per la nostra pagina di benvenuto sono pronti. Ora dobbiamo creare la logica e visualizzare i file, che è il piano per il prossimo articolo.

Infine, puoi prendere tutti i miei corsi ed esercitazioni sulla mia pagina del profilo, e puoi seguirmi sul mio blog e / o raggiungere Twitter @mrahmadawais dove scrivo dei flussi di lavoro di sviluppo nel contesto di WordPress.

Come al solito, non esitare a lasciare qualsiasi domanda o commento qui sotto e cercherò di rispondere a ciascuno di essi.