Creați un CRM simplu în WordPress Crearea unui tip de post particularizat

Dacă sunteți un designer independent, un dezvoltator sau un proprietar de afaceri, știți cât de dificil este să păstrați un magazin central al datelor despre clienți potențiali. Odată ce ați realizat acest lucru, este uneori dificil să păstrați acele date actualizate - înregistrarea apelurilor pe care le-ați făcut la prospect, e-mailurile pe care le-ați trimis și așa mai departe.

În mod specific, vom explora înregistrarea unui tip de post personalizat, crearea câmpurilor postare personalizate, afișarea câmpurilor postare personalizate în interfața de administrare WordPress, căutarea datelor noastre de câmp personalizate și transformarea interfeței WordPress Administration într-o interfață CRM ușoară.

De ce nu folosiți un plugin CRM (sau un sistem CRM?)

În timp ce modulele WordPress CRM gratuite și premium nu există (cum ar fi WP-CRM) și serviciile CRM terțe (cum ar fi Salesforce sau Highrise), acestea sunt fie prea complexe pentru a începe să utilizeze rapid, fie au caracteristici care nu sunt ideale pentru noi flux de lucru.

Prin rularea propriei noastre soluții, putem construi o soluție ușoară, simplă, care ar putea fi extinsă în viitor pe baza cerințelor dumneavoastră specifice. În plus, vom învăța cum să utilizați unele dintre funcțiile API WordPress.

Crearea pluginului CRM

Pentru această serie, vom crea un plugin WordPress și vom extinde funcționalitatea acestuia prin fiecare parte din această serie.

Codul sursă va fi furnizat integral la sfârșitul fiecărui articol, dar până atunci, să creăm pluginul pas cu pas.

Mai întâi, în instalarea dvs. locală de WordPress, creați un director în wp-content / plugins denumit Tuts-crm. De aici, vom începe să adăugăm codul sursă.

Antetul Pluginului

Creați un fișier numit Tuts-crm.php, introducerea următorului cod:

După cum veți vedea, acesta este doar un comentariu PHP. Cu toate acestea, WordPress scanează acest lucru pentru a afla:

  • numele pluginului,
  • autorul pluginului,
  • descrierea a ceea ce face plugin-ul

În tabloul de bord WordPress, activați noul plugin accesând "Plugin-uri"> "Pluginuri instalate", apoi faceți clic pe "Activare" de lângă pluginul CRM:

Configurarea clasei noastre Plugin

Cu orice site web WordPress care are un număr posibil și o combinație de pluginuri, este posibil ca un nume de funcție pe care îl alegem să îl folosim (cum ar fi crm ()) se confruntă cu un alt plugin care utilizează același.

Cele mai multe plugin-uri se confruntă cu această problemă, utilizând a function_exists () Verifica:

dacă (! function_exists ('crm')) funcția crm () // Face ceva aici

În timp ce aceasta oprește site-ul dvs. WordPress de la slefuire la o oprire, nu se face plug-in dvs. de lucru în cazul în care există un conflict.

O abordare alternativă orientată spre obiect este de a vă înfășura funcțiile într-o clasă orientată pe obiecte. Să mergem mai departe și să facem asta adăugând următoarele sub comentariul antetului plugin:

clasa WPTutsCRM / ** * Constructor. Chemată când pluginul este inițializat * / funcția __construct ()  $ wpTutsCRM = noul WPTutsCRM;

Aceasta creează clasa noastră PHP, împreună cu o construcție, care se numește atunci când ajungem la linie $ wpTutsCRM = noul WPTutsCRM;

Înregistrați-vă tipul de post particularizat

Apoi, trebuie să înregistrăm un tip de post particularizat, care va stoca fiecare contact în sistemul nostru CRM.

Din Codul:

WordPress poate să dețină și să afișeze mai multe tipuri diferite de conținut. Un singur element al unui astfel de conținut este, în general, denumit post, deși postul este, de asemenea, un tip specific de postare. Pe plan intern, toate tipurile post sunt stocate în același loc, în tabela de date wp_posts, dar sunt diferențiate printr-o coloană numită post_type.

WordPress 3.0 vă oferă posibilitatea de a adăuga propriile tipuri de posturi personalizate și de a le utiliza în moduri diferite.

