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..
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:
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.
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.
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.
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)..
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 | |
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:
Champ | Valeur |
---|---|
Étiquette de champ | Numéro de téléphone |
Type de champ | Nombre |
Champs obligatoires? | Oui |
Champ | Valeur |
---|---|
Étiquette de champ | Photo |
Type de champ | Image |
Champs obligatoires? | Non |
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:
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:
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:
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..
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:
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..
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.