Abbiamo cercato come creare un semplice sistema CRM in WordPress. Nell'ultima parte di questa serie, abbiamo aggiunto un campo di indirizzo email personalizzato al nostro tipo di post personalizzato Contatti. Abbiamo imparato come scrivere e leggere questi dati di campo personalizzati e implementare un nonce per garantire che i nostri invii di moduli siano sicuri.
Oggi illustreremo come utilizzare Advanced Custom Fields, un famoso plugin WordPress, per generare rapidamente campi personalizzati.
La creazione di campi personalizzati per un tipo di post richiede molto tempo e abbiamo identificato considerazioni chiave sulla sicurezza durante il processo. Per un CRM, dove potremmo avere diversi tipi di campi diversi, come un menu a discesa o caselle di controllo selezionate, la creazione manuale di campi in un plug-in richiederebbe molto tempo.
Advanced Custom Fields è un plugin per WordPress che fornisce sia un'interfaccia utente che metodi programmatici per la creazione di meta box personalizzati e campi personalizzati su qualsiasi tipo di post.
Fornisce inoltre una gamma più ampia di tipi di campi modulo, come ad esempio:
I meta box personalizzati e i relativi campi possono avere condizioni ad essi associate, pertanto vengono visualizzati solo in base al tipo o al valore di un altro campo. Questo è davvero utile se vogliamo solo visualizzare un campo quando una casella è selezionata, per esempio.
Vai al Plugin> Aggiungi nuovo nella tua dashboard di WordPress. Nella casella di ricerca, inserisci Campi personalizzati avanzati, e fare clic Cerca plugin:
Nella schermata dei risultati di ricerca, trova Campi personalizzati avanzati, e fare clic Installa ora.
Una volta installato, attiva il plugin.
Poiché utilizzeremo i campi personalizzati avanzati per generare i nostri metadati e campi personalizzati, il modo più rapido per rimuovere il campo personalizzato generato nella seconda parte di questa serie è scarica il codice dalla Parte 1 di questa serie di tutorial.
Piuttosto che limitarsi a utilizzare Advanced Custom Fields, abbiamo spiegato in dettaglio come funziona il processo per la registrazione di metabox personalizzate, campi personalizzati, salvataggio dei dati e recupero dei dati.
In questo modo, abbiamo un'idea più chiara su come funzionano i Campi personalizzati avanzati, oltre a vedere quanto è più veloce (per non parlare di un'interfaccia utente migliore).
Clicca su Campi personalizzati nel menu Amministrazione di WordPress:
Vedrai il Gruppi di campi schermo. Pensa a un gruppo di campi come una meta-box personalizzata che abbiamo descritto nella Parte 2. Creiamo il nostro primo gruppo di campi, facendo clic Aggiungere nuova accanto al titolo del gruppo di campi:
Chiama il gruppo di campi Dettagli del contatto, e quindi fare clic su Aggiungi campo pulsante per aggiungere il nostro primo campo:
Inserisci i seguenti dettagli:
Campo | Valore |
---|---|
Etichetta di campo | Indirizzo email |
Tipo di campo | |
necessario? | sì |
Scorri verso il basso fino a Posizione scatola. Vogliamo che questo gruppo di campi venga visualizzato solo sul nostro Contatto tipo di post personalizzato, quindi aggiungiamo una condizione scegliendo Mostra questo gruppo di campi se Post Type è uguale al contatto:
Scorri verso il basso fino alla casella delle opzioni. Impostare il Ordine n. a 1, Stile a Standard e controlla tutte le caselle per Nascondi sullo schermo, tranne il Editor di contenuti opzione:
Clic Pubblicare, e il gruppo di campi verrà salvato.
Controlliamo il nostro campo è disponibile sul nostro tipo di contatto, andando a Contatti> Aggiungi nuovo nella dashboard di WordPress:
Vai avanti e inserisci un nome e un indirizzo email per il tuo contatto, quindi fai clic Pubblicare. Vedrai come i campi personalizzati avanzati gestiscono tutte le convalide dei campi, il salvataggio e la lettura dei dati dei campi personalizzati.
Aggiungiamo altri campi al nostro esistente Gruppo di campi. Modifica il Dettagli del contatto gruppo di campi creato sopra e aggiungi i seguenti campi:
Campo | Valore |
---|---|
Etichetta di campo | Numero di telefono |
Tipo di campo | Numero |
necessario? | sì |
Campo | Valore |
---|---|
Etichetta di campo | Foto |
Tipo di campo | Immagine |
necessario? | No |
Campo | Valore |
---|---|
Etichetta di campo | genere |
Tipo di campo | Selezionare |
necessario? | sì |
scelte | Prospetto: prospettiva Cliente: cliente |
Sentiti libero di aggiungere altri campi o informazioni che normalmente conserveresti per i tuoi clienti e potenziali clienti.
Quando hai finito, fai clic Aggiornare, e inizia ad aggiungere, modificare e gestire i tuoi contatti:
Non vogliamo che altri amministratori di WordPress cambino questi campi (o, peggio, li cancellino), perché significherebbe che non possiamo visualizzare o modificare le informazioni di un contatto.
Apri il file plugin che abbiamo creato in precedenza e aggiungi quanto segue in precedenza class WPTutsCRM
:
/ ** * Imposta Advanced Custom Fields in modalità Lite, quindi non appare * nel menu di amministrazione di WordPress * / define ('ACF_LITE', true);
Salva il file del plugin e ricarica l'interfaccia di amministrazione di WordPress. Vedrai che il Campi personalizzati la voce del menu è scomparsa:
Potremmo fare un ulteriore passo avanti e definire a livello di codice i nostri campi personalizzati, invece di affidarci all'interfaccia utente del plugin Advanced Custom Fields per definirli.
Ciò sarebbe utile se, ad esempio, dovessimo distribuire il nostro plug-in CRM su più installazioni WordPress. Sarebbe impegnativo in termini di tempo per:
Rimuovi il codice seguente dal nostro plug-in, in modo che possiamo accedervi nuovamente tramite l'amministrazione di WordPress:
/ ** * Imposta Advanced Custom Fields in modalità Lite, quindi non appare * nel menu di amministrazione di WordPress * / define ('ACF_LITE', true);
Nell'amministrazione di WordPress, clicca su Campi personalizzati, e quindi fare clic su Esportare opzione.
Da qui, selezioniamo il Dettagli del contatto raggruppa e fai clic su Esporta in PHP opzione:
Fai un solo clic sul codice che appare sullo schermo, che evidenzierà tutto. Copia questo negli Appunti e incollalo in una nuova funzione del tuo Plugin:
/ ** * Registra gruppi di campi ACF e campi * / function acf_fields () if (function_exists ("register_field_group")) register_field_group (array ('id' => 'acf_contact-details', 'title' => 'Dettagli di contatto ',' fields '=> array (array (' chiave '=>' field_5323276db7e18 ',' label '=>' Indirizzo email ',' name '=>' email_address ',' type '=>' email ',' richiesto '=> 1,' default_value '=> ",' placeholder '=>",' prepend '=> ",' append '=>",), array (' chiave '=>' campo_53232a6cf3800 ',' etichetta '= > 'Numero di telefono', 'nome' => 'numero_telefono', 'tipo' => 'numero', 'valore_predefinito' => ", 'segnaposto' =>", 'prepend' => ", 'append' => ", 'min' =>", 'max' => ", 'step' =>",), array ('chiave' => 'campo_53232aa9f3801', 'etichetta' => 'Foto', 'nome' => 'foto', 'tipo' => 'immagine', 'save_format' => 'oggetto', 'preview_size' => 'miniatura', 'biblioteca' => 'tutto',), array ('chiave' => ' field_53232c2ff3802 ',' label '=>' Type ',' name '=>' type ',' type '=>' select ',' required '=> 1,' choices '=> array (' Prospect '=>' Prospect ',' Custome r '=>' Cliente ',),' default_value '=> ",' allow_null '=> 0,' multiple '=> 0,),),' location '=> array (array (array (' param '= > 'post_type', 'operator' => '==', 'value' => 'contact', 'order_no' => 0, 'group_no' => 0,),),), 'options' => array ('position' => 'normal', 'layout' => 'default', 'hide_on_screen' => array (0 => 'permalink', 1 => 'excerpt', 2 => 'custom_fields', 3 => 'discussione', 4 => 'commenti', 5 => 'revisioni', 6 => 'slug', 7 => 'autore', 8 => 'formato', 9 => 'featured_image', 10 => ' categories ', 11 =>' tags ', 12 =>' send-trackbacks ',),),' menu_order '=> 1,));
Quindi, disattivare il plug-in campi personalizzati avanzati, quindi spostare il file avanzata-custom-fields
cartella dei plugin nella nostra tuts-crm
cartella:
Spostando Campi personalizzati avanzati al di fuori della directory Plugin, dovremo attivarlo manualmente dal nostro Plugin. Facciamo ciò aggiungendo il seguente codice prima class WPTutsCRM
:
include_once ('advanced-custom-fields / acf.php'); define ('ACF_LITE', true);
Infine, dobbiamo dire a Campi personalizzati avanzati che abbiamo definito gruppi di campi e campi personalizzati a livello di codice. Cambia il costrutto del nostro plugin in basso:
/ ** * Costruttore. Chiamato quando il plugin è inizializzato * / function __construct () add_action ('init', array ($ this, 'register_custom_post_type')); add_action ('plugins_loaded', array ($ this, 'acf_fields'));
Ricarica la dashboard di WordPress e crea e / o modifica un contatto. Vedrai che i nostri gruppi di campi e i campi personalizzati rimangono al loro posto.
Il raggruppamento di un plug-in all'interno di un plug-in non è sempre l'approccio migliore. Mentre ci consente di distribuire rapidamente il nostro plug-in su più installazioni di WordPress in un'unica fase, dovremmo rilasciare un aggiornamento al nostro plug-in ogni volta:
A seconda del tuo caso d'uso, potresti preferire questo approccio in bundle. Se stai eseguendo questo in un singolo sito, l'utilizzo dell'interfaccia utente per definire i tuoi Field Groups e Custom Fields potrebbe essere un approccio più rapido e semplice.
Nel prossimo articolo, modificheremo la tabella di amministrazione di WordPress (anche conosciuta come WP_List_Table
) per visualizzare i nostri campi personalizzati avanzati.