Paginile și mesajele sunt două tipuri comune de mesaje WordPress. Putem extinde funcționalitatea WordPress prin adăugarea propriului nostru tip de posturi personalizate. Să facem asta prin înregistrarea unui acțiune la constructorul Plugin-ului nostru:

funcția __construct () add_action ('init', array ($ this, 'register_custom_post_type'));  

Acest lucru spune WordPress pentru a rula register_custom_post_type funcționează în clasa noastră atunci când pluginul nostru este inițializat.

Apoi, adăugați register_custom_post_type funcţie:

/ ** * Înregistrează un tip de post particularizat numit contact * / function register_custom_post_type () register_post_type ('contact', array ('etichete' => , "nume_menu" => _x ("Persoane de contact", "meniu admin", " tuts-crm ',' add_new '=> _x (' Adăugați noi ',' contact ',' tuts-crm '),' name_admin_bar ' -crm ',' add_new_item '=> __ (' Adăugare contact nou ',' tuts-crm '),' new_item '=> __ ('Edit Contact', 'tuts-crm'), 'view_item' => __ ('View Contact', 'tuts-crm'), 'all_items' => , 'search_items' => __ ('Căutare contacte', 'tuts-crm'), 'parent_item_colon' => . "," tuts-crm ")," not_found_in_trash "=> __ (" Nu există contacte găsite în coșul de gunoi "," tuts-crm " false, 'public' => false, 'publicly_queryable' => false, // Admin 'capability_type' => 'post', 'menu_icon' => 'dashicons-businessman', 'menu_position' => > true, 'show_in_menu' => true, 'show_ui' => true, 'supports' => array ('titlu', 'autor', 'comentarii');));  

Aceasta înregistrează un tip de post particularizat numit a lua legatura. register_post_type acceptă următoarea gamă de argumente:

cheie Descriere
etichete O serie de etichete care descriu acest tip de postare. Acestea sunt folosite în cadrul administrării WordPress.
has_archive Activează arhivele de pe site-ul frontal.
public Dacă tipul postului ar trebui să fie disponibil în site-ul WordPress Administration și frontend.
publicly_queryable Indiferent dacă acest tip de mesaj personalizat poate fi interogat de pe site-ul frontal.
capability_type Folosit pentru a defini capabilitățile pe care utilizatorul ar trebui să le aibă pentru a adăuga, modifica și șterge mesajele pentru acest tip de postare. Aceasta ar putea fi o capacitate existentă (cum ar fi post)
menu_icon Fie adresa URL a imaginii pictogramei de meniu, fie a dashicons- clasa (3.8 sau mai mare). Folosit în administrația WordPress.
menu_position Un număr care indică faptul că în meniul de administrare WordPress se afișează acest element. Numărul mai mic înseamnă că apare mai devreme.
query_var Setează query_var pentru acest tip de postare. Implică la numele tipului de post particularizat.
show_in_menu Indiferent dacă doriți să afișați acest tip de post particularizat în meniul de administrare WordPress.
show_ui Fie că doriți să generați un interfață utilizator în Administrația WordPress pentru a permite adăugarea, editarea și ștergerea postărilor pentru acest tip de post particularizat.
suporturi Un tabel care detaliază câmpurile disponibile pentru acest tip de post particularizat. Exemplele includ titlu, editor, extras și Pagina-atribute

Salvați plugin-ul dvs., apoi vizualizați tabloul de bord WordPress. Ar trebui să vedeți o nouă intrare de meniu numită Contacte:

Faceți clic pe această intrare și ar trebui să vedeți o interfață familiară cu cea pe care o utilizați pentru a gestiona mesajele și paginile:

Să mergem mai departe și să adăugăm primul nostru contact. Faceți clic pe "Adăugați un nou", apoi puneți "Joe Bloggs" în câmpul "Titlu", înainte de a da clic pe "Publicați".

În cele din urmă, trebuie să verificăm dacă postul personalizat este salvat. Faceți clic pe "Contact" din meniul de administrare WordPress și ar trebui să vedeți noul nostru contact:

Urmeaza…

În următorul articol, vom adăuga câmpuri personalizate la tipul nostru de postare personalizată de contact, permițându-ne să stocăm mai multe informații despre clienții noștri și clienții.

Cod