Créer un CRM simple dans WordPress Champs personnalisés avancés

Nous avons cherché à créer un système CRM simple dans WordPress. Dans la dernière partie de cette série, nous avons ajouté un champ d'adresse électronique personnalisé à notre type de publication personnalisée Contacts. Nous avons appris à écrire et à lire ces données de champ personnalisées et à mettre en œuvre un nonce pour garantir la sécurité de nos envois de formulaires..

Aujourd'hui, nous verrons comment utiliser Advanced Custom Fields, un plug-in WordPress populaire, pour générer rapidement des champs personnalisés..

Champs personnalisés avancés

La création de champs personnalisés pour un type de publication prend beaucoup de temps et nous avons identifié les principales considérations de sécurité au cours du processus. Pour un CRM, où nous pouvons avoir plusieurs types de champs différents, tels qu'un menu déroulant de sélection ou des cases à cocher, la création manuelle de champs dans un plug-in prendrait beaucoup de temps..

Advanced Custom Fields est un plugin WordPress fournissant une interface utilisateur et des méthodes de programmation permettant de créer des méta-boîtes personnalisées et des champs personnalisés pour tous les types de publication.. 

 Il fournit également une plus grande gamme de types de champs de formulaire, tels que:

  • éditeurs visuels
  • nombre / plage
  • mot de passe
  • email
  • image
  • sélectionner
  • case à cocher
  • objets de poste
  • Google Maps

Les méta-boîtes personnalisées et leurs champs peuvent être associés à des conditions. Ils ne sont donc affichés qu'en fonction du type de publication ou de la valeur d'un autre champ. Ceci est vraiment utile si nous voulons uniquement afficher un champ lorsqu'une case à cocher est cochée, par exemple.

Installation de champs personnalisés avancés

Aller au Plugins> Ajouter un nouveau dans votre tableau de bord WordPress. Dans la zone de recherche, entrez Champs personnalisés avancés, et cliquez Plugins de recherche:

Dans l’écran des résultats de la recherche, trouvez Champs personnalisés avancés, et cliquez Installer maintenant.

Une fois installé, activez le plugin.

Supprimer notre champ personnalisé

Comme nous allons utiliser Advanced Custom Fields pour générer nos zones et champs de méta personnalisés, le moyen le plus rapide de supprimer notre champ personnalisé généré dans la seconde partie de cette série consiste à: téléchargez le code de la partie 1 de ce tutoriel.

Attendez, quelle était la partie 2??

Plutôt que de passer directement à l'utilisation de champs personnalisés avancés, nous avons expliqué en détail le fonctionnement du processus d'enregistrement de boîtes méta personnalisées, de champs personnalisés, de sauvegarde et de récupération de données.. 

 En faisant cela, nous avons une idée plus claire du fonctionnement de Advanced Custom Fields, ainsi que de son accélération (sans parler d’une meilleure interface utilisateur)..

Créer un groupe de terrain

Cliquer sur Les champs personnalisés dans le menu d'administration de WordPress:

Vous verrez le Groupes de terrain écran. Pensez à un groupe de champs comme à une méta-boîte personnalisée décrite dans la partie 2. Créons notre premier groupe de champs en cliquant sur Ajouter un nouveau à côté du titre du groupe de champs:

Appeler le groupe de terrain Détails du contact, puis cliquez sur le Ajouter le champ bouton pour ajouter notre premier champ:

Entrez les détails suivants:

Champ Valeur
Étiquette de champ Adresse électronique
Type de champ Email
Champs obligatoires? Oui

Faites défiler jusqu'à la Emplacement boîte. Nous voulons que ce groupe de champs ne s'affiche que sur notre Contact type de message personnalisé, ajoutons donc une condition en choisissant Afficher ce groupe de champs si Post Type est égal à contact:

Faites défiler jusqu'à la zone d'options. Met le Numéro de commande. à 1, Style à la norme et cochez toutes les cases pour Masquer à l'écran, à l'exception du Éditeur de contenu option:

Cliquez sur Publier, et le groupe de terrain sera enregistré.

Vérifions que notre champ est disponible dans notre type de contact, en allant à Contacts> Ajouter un nouveau dans le tableau de bord WordPress:

Allez-y et entrez un nom et une adresse électronique pour votre contact, puis cliquez sur Publier. Vous verrez comment Advanced Custom Fields gère la validation, l'enregistrement et la lecture des données de champs personnalisés..

Ajoutons encore quelques champs à notre existant Groupe de terrain. Modifier le Détails du contact groupe de champs que vous avez créé ci-dessus et ajoutez les champs suivants:

Numéro de téléphone
Champ Valeur
Étiquette de champ Numéro de téléphone
Type de champ Nombre
Champs obligatoires? Oui
Photo
Champ Valeur
Étiquette de champ Photo
Type de champ Image
Champs obligatoires? Non
Type
Champ Valeur
Étiquette de champ Type
Type de champ Sélectionner
Champs obligatoires? Oui
Les choix Prospect: Prospect
Client: Client

N'hésitez pas à ajouter d'autres champs ou informations que vous stockeriez normalement pour vos clients et prospects.

Lorsque vous avez terminé, cliquez sur Mettre à jour, et commencez à ajouter, modifier et gérer vos contacts:

Empêcher les modifications de champs personnalisés

Nous ne voulons pas que d'autres administrateurs WordPress modifient ces champs (ou pire, les suppriment), car cela signifierait que nous ne pouvons pas afficher ou modifier les informations d'un contact..

