Opprett en enkel CRM i WordPress Avanserte egendefinerte felt

Vi har sett på hvordan du lager et enkelt CRM-system i WordPress. I den siste delen av denne serien la vi til et egendefinert e-postadressefelt i vår Kontakter tilpasset posttype. Vi lærte å skrive og lese denne egendefinerte feltdata, og implementere en nonce for å sikre at skjemainnleggene våre er sikre.

I dag skal vi dekke hvordan du bruker Avanserte egendefinerte felt, et populært WordPress-plugin, for raskt å generere egendefinerte felt.

Avanserte egendefinerte felt

Å lage egendefinerte felt for en posttype er tidkrevende, og vi har identifisert viktige sikkerhetshensyn i prosessen. For en CRM, hvor vi kan ha flere forskjellige felttyper, for eksempel en markert rullegardin eller avmerkingsbokser, kan det være en betydelig tid å lage felt i et plugin manuelt..

Avanserte egendefinerte felt er et WordPress-plugin som gir både et brukergrensesnitt og programmatiske metoder for å lage egendefinerte metakasser og egendefinerte felt på en posttype. 

 Det gir også et større utvalg av formfelttyper, for eksempel:

  • visuelle redaktører
  • tall / rekkevidde
  • passord
  • e-post
  • bilde
  • å velge
  • avkrysnings
  • post objekter
  • Google Kart

Egendefinerte metakasser og deres felter kan ha betingelser knyttet til dem, så de vises bare basert på posttypen eller verdien av et annet felt. Dette er veldig nyttig hvis vi bare vil vise et felt når en avkrysningsboks er merket, for eksempel.

Installere avanserte egendefinerte felt

Gå til Plugins> Legg til nytt i ditt WordPress dashboard. Skriv inn i søkefeltet Avanserte egendefinerte felt, og klikk Søk plugger:

På søkeresultatskjermbildet finner du Avanserte egendefinerte felt, og klikk Installere nå.

Når du har installert, aktiver pluginet.

Fjerner vårt egendefinerte felt

Da vi bruker Avanserte egendefinerte felt for å generere våre egendefinerte metakasser og -felter, er den raskeste måten å fjerne vårt egendefinerte felt generert i den andre delen av denne serien, å last ned koden fra del 1 i denne opplæringsserien.

Vent, hva var del 2 om?

I stedet for å bare hoppe rett inn i bruk av avanserte egendefinerte felt, forklarte vi detaljert hvordan prosessen virker for registrering av egendefinerte metakasser, egendefinerte felt, lagring av data og henting av data. 

 Ved å gjøre dette har vi en klarere ide om hvordan Advanced Custom Fields fungerer, samt å se hvor mye raskere det er (for ikke å nevne et bedre brukergrensesnitt).

Opprette en feltgruppe

Klikk på Egendefinerte felt i WordPress administrasjonsmenyen:

Du vil se Feltgrupper skjerm. Tenk på en feltgruppe som en tilpasset meta-boks som vi beskrev i del 2. La oss lage vår første feltgruppe ved å klikke Legg til ny ved siden av feltgruppe tittelen:

Ring på feltgruppen Kontaktinformasjon, og klikk deretter på Legg til felt knappen for å legge til vårt første felt:

Skriv inn følgende detaljer:

Felt Verdi
Feltetikett Epostadresse
Feltype e-post
Må? Ja

Rull ned til plassering eske. Vi vil at denne feltgruppen bare skal vises på vår Ta kontakt med egendefinert innleggstype, så la oss legge til en betingelse ved å velge Vis denne feltgruppen hvis Post Type er lik kontakt:

Rull ned til alternativboksen. Sett Best.nr. til 1, Stil til Standard og merk av alle boksene for Skjul på skjermen, bortsett fra Innholdsredigerer alternativ:

Klikk publisere, og feltgruppen vil bli lagret.

La oss sjekke vårt felt er tilgjengelig på vår Kontakt Post Type, ved å gå til Kontakter> Legg til nytt i WordPress dashbordet:

Gå videre og skriv inn et navn og en e-postadresse for kontakten din, og klikk publisere. Du får se hvordan Advanced Custom Fields håndterer alle felt validering, lagring og lesing av tilpassede feltdata.

La oss legge til flere felt til vår eksisterende Field Group. Rediger Kontaktinformasjon feltgruppe du opprettet ovenfor, og legg til følgende felt:

Telefonnummer
Felt Verdi
Feltetikett Telefonnummer
Feltype Nummer
Må? Ja
Bilde
Felt Verdi
Feltetikett Bilde
Feltype Bilde
Må? Nei
Type
Felt Verdi
Feltetikett Type
Feltype Å velge
Må? Ja
Choices Utsikt: Utsikt
Kunde: Kunde

Du er velkommen til å legge til andre felt eller informasjon du normalt vil lagre for dine kunder og potensielle kunder.

Når du er ferdig, klikk Oppdater, og begynn å legge til, redigere og administrere kontaktene dine:

Forhindre egendefinerte feltendringer

Vi vil ikke at andre WordPress-administratorer endrer disse feltene (eller verre, sletter dem), da det ville bety at vi ikke kan vise eller redigere en kontaktinformasjon.

Åpne pluginfilen vi opprettet tidligere, og legg til følgende før klasse WPTutsCRM :

/ ** * Angi Avanserte egendefinerte felt til Lite-modus, slik at det ikke vises * i WordPress Administrasjonsmeny * / define ('ACF_LITE', true);

Lagre pluginfilen og last inn WordPress-administrasjonsgrensesnittet. Du vil se at Egendefinerte felt menyoppføringen er forsvunnet:

Programmatisk Definer egendefinerte felt

Vi kan gå et skritt videre og definere programmene våre tilpassede felt, i stedet for å stole på brukergrensesnittet for Avanserte egendefinerte felt-plugin for å definere dem. 

 Dette ville være nyttig hvis vi for eksempel skulle distribuere vårt CRM-plugin til flere WordPress-installasjoner. Det ville være tidkrevende å:

  • installer CRM-plugin,
  • installer avanserte egendefinerte felt
  • definer våre feltgrupper og egendefinerte felt

Fjern følgende kode fra plugin-modulen, slik at vi kan få tilgang til den igjen via WordPress-administrasjonen:

/ ** * Angi Avanserte egendefinerte felt til Lite-modus, slik at det ikke vises * i WordPress Administrasjonsmeny * / define ('ACF_LITE', true);

I WordPress-administrasjonen klikker du på Egendefinerte felt, og klikk deretter på Eksport alternativ.

Herfra, la oss velge Kontaktinformasjon gruppe og klikk på Eksporter til PHP alternativ:

Enkeltklikk koden som vises på skjermen, som vil markere alt. Kopier dette til utklippstavlen din, og lim det inn i en ny funksjon i Plugin:

/ ** * Registrer ACF-feltgrupper og -felt * / funksjon acf_fields () hvis (function_exists ("register_field_group")) register_field_group (array ('id' => 'acf_contact-details', 'title' => 'Kontaktdetaljer ',' fields '=> array (array (' key '=>' field_5323276db7e18 ',' label '=>' E-postadresse ',' navn '=>' email_address ',' type '=>' email ' '=>', 'Default_value' => ", 'placeholder' =>", 'prepend' => ", 'append' =>",), array ('key' => 'field_53232a6cf3800', 'label' > 'Telefonnummer', 'navn' => 'telefonnummer', 'type' => 'nummer', 'default_value' => ", 'placeholder' =>", 'prepend' => ", 'append' => ", 'min' =>", 'max' => ", 'trinn' =>",), array ('key' => 'field_53232aa9f3801', 'label' => 'Foto', 'navn' => 'bilde', 'type' => 'bilde', 'save_format' => 'objekt', 'preview_size' => 'miniatyrbilde', 'bibliotek' => 'alle' field_53232c2ff3802 ',' label '=>' Type ',' navn '=>' type ',' type '=>' velg ',' required '=> 1,' choices '=> array (' Prospect '=>' Prospect ',' Custome r '=>' Kunde '),' default_value '=> ",' allow_null '=> 0,' multiple '=> 0,),),' location '=> > 'post_type', 'operator' => '==', 'value' => 'kontakt', 'order_no' => 0, 'group_no' => 0,),),), 'options' => array ('position' => 'normal', 'layout' => 'standard', 'hide_on_screen' => array (0 => 'permalink', 1 => 'utdrag', 2 ​​=> 'custom_fields', 3 => 4 => 'kommentarer', 5 => 'revisjoner', 6 => 'slug', 7 => 'forfatter', 8 => 'format', 9 => 'featured_image', 10 => ' kategorier ', 11 =>' tags ', 12 =>' send-trackbacks ',),),' menu_order '=> 1,));  

Deretter deaktiverer du Plugin for avanserte egendefinerte felt, og flytter deretter avansert-custom-felt plugin mappe inn i vår Tuts-crm mappe:

Ved å flytte Avanserte egendefinerte felt utenfor Plugins-katalogen, må vi manuelt aktivere det fra vår Plugin. La oss gjøre det ved å legge til følgende kode før klasse WPTutsCRM :

include_once ('advanced-custom-fields / acf.php'); define ('ACF_LITE', true);

Til slutt må vi fortelle Avanserte egendefinerte felt at vi har programmatisk definerte feltgrupper og egendefinerte felt. Endre pluginets konstruksjon til under:

/ ** * Constructor. Kalt når plugin er initialisert * / funksjon __construct () add_action ('init', array ($ this, 'register_custom_post_type')); add_action ('plugins_loaded', array ($ dette, 'acf_fields')); 

Last inn WordPress-dashbordet, og opprett og / eller rediger en kontakt. Du ser at våre feltgrupper og egendefinerte felt forblir på plass.

ulemper

Kombinere et plugin i et plugin er ikke alltid den beste tilnærmingen. Selv om det tillater oss å distribuere pluginet vårt raskt over flere WordPress-installasjoner i et enkelt trinn, må vi utgjøre en oppdatering til pluginet vårt hver gang:

  • Feltene er opprettet, redigert eller ødelagt
  • Avanserte egendefinerte felt har en oppdatering tilgjengelig

Avhengig av brukstilstanden din, kan du foretrekke denne bundne tilnærmingen. Hvis du kjører dette på et enkelt nettsted, kan brukergrensesnittet for å definere feltgrupper og egendefinerte felt være en raskere og enklere tilnærming.

Neste…

I neste artikkel skal vi redigere WordPress Administration-tabellen (også kjent som WP_List_Table) for å vise våre avanserte egendefinerte felt.