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ă.
Î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.
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ă.
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:
Î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:
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;
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:
Î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.