Crea un CRM semplice in WordPress Campi personalizzati avanzati

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.

Campi personalizzati avanzati

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:

  • editor visivi
  • numero / intervallo
  • parola d'ordine
  • e-mail
  • Immagine
  • selezionare
  • casella di controllo
  • pubblicare oggetti
  • Google Maps

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.

Installazione di campi personalizzati avanzati

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.

Rimozione del nostro campo personalizzato

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.

Aspetta, cosa era parte 2 tutto?

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

Creazione di un gruppo di campi

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 E-mail
necessario?

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:

Numero di telefono
Campo Valore
Etichetta di campo Numero di telefono
Tipo di campo Numero
necessario?
Foto
Campo Valore
Etichetta di campo Foto
Tipo di campo Immagine
necessario? No
genere
Campo Valore
Etichetta di campo genere
Tipo di campo Selezionare
necessario?
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:

Impedisci modifiche ai campi personalizzati

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:

Definisci programmaticamente campi personalizzati

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:

  • installa il plugin CRM,
  • installa campi personalizzati avanzati
  • definire i nostri gruppi di campi e campi personalizzati

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.

svantaggi

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:

  • i campi sono creati, modificati o distrutti
  • Campi personalizzati avanzati ha un aggiornamento disponibile

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.

Avanti il ​​prossimo…

Nel prossimo articolo, modificheremo la tabella di amministrazione di WordPress (anche conosciuta come WP_List_Table) per visualizzare i nostri campi personalizzati avanzati.