Ouvrez le fichier de plugin créé précédemment et ajoutez les éléments suivants avant classe WPTutsCRM :

/ ** * Définissez les champs personnalisés avancés en mode Lite pour qu’ils ne s'affichent pas * dans le menu Administration de WordPress * / define ('ACF_LITE', true);

Enregistrez le fichier de plug-in et rechargez l'interface d'administration WordPress. Vous verrez que le Les champs personnalisés l'entrée de menu a disparu:

Définir par programme les champs personnalisés

Nous pourrions aller plus loin et définir par programme nos champs personnalisés, au lieu de nous fier à l'interface utilisateur du plug-in Advanced Custom Fields pour les définir.. 

 Cela serait utile si, par exemple, nous distribuions notre plug-in CRM sur plusieurs installations WordPress. Il faudrait beaucoup de temps pour:

  • installer le plugin CRM,
  • installer Advanced Custom Fields
  • définir nos groupes de champs et champs personnalisés

Supprimez le code suivant de notre plugin pour que nous puissions y accéder à nouveau via l’administration WordPress:

/ ** * Définissez les champs personnalisés avancés en mode Lite pour qu’ils ne s'affichent pas * dans le menu Administration de WordPress * / define ('ACF_LITE', true);

Dans l'administration WordPress, cliquez sur Les champs personnalisés, puis cliquez sur le Exportation option.

De là, sélectionnons le Détails du contact groupe et cliquez sur le Exporter en PHP option:

Cliquez une fois sur le code qui apparaît à l'écran pour tout mettre en évidence. Copiez ceci dans votre presse-papiers et collez-le dans une nouvelle fonction de votre plugin:

/ ** * Enregistrer les groupes et champs de champs ACF * / function acf_fields () if (function_exists ("register_field_group")) register_field_group (array ('id' => 'acf_contact-details', 'title' => 'Coordonnées ',' fields '=> array (array (' key '=>' field_5323276db7e18 ',' label '=>' Adresse email ',' name '=>' adresse_mail ',' type '=>' adresse email ',' requis '=> 1,' default_value '=> ",' placeholder '=>",' prepend '=> ",' append '=>",), array (' key '=>' field_53232a6cf3800 ',' label '= > 'Phone Number', 'name' => 'phone_number', 'type' => 'number', 'default_value' => ", 'placeholder' =>", 'prepend' => ", 'append' => ", 'min' =>", 'max' => ", 'step' =>",), array ('key' => 'field_53232aa9f3801', 'label' => 'Photo', 'name' => 'photo', 'type' => 'image', 'save_format' => 'objet', 'preview_size' => 'thumbnail', 'library' => 'all',), array ('key' => ' field_53232c2ff3802 ',' label '=>' Type ',' name '=>' type ',' type '=>' select ',' required '=> 1,' choices '=> array (' Prospect '=>' Prospect ',' Custome r '=>' Client ',),' default_value '=> "," allow_null "=> 0,' multiple '=> 0,),),' location '=> array (array (array (' param '= > 'post_type', 'operator' => '==', 'value' => 'contact', 'order_no' => 0, 'group_no' => 0,),),), 'options' => tableau ('position' => 'normal', 'layout' => 'default', 'hide_on_screen' => array (0 => 'permalink', 1 => 'extrait', 2 => 'custom_fields', 3 => 'discussion', 4 => 'commentaires', 5 => 'révisions', 6 => 'slug', 7 => 'auteur', 8 => 'format', 9 => 'Featured_image', 10 => ' categories ', 11 =>' tags ', 12 =>' send-trackbacks ',),),' menu_order '=> 1,));  

Désactivez ensuite le plug-in Advanced Custom Fields, puis déplacez le advanced-custom-fields dossier du plugin dans notre tuts-crm dossier:

En déplaçant Advanced Custom Fields en dehors du répertoire Plugins, nous devrons l'activer manuellement à partir de notre plugin. Faisons cela en ajoutant le code suivant avant classe WPTutsCRM :

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

Enfin, nous devons indiquer à Advanced Custom Fields que nous avons défini par programme des groupes de champs et des champs personnalisés. Changez la construction de notre plugin en ci-dessous:

/ ** * Constructeur. Appelé quand le plugin est initialisé * / function __construct () add_action ('init', array ($ this, 'register_custom_post_type')); add_action ('plugins_loaded', array ($ this, 'acf_fields')); 

Rechargez le tableau de bord WordPress et créez et / ou modifiez un contact. Vous verrez que nos groupes de champs et nos champs personnalisés restent en place..

Désavantages

Regrouper un plugin dans un plugin n'est pas toujours la meilleure approche. Bien que cela nous permette de distribuer notre plugin rapidement à travers plusieurs installations WordPress en une seule étape, nous aurions besoin de publier une mise à jour de notre plugin à chaque fois:

  • les champs sont créés, modifiés ou détruits
  • Advanced Custom Fields a une mise à jour disponible

Selon votre cas d'utilisation, vous préférerez peut-être cette approche groupée. Si vous l'exécutez sur un seul site, l'utilisation de l'interface utilisateur pour définir vos groupes de champs et vos champs personnalisés peut s'avérer une approche plus rapide et plus simple..

Suivant…

Dans le prochain article, nous allons modifier le tableau d’administration de WordPress (également appelé WP_List_Table) pour afficher nos champs personnalisés avancés.