Crea un semplice CRM in WordPress creazione di un tipo di messaggio personalizzato

Se sei un designer freelance, uno sviluppatore o un imprenditore, sai quanto sia difficile mantenere un archivio centrale dei potenziali dati dei clienti. Una volta completato, a volte è difficile mantenere aggiornati i dati: registrazione delle chiamate che hai fatto al potenziale cliente, email che hai inviato e così via.

Nello specifico, esploreremo la registrazione di un tipo di post personalizzato, la creazione di campi personalizzati, la visualizzazione di campi personalizzati nell'interfaccia di amministrazione di WordPress, la ricerca dei dati del campo personalizzato e l'interfaccia di amministrazione di WordPress in un'interfaccia CRM leggera.

Perché non utilizzare un plug-in CRM (o un sistema CRM?)

Mentre i plug-in WordPress CRM gratuiti e premium esistono (come WP-CRM) e servizi CRM di terze parti (come Salesforce o Highrise), sono troppo complessi per iniziare a utilizzare rapidamente o hanno caratteristiche che potrebbero non essere l'ideale per il nostro particolare flusso di lavoro.

Rotolando la nostra soluzione, possiamo costruire una soluzione leggera e semplice, che potrebbe essere estesa in futuro in base alle vostre esigenze specifiche. Inoltre, impareremo come utilizzare alcune delle funzioni API di WordPress.

Creazione del plugin CRM

Per questa serie, creeremo un plugin per WordPress e ne estenderemo la funzionalità attraverso ogni parte di questa serie.

Il codice sorgente verrà fornito per intero alla fine di ogni articolo, ma fino ad allora, creiamo il plugin passo dopo passo.

Innanzitutto, nell'installazione locale di WordPress, crea una directory in wp-content / plugins chiamato tuts-crm. Da qui, inizieremo ad aggiungere il nostro codice sorgente.

L'intestazione del plugin

Crea un file chiamato tuts-crm.php, inserendo il seguente codice:

Come vedrai, questo è solo un commento in PHP. Tuttavia, WordPress esegue la scansione di questo per capire:

  • il nome del plugin,
  • l'autore del plugin,
  • la descrizione di cosa fa il plugin

Nella dashboard di WordPress, attiva il tuo nuovo plug-in selezionando "Plugin"> "Plugin installati", quindi facendo clic su "Attiva" accanto al plug-in CRM:

Impostazione della nostra classe di plugin

Con qualsiasi sito web WordPress che abbia un numero qualsiasi e una combinazione di plug-in, è possibile che un nome di funzione che scegliamo di usare (come crm ()) è in conflitto con un altro plugin che utilizza lo stesso.

La maggior parte dei plugin risolve questo problema usando a function_exists () dai un'occhiata:

if (! function_exists ('crm')) function crm () // Fai qualcosa qui

Anche se questo impedisce al tuo sito WordPress di fermarsi, non funziona correttamente se c'è un conflitto.

Un approccio alternativo orientato agli oggetti è quello di avvolgere le tue funzioni in una classe orientata agli oggetti. Andiamo avanti e farlo aggiungendo quanto segue sotto il commento dell'intestazione del plugin:

class WPTutsCRM / ** * Costruttore. Chiamato quando il plugin è inizializzato * / function __construct ()  $ wpTutsCRM = new WPTutsCRM;

Questo crea la nostra classe PHP, insieme a un costrutto, che viene chiamato quando raggiungiamo la linea $ wpTutsCRM = nuovo WPTutsCRM;

Registra il nostro tipo di messaggio personalizzato

Successivamente, dobbiamo registrare un tipo di messaggio personalizzato, che memorizzerà ogni contatto nel nostro sistema CRM.

Dal codice:

WordPress può contenere e visualizzare molti tipi diversi di contenuti. Un singolo elemento di tale contenuto viene generalmente definito un post, sebbene il post sia anche un tipo di post specifico. Internamente, tutti i tipi di post sono memorizzati nello stesso posto, nella tabella del database wp_posts, ma sono differenziati da una colonna chiamata post_type.

WordPress 3.0 ti dà la possibilità di aggiungere i tuoi tipi di post personalizzati e di usarli in modi diversi.

Le pagine e i post sono due tipi di post di WordPress comuni. Possiamo estendere la funzionalità di WordPress aggiungendo il nostro tipo di messaggio personalizzato. Facciamo questo registrando un azione al nostro costruttore di plugin:

function __construct () add_action ('init', array ($ this, 'register_custom_post_type'));  

Questo dice a WordPress di eseguire il register_custom_post_type funzione all'interno della nostra classe quando il nostro plugin è inizializzato.

Quindi, aggiungi il register_custom_post_type funzione:

/ ** * Registra un tipo di messaggio personalizzato chiamato contact * / function register_custom_post_type () register_post_type ('contact', array ('labels' => array ('name' => _x ('Contacts', 'post type general name' , 'tuts-crm'), 'singular_name' => _x ('Contact', 'post type singular name', 'tuts-crm'), 'menu_name' => _x ('Contatti', 'menu di amministrazione', ' tuts-crm '),' name_admin_bar '=> _x (' Contatto ',' aggiungi nuovo su barra di amministrazione ',' tuts-crm '),' add_new '=> _x (' Aggiungi nuovo ',' contatto ',' tuts -crm '),' add_new_item '=> __ (' Aggiungi nuovo contatto ',' tuts-crm '),' new_item '=> __ (' Nuovo contatto ',' tuts-crm '),' edit_item '=> __ ('Modifica contatto', 'tuts-crm'), 'view_item' => __ ('Visualizza contatto', 'tuts-crm'), 'all_items' => __ ('Tutti i contatti', 'tuts-crm') , 'search_items' => __ ('Cerca contatti', 'tuts-crm'), 'parent_item_colon' => __ ('Contatti principali:', 'tuts-crm'), 'not_found' => __ ('Nessun contatto found. ',' tuts-crm '),' not_found_in_trash '=> __ (' Nessun contatto trovato nel Cestino. ',' tuts-crm '),), // Frontend' has_archive '=> false, 'public' => false, 'public_queryable' => false, // Admin 'capabilities_type' => 'post', 'menu_icon' => 'dashicons-businessman', 'menu_position' => 10, 'query_var' = > true, 'show_in_menu' => true, 'show_ui' => true, 'supports' => array ('title', 'author', 'comments',),));  

Questo registra un tipo di messaggio personalizzato chiamato contatto. register_post_type accetta il seguente array di argomenti:

chiave Descrizione
etichette Una serie di etichette che descrivono questo tipo di messaggio. Questi sono usati all'interno dell'amministrazione di WordPress.
has_archive Abilita gli archivi sul sito Web di frontend.
pubblico Se il Post Type dovrebbe essere disponibile nel sito Web di amministrazione e frontend di WordPress.
publicly_queryable Se questo tipo di messaggio personalizzato può essere interrogato dal sito Web di frontend.
capability_type Utilizzato per definire le funzionalità che l'utente deve avere per aggiungere, modificare e cancellare i post per questo tipo di messaggio. Questa potrebbe essere una capacità esistente (come inviare)
menu_icon O l'URL all'immagine dell'icona del menu o a dashicons- classe (3.8 o superiore). Utilizzato nell'amministrazione di WordPress.
menu_position Un numero che indica dove nel menu Amministrazione WordPress per visualizzare questo elemento. Un numero più basso significa che appare prima.
query_var Imposta query_var per questo tipo di post. Predefinito il nome del tipo di messaggio personalizzato.
show_in_menu Indica se mostrare questo tipo di messaggio personalizzato nel menu Amministrazione di WordPress.
show_ui Se generare un'interfaccia utente nell'amministrazione di WordPress per consentire l'aggiunta, la modifica e l'eliminazione di post per questo tipo di messaggio personalizzato.
supporti Una matrice che specifica i campi disponibili per questo tipo di messaggio personalizzato. Esempi inclusi titolo, editore, estratto e page-attributi

Salva il tuo plug-in, quindi visualizza il dashboard di WordPress. Dovresti vedere una nuova voce di menu chiamata Contatti:

Fai clic su questa voce e dovresti vedere un'interfaccia familiare a quella che usi per gestire Post e Pagine:

Andiamo avanti e aggiungere il nostro primo contatto. Fai clic su "Aggiungi nuovo" e quindi inserisci "Joe Bloggs" nel campo "Titolo", prima di fare clic su "Pubblica".

Infine, dobbiamo controllare il tipo di messaggio personalizzato salvato. Fai di nuovo clic su "Contatti" nel menu di amministrazione di WordPress e dovresti vedere il nostro nuovo contatto:

Avanti il ​​prossimo…

Nel prossimo articolo, aggiungeremo campi personalizzati al nostro tipo di contatto personalizzato, permettendoci di memorizzare più informazioni sui nostri potenziali clienti e clienti.