Hvis du er frilansdesigner, utvikler eller bedriftseier, vet du hvor vanskelig det er å holde en sentral butikk av potensielle kundedata. Når du har oppnådd det, er det noen ganger vanskelig å holde dataene oppdatert - logge samtaler du har gjort til prospektet, e-postene du har sendt, og så videre.
Nærmere bestemt vil vi undersøke å registrere en egendefinert innleggstype, opprette egendefinerte innleggsfelt, vise egendefinerte innleggsfelt i WordPress Administration-grensesnittet, søke etter tilpassede feltdata og snu WordPress Administration-grensesnittet i et lett CRM-grensesnitt.
Mens gratis og premium WordPress CRM-plugins finnes (for eksempel WP-CRM) og tredjeparts CRM-tjenester (for eksempel Salesforce eller Highrise), er de enten for komplekse til å begynne å bruke raskt, eller har funksjoner som kanskje ikke er ideelle for vår spesielle arbeidsflyt.
Ved å rulle vår egen løsning, kan vi bygge en lett, enkel løsning som kan bli utvidet i fremtiden basert på dine spesifikke krav. I tillegg lærer vi hvordan du bruker noen av WordPress API-funksjonene.
For denne serien lager vi et WordPress-plugin og utvider funksjonaliteten gjennom hver del i denne serien.
Kilden koden vil bli gitt i sin helhet på slutten av hver artikkel, men til da, la oss lage plugin trinn for trinn.
Først må du opprette en katalog i din lokale installasjon av WordPress wp-innhold / tillegg
kalt Tuts-crm
. Herfra begynner vi å legge til kildekoden vår.
Opprett en fil som heter Tuts-crm.php
, setter inn følgende kode:
Som du ser, er dette bare en PHP-kommentar. Imidlertid skanner WordPress dette for å finne ut:
I WordPress-dashbordet aktiverer du det nye pluginet ved å gå til "Plugins"> "Installed Plugins," og deretter klikke "Activate" ved siden av CRM plugin:
Med et hvilket som helst WordPress-nettsted som har noen mulig tall og kombinasjon av plugins, er det mulig at et funksjonsnavn vi velger å bruke (for eksempel crm ()
) konflikter med et annet plugin som bruker det samme.
De fleste pluginene løser dette problemet ved å bruke en function_exists ()
kryss av:
hvis (! function_exists ('crm')) funksjon crm () // Gjør noe her
Mens dette stopper ditt WordPress-nettsted fra sliping, stopper det ikke pluginet ditt hvis det oppstår konflikt.
En alternativ objektorientert tilnærming er å pakke inn funksjonene i en objektorientert klasse. La oss gå videre og gjøre det ved å legge til følgende under pluginheader-kommentaren:
klassen WPTutsCRM / ** * Constructor. Kalt når plugin er initialisert * / funksjon __construct () $ wpTutsCRM = ny WPTutsCRM;
Dette skaper vår PHP-klasse, sammen med en konstruksjon, som kalles når vi når linjen $ wpTutsCRM = ny WPTutsCRM;
Deretter må vi registrere en egendefinert innleggstype, som lagrer hver kontakt i vårt CRM-system.
Fra Codex:
WordPress kan holde og vise mange forskjellige typer innhold. Et enkelt element av et slikt innhold kalles vanligvis et innlegg, selv om innlegget også er en bestemt posttype. Internt lagres alle posttyper på samme sted, i wp_posts database tabellen, men er differensiert av en kolonne som heter post_type.
WordPress 3.0 gir deg muligheten til å legge til dine egne egendefinerte innleggstyper og å bruke dem på forskjellige måter.
Sider og innlegg er to vanlige WordPress-posttyper. Vi kan utvide WordPress 'funksjonalitet ved å legge til vår egen tilpassede posttype. La oss gjøre dette ved å registrere en handling
til vår Plugins konstruktør:
funksjon __construct () add_action ('init', array ($ this, 'register_custom_post_type'));
Dette forteller WordPress å kjøre register_custom_post_type
Fungerer inne i vår klasse når vårt plugin er initialisert.
Deretter legger du til register_custom_post_type
funksjon:
/ ** * Registrerer en egendefinert posttype som kalles kontakt * / funksjon register_custom_post_type () register_post_type ('kontakt', array ('labels' => array ('name' => _x ('Kontakter', 'posttype generell navn' , 'tuts-crm'), 'singular_name' => _x ('Kontakt', 'posttype entall navn', 'tuts-crm'), 'menu_name' => _x ('Kontakter', 'admin-meny' tuts-crm '),' name_admin_bar '=> _x (' Kontakt ',' legg til nytt på admin bar ',' tuts-crm '),' add_new '=> _x (' Legg til nytt ',' kontakt ' -crm '),' add_new_item '=> __ (' Legg til ny kontakt ',' tuts-crm '),' new_item '=> __ (' Ny kontakt ',' tuts-crm '),' edit_item '=> __ ('Edit Contact', 'tuts-crm'), 'view_item' => __ ('Vis kontakt', 'tuts-crm'), 'all_items' => __ ('Alle kontakter', 'tuts-crm') , 'search_items' => __ ('Søk kontakter', 'tuts-crm'), 'parent_item_colon' => __ ('Parent Contacts:', 'tuts-crm'), 'not_found' => __ ('Ingen kontakt funnet ',' tuts-crm '),' not_found_in_trash '=> __ (' Ingen kontakter funnet i Papirkurv. ',' tuts-crm '),), / Frontend' has_archive '=> false, 'public' => false, 'publicly_queryable' => false, // Admin 'capability_type' => 'innlegg', 'menu_icon' => 'dashicons-businessman', 'menu_position' => 10, 'query_var' = > true, 'show_in_menu' => true, 'show_ui' => true, 'supports' => array ('tittel', 'forfatter', 'kommentarer',),)));
Dette registrerer en egendefinert posttype som kalles ta kontakt med. register_post_type
aksepterer følgende rekke argumenter:
nøkkel | Beskrivelse |
---|---|
etiketter | En rekke etiketter som beskriver denne posttypen. Disse brukes i WordPress-administrasjonen. |
has_archive | Aktiverer arkiver på frontend-websiden. |
offentlig | Om posttypen skal være tilgjengelig på WordPress administrasjon og frontend-websiden. |
publicly_queryable | Om denne egendefinerte innleggstypen kan forespørres fra nettsiden for frontend. |
capability_type | Brukes til å definere funksjonene som brukeren burde ha for å kunne legge til, redigere og slette innlegg for denne innleggstypen. Dette kan være en eksisterende evne (for eksempel post ) |
menu_icon | Enten nettadressen til menyikonbildet, eller a dashicons- klasse (3,8 eller høyere). Brukes i WordPress-administrasjonen. |
menu_position | Et nummer som angir hvor i WordPress Administrasjon-menyen for å vise dette elementet. Lavere tall betyr at det vises tidligere. |
query_var | Angir spørringen_var for denne innleggstypen. Standard til navnet på den egendefinerte innleggstypen. |
show_in_menu | Enten å vise denne egendefinerte innleggstypen i WordPress-administrasjonsmenyen. |
show_ui | Enten å generere et brukergrensesnitt i WordPress-administrasjonen for å tillate å legge til, redigere og slette Innlegg for denne egendefinerte innleggstypen. |
støtter | En matrise som angir feltene som er tilgjengelige for denne egendefinerte innleggstypen. Eksempler inkluderer tittel , redaktør , utdrag og page-attributter |
Lagre pluginet ditt, og se deretter ditt WordPress dashboard. Du bør se en ny menyoppføring kalt Kontakt:
Klikk på denne oppføringen, og du bør se et kjent grensesnitt til det du bruker til å administrere Innlegg og sider:
La oss gå videre og legge til vår første kontakt. Klikk på "Legg til ny", og legg deretter "Joe Bloggs" i "Tittel" -feltet, før du klikker "Publiser".
Til slutt må vi sjekke egendefinert posttype lagret. Klikk tilbake på "Kontakter" i WordPress administrasjonsmenyen, og du bør se vår nye kontakt:
I neste artikkel skal vi legge til egendefinerte felt i vår Kontakt tilpassede posttype, slik at vi kan lagre mer informasjon om våre prospekter og kunder.