Erstellen Sie ein einfaches CRM in WordPress Erweiterte benutzerdefinierte Felder

Wir haben untersucht, wie Sie ein einfaches CRM-System in WordPress erstellen können. Im letzten Teil dieser Serie haben wir unserem benutzerdefinierten Kontakttyp "Kontakte" ein benutzerdefiniertes E-Mail-Adressfeld hinzugefügt. Wir haben gelernt, wie Sie diese benutzerdefinierten Felddaten schreiben und lesen und eine Nonce implementieren, um sicherzustellen, dass unsere Formularsendungen sicher sind.

Heute erfahren Sie, wie Sie mit Advanced Custom Fields, einem bekannten WordPress-Plugin, schnell benutzerdefinierte Felder erstellen können.

Erweiterte benutzerdefinierte Felder

Das Erstellen benutzerdefinierter Felder für einen Beitragstyp ist zeitaufwändig, und wir haben wichtige Sicherheitsüberlegungen im Prozess ermittelt. Für ein CRM, in dem wir verschiedene, unterschiedliche Feldtypen haben können, z. B. eine Auswahl-Dropdown-Liste oder Kontrollkästchen, würde das manuelle Erstellen von Feldern in einem Plug-In viel Zeit in Anspruch nehmen.

Advanced Custom Fields ist ein WordPress-Plugin, das sowohl eine Benutzeroberfläche als auch programmatische Methoden zum Erstellen von benutzerdefinierten Meta-Boxen und benutzerdefinierten Feldern für jeden Beitragstyp bietet. 

 Es bietet auch eine größere Auswahl an Formularfeldtypen, z.

  • visuelle Editoren
  • Anzahl / Bereich
  • Passwort
  • Email
  • Bild
  • wählen
  • Kontrollkästchen
  • Post-Objekte
  • Google Maps

Benutzerdefinierte Metaboxen und ihre Felder können mit Bedingungen verbunden sein. Sie werden daher nur basierend auf dem Beitragstyp oder dem Wert eines anderen Felds angezeigt. Dies ist sehr nützlich, wenn wir ein Feld nur anzeigen möchten, wenn beispielsweise ein Kontrollkästchen aktiviert ist.

Erweiterte benutzerdefinierte Felder installieren

Gehe zum Plugins> Neu hinzufügen in Ihrem WordPress-Dashboard. Geben Sie im Suchfeld ein Erweiterte benutzerdefinierte Felder, und klicken Sie auf Plugins suchen:

Suchen Sie im Bildschirm mit den Suchergebnissen Erweiterte benutzerdefinierte Felder, und klicken Sie auf Jetzt installieren.

Aktivieren Sie nach der Installation das Plugin.

Unser benutzerdefiniertes Feld entfernen

Da wir erweiterte benutzerdefinierte Felder verwenden, um unsere benutzerdefinierten Metaboxen und Felder zu generieren, können Sie unser benutzerdefiniertes Feld, das im zweiten Teil dieser Serie generiert wurde, am schnellsten entfernen Laden Sie den Code aus Teil 1 dieser Tutorialserie herunter.

Warten Sie, worum es in Teil 2 ging?

Anstatt direkt mit den erweiterten benutzerdefinierten Feldern zu beginnen, haben wir ausführlich erklärt, wie der Prozess zum Registrieren von benutzerdefinierten Meta-Boxen und benutzerdefinierten Feldern, zum Speichern von Daten und zum Abrufen von Daten funktioniert. 

 Auf diese Weise haben wir eine klarere Vorstellung davon, wie Advanced Custom Fields funktioniert und wie viel schneller es ist (ganz zu schweigen von einer besseren Benutzeroberfläche)..

Erstellen einer Feldgruppe

Klicke auf Benutzerdefinierte Felder im WordPress-Verwaltungsmenü:

Sie werden das sehen Feldgruppen Bildschirm. Stellen Sie sich eine Feldgruppe als benutzerdefinierte Meta-Box vor, die wir in Teil 2 beschrieben haben. Lassen Sie uns unsere erste Feldgruppe erstellen, indem Sie auf klicken Neue hinzufügen neben dem Feldgruppentitel:

Rufen Sie die Feldgruppe auf Kontakt details, und klicken Sie dann auf Feld hinzufügen Schaltfläche, um unser erstes Feld hinzuzufügen:

Geben Sie die folgenden Details ein:

Feld Wert
Feldbezeichnung E-Mail-Addresse
Feldtyp Email
Erforderlich? Ja

Scrollen Sie nach unten zu Ort Box. Wir möchten, dass diese Feldgruppe nur auf unserer angezeigt wird Kontakt benutzerdefinierten Beitragstyp. Fügen Sie also eine Bedingung hinzu, indem Sie auswählen Diese Feldgruppe anzeigen, wenn der Post-Typ dem Kontakt entspricht:

Blättern Sie nach unten zum Optionsfeld. Stellen Sie das ein Best.-Nr. zu 1, Stil zu Standard und markieren Sie alle Kästchen für Auf dem Bildschirm ausblenden, außer der Content-Editor Möglichkeit:

Klicken Veröffentlichen, und die Feldgruppe wird gespeichert.

Lassen Sie uns überprüfen, ob unser Feld in unserem Kontaktpost-Typ verfügbar ist, indem Sie zu gehen Kontakte> Neu hinzufügen im WordPress-Dashboard:

Geben Sie einen Namen und eine E-Mail-Adresse für Ihren Kontakt ein und klicken Sie auf Veröffentlichen. Sie erfahren, wie Erweiterte benutzerdefinierte Felder alle Feldüberprüfungen handhaben, speichern und benutzerdefinierte Felddaten lesen.

Fügen wir noch einige Felder zu unserem bestehenden hinzu Feldgruppe. Bearbeiten Sie die Kontakt details Feldgruppe, die Sie oben erstellt haben, und fügen Sie die folgenden Felder hinzu:

Telefonnummer
Feld Wert
Feldbezeichnung Telefonnummer
Feldtyp Nummer
Erforderlich? Ja
Foto
Feld Wert
Feldbezeichnung Foto
Feldtyp Bild
Erforderlich? Nein
Art
Feld Wert
Feldbezeichnung Art
Feldtyp Wählen
Erforderlich? Ja
Auswahlmöglichkeiten Prospekt: ​​Prospekt
Kunde: Kunde

Sie können auch andere Felder oder Informationen hinzufügen, die Sie normalerweise für Ihre Kunden und Interessenten speichern.

Wenn Sie fertig sind, klicken Sie auf Aktualisieren, und beginnen Sie, Ihre Kontakte hinzuzufügen, zu bearbeiten und zu verwalten:

Benutzerdefinierte Feldänderungen verhindern

Wir möchten nicht, dass andere WordPress-Administratoren diese Felder ändern (oder schlimmer, sie löschen), da dies bedeuten würde, dass wir die Informationen eines Kontakts nicht anzeigen oder bearbeiten können.

Öffnen Sie die Plugin-Datei, die Sie zuvor erstellt haben, und fügen Sie die folgenden Informationen hinzu Klasse WPTutsCRM :

/ ** * Setzen Sie Advanced Custom Fields auf den Lite-Modus, damit er nicht im WordPress-Verwaltungsmenü angezeigt wird * / define ('ACF_LITE', true);

Speichern Sie die Plugin-Datei und laden Sie die WordPress-Administrationsoberfläche erneut. Sie werden das sehen Benutzerdefinierte Felder Menüeintrag ist verschwunden:

Benutzerdefinierte Felder programmgesteuert definieren

Wir könnten einen Schritt weiter gehen und unsere benutzerdefinierten Felder programmatisch definieren, anstatt uns auf die Benutzeroberfläche des Advanced Custom Fields-Plugins zu verlassen, um sie zu definieren. 

 Dies wäre nützlich, wenn wir beispielsweise unser CRM-Plugin auf mehrere WordPress-Installationen verteilen würden. Es wäre zeitaufwändig,

  • Installieren Sie das CRM-Plugin,
  • Erweiterte Benutzerdefinierte Felder installieren
  • Definieren Sie unsere Feldgruppen und benutzerdefinierten Felder

Entfernen Sie den folgenden Code aus unserem Plugin, damit wir über die WordPress-Administration erneut darauf zugreifen können:

/ ** * Setzen Sie Advanced Custom Fields auf den Lite-Modus, damit er nicht im WordPress-Verwaltungsmenü angezeigt wird * / define ('ACF_LITE', true);

Klicken Sie in der WordPress-Administration auf Benutzerdefinierte Felder, und klicken Sie dann auf Export Möglichkeit.

Lass uns hier das auswählen Kontakt details Gruppe und klicken Sie auf die Nach PHP exportieren Möglichkeit:

Klicken Sie einmal auf den Code, der auf dem Bildschirm angezeigt wird, wodurch alle hervorgehoben werden. Kopieren Sie dies in Ihre Zwischenablage und fügen Sie es in eine neue Funktion in Ihrem Plugin ein:

/ ** * ACF-Feldgruppen und -Felder registrieren * / function acf_fields () if (function_exists ("register_field_group"))) register_field_group (array ('id' => 'acf_contact-details', 'title' => 'Kontaktdaten ',' fields '=> array (array (' key '=>' field_5323276db7e18 ',' label '=>' email address ',' name '=>' email_address ',' type '=>' email ',' erforderlich '=> 1,' default_value '=> ",' Platzhalter '=>",' vorangestellt '=> ",' anfügen '=>",), array (' key '=>' field_53232a6cf3800 ',' label '= > 'Telefonnummer', 'name' => 'phone_number', 'type' => 'number', 'default_value' => ", 'placeholder' =>", 'prepend' => ", 'append' => ", 'min' =>", 'max' => ", 'step' =>",), array ('key' => 'field_53232aa9f3801'), 'label' => 'Foto', 'name' => 'photo', 'type' => 'image', 'save_format' => 'object', 'preview_size' => 'thumbnail', 'library' => 'all',), array ('key' => ' field_53232c2ff3802 ',' label '=>' type ',' name '=>' type ',' type '=>' select ',' required '=> 1,' choice '=> array (' Prospect '=>' Prospekt ',' Custome r '=>' Customer ',),' default_value '=> ",' allow_null '=> 0,' multiple '=> 0,),),' location '=> array (array (array (' param '= > 'post_type', 'operator' => '==', 'value' => 'contact', 'order_no' => 0, 'group_no' => 0,),),), 'options' => array ('position' => 'normal', 'layout' => 'default', 'hide_on_screen' => array (0 => 'permalink', 1 => 'excerpt', 2 => 'custom_fields', 3 => 'discussion', 4 => 'comments', 5 => 'revisionen', 6 => 'slug', 7 => 'author', 8 => 'format', 9 => 'featured_image', 10 => ' Kategorien ', 11 =>' tags ', 12 =>' send-trackbacks ',),),' menu_order '=> 1,));  

Deaktivieren Sie anschließend das Advanced Custom Fields Plugin und verschieben Sie das erweiterte benutzerdefinierte Felder Plugin-Ordner in unserem Tuts-Crm Mappe:

Wenn Sie Advanced Custom Fields außerhalb des Plugins-Verzeichnisses verschieben, müssen wir es manuell in unserem Plugin aktivieren. Lassen Sie uns dazu den folgenden Code hinzufügen Klasse WPTutsCRM :

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

Schließlich müssen wir Advanced Custom Fields mitteilen, dass wir programmgesteuert Feldgruppen und benutzerdefinierte Felder definiert haben. Ändern Sie das Konstrukt unseres Plugins in das Folgende:

/** * Konstrukteur. Wird aufgerufen, wenn das Plugin initialisiert wird * / function __construct () add_action ('init', array ($ this, 'register_custom_post_type')); add_action ('plugins_loaded', array ($ this, 'acf_fields')); 

Laden Sie das WordPress-Dashboard neu und erstellen Sie einen Kontakt und / oder bearbeiten Sie ihn. Sie sehen, dass unsere Feldgruppen und benutzerdefinierten Felder unverändert bleiben.

Nachteile

Ein Plugin in einem Plugin zu bündeln, ist nicht immer der beste Ansatz. Während es uns ermöglicht, unser Plugin schnell in einem Schritt auf mehrere WordPress-Installationen zu verteilen, müssen wir jedes Mal ein Update für unser Plugin herausgeben:

  • Felder werden erstellt, bearbeitet oder gelöscht
  • Für Advanced Custom Fields ist ein Update verfügbar

Abhängig von Ihrem Anwendungsfall ziehen Sie diesen Ansatz möglicherweise vor. Wenn Sie dies auf einer einzelnen Site ausführen, kann die Verwendung der Benutzeroberfläche zum Definieren Ihrer Feldgruppen und benutzerdefinierten Felder möglicherweise schneller und einfacher sein.

Als nächstes…

Im nächsten Artikel bearbeiten wir die WordPress-Verwaltungstabelle (auch als WP_List_Table), um unsere erweiterten benutzerdefinierten Felder anzuzeigen.