Maak een eenvoudige CRM in WordPress een aangepast berichttype maken

Als u een freelance ontwerper, ontwikkelaar of bedrijfseigenaar bent, weet u hoe moeilijk het is om een ​​centrale opslag van potentiële klantgegevens te houden. Als je dat eenmaal hebt gedaan, is het soms moeilijk om die gegevens up-to-date te houden - het loggen van oproepen die je hebt gedaan aan de prospect, e-mails die je hebt verzonden, enzovoort.

We zullen specifiek onderzoeken of een aangepast berichttype kan worden geregistreerd, aangepaste berichtvelden kunnen worden gemaakt, aangepaste berichtvelden kunnen worden weergegeven in de interface van WordPress Administration, onze aangepaste veldgegevens kunnen doorzoeken en de WordPress Administration-interface kunnen worden omgezet in een lichtgewicht CRM-interface.

Waarom geen CRM-plug-in (of een CRM-systeem?) Gebruiken

Hoewel gratis en premium WordPress CRM-plug-ins bestaan ​​(zoals WP-CRM) en externe CRM-services (zoals Salesforce of Highrise), zijn ze ofwel te complex om snel te gebruiken of hebben functies die misschien niet ideaal zijn voor onze specifieke workflow.

Door onze eigen oplossing te rollen, kunnen we een lichtgewicht, eenvoudige oplossing bouwen die in de toekomst kan worden uitgebreid op basis van uw specifieke vereisten. Bovendien leren we enkele functies van WordPress API gebruiken.

De CRM-plug-in maken

Voor deze serie zullen we een WordPress-plug-in maken en de functionaliteit uitbreiden via elk onderdeel in deze serie.

De broncode wordt aan het einde van elk artikel volledig weergegeven, maar tot die tijd kunnen we de plug-in stap voor stap maken.

Eerst maakt u in uw lokale installatie van WordPress een map aan in wp-content / plugins riep tuts-crm. Vanaf hier beginnen we met het toevoegen van onze broncode.

De plug-inkop

Maak een bestand met de naam tuts-crm.php, invoegen van de volgende code:

Zoals u zult zien, is dit slechts een PHP-opmerking. WordPress scant dit echter om erachter te komen:

  • de naam van de plug-in,
  • de auteur van de plug-in,
  • de beschrijving van wat de plug-in doet

In het WordPress-dashboard activeert u uw nieuwe plug-in door naar "Plug-ins"> "Geïnstalleerde plug-ins" te gaan en vervolgens te klikken op "Activeren" naast de CRM-plug-in:

Onze pluginklasse instellen

Met elke WordPress-website met een mogelijk aantal en combinatie van plug-ins, is het mogelijk dat een functienaam die we kiezen te gebruiken (zoals crm ()) conflicteert met een andere plug-in die dezelfde gebruikt.

De meeste plug-ins kunnen dit probleem omzeilen door een function_exists () controleren:

if (! function_exists ('crm')) function crm () // Doe hier iets

Hoewel dit voorkomt dat uw WordPress-site tot stilstand komt, krijgt uw plug-in geen werking als er een conflict is.

Een alternatieve objectgeoriënteerde benadering is om je functies in een objectgerichte klasse in te pakken. Laten we dat doen door het volgende toe te voegen onder de opmerking van de plug-in header:

klasse WPTutsCRM / ** * Constructor. Wordt aangeroepen wanneer de plugin wordt geïnitialiseerd * / function __construct ()  $ wpTutsCRM = new WPTutsCRM;

Hiermee wordt onze PHP-klasse gemaakt, samen met een constructie, die wordt genoemd wanneer we de regel bereiken $ wpTutsCRM = nieuwe WPTutsCRM;

Registreer ons aangepaste berichttype

Vervolgens moeten we een aangepast berichttype registreren, waarin elk contact in ons CRM-systeem wordt opgeslagen.

Van de Codex:

WordPress kan veel verschillende soorten inhoud bevatten en weergeven. Een enkel item van een dergelijke inhoud wordt meestal een post genoemd, hoewel post ook een specifiek berichttype is. Intern worden alle berichttypen opgeslagen op dezelfde plaats, in de databasetabel wp_posts, maar worden ze gedifferentieerd door een kolom genaamd post_type.

WordPress 3.0 biedt u de mogelijkheid om uw eigen aangepaste berichttypen toe te voegen en op verschillende manieren te gebruiken.

Pagina's en berichten zijn twee veelvoorkomende WordPress berichttypes. We kunnen de functionaliteit van WordPress uitbreiden door ons eigen aangepast berichttype toe te voegen. Laten we dit doen door een te registreren actie aan de constructeur van onze plugin:

function __construct () add_action ('init', array ($ this, 'register_custom_post_type'));  

Dit vertelt WordPress om het register_custom_post_type functie binnen onze klasse wanneer onze plug-in is geïnitialiseerd.

Voeg vervolgens de register_custom_post_type functie:

/ ** * Registreert een aangepast berichttype genaamd contact * / function register_custom_post_type () register_post_type ('contact', array ('labels' => array ('name' => _x ('Contacts', 'post type algemene naam' , 'tuts-crm'), 'singular_name' => _x ('Contact', 'post type singular name', 'tuts-crm'), 'menu_name' => _x ('Contacts', 'admin menu', ' tuts-crm '),' name_admin_bar '=> _x (' Contact ',' nieuw toevoegen op beheerbalk ',' tuts-crm '),' add_new '=> _x (' Nieuw toevoegen ',' contact ',' tuts -crm '),' add_new_item '=> __ (' Nieuw contact toevoegen ',' tuts-crm '),' new_item '=> __ (' Nieuw contact ',' tuts-crm '),' edit_item '=> __ ('Bewerk contact', 'tuts-crm'), 'view_item' => __ ('Bekijk contact', 'tuts-crm'), 'all_items' => __ ('Alle contacten', 'tuts-crm') , 'search_items' => __ ('Zoek contacten', 'tuts-crm'), 'parent_item_colon' => __ ('Parent Contacts:', 'tuts-crm'), 'not_found' => __ ('Geen conttacten gevonden. ',' tuts-crm '),' not_found_in_trash '=> __ (' Geen contacten gevonden in Prullenbak. ',' tuts-crm '),), // Frontend' has_archive '=> false, 'public' => false, 'publicly_queryable' => false, // Admin 'capability_type' => 'post', 'menu_icon' => 'dashicons-businessman', 'menu_position' => 10, 'query_var' = > true, 'show_in_menu' => true, 'show_ui' => true, 'supports' => array ('title', 'author', 'comments',),));  

Hiermee wordt een Aangepast berichttype geregistreerd contact. register_post_type accepteert de volgende reeks argumenten:

sleutel Omschrijving
labels Een reeks labels die dit berichttype beschrijven. Deze worden gebruikt in het WordPress-beheer.
has_archive Maakt archieven op de frontend-website mogelijk.
openbaar Of het berichttype beschikbaar moet zijn in het WordPress-beheer en de frontend-website.
publicly_queryable Of dit aangepaste berichttype kan worden opgevraagd via de frontend-website.
capability_type Gebruikt om de mogelijkheden te definiëren die de gebruiker zou moeten hebben om berichten voor dit berichttype toe te voegen, te bewerken en te verwijderen. Dit kan een bestaande mogelijkheid zijn (zoals post)
menu_icon Ofwel de URL naar de menupictogramafbeelding, of een dashicons- klasse (3.8 of hoger). Gebruikt in het WordPress-beheer.
menu_position Een nummer dat aangeeft waar in het WordPress Administration-menu dit item wordt weergegeven. Een lager nummer betekent dat het eerder verschijnt.
query_var Stelt de query_var in voor dit berichttype. Standaard ingesteld op de naam van het aangepaste berichttype.
show_in_menu Of dit aangepaste berichttype in het WordPress-beheermenu moet worden weergegeven.
show_ui Of u een gebruikersinterface in het WordPress-beheer wilt genereren om berichten voor dit aangepaste berichttype toe te staan, te bewerken of te verwijderen.
ondersteuningen Een array met de velden die beschikbaar zijn voor dit aangepaste berichttype. Voorbeelden hiervan zijn titel, editor, uittreksel en pagina-attributen

Sla uw plug-in op en bekijk uw WordPress-dashboard. U zou een nieuw menu-item moeten zien genaamd Contacten:

Klik op dit item en u zou een vertrouwde interface moeten zien die u gebruikt om berichten en pagina's te beheren:

Laten we doorgaan en ons eerste contact toevoegen. Klik op 'Nieuw toevoegen' en plaats 'Joe Bloggs' in het veld 'Titel' voordat u op 'Publiceren' klikt.

Ten slotte moeten we het aangepaste berichttype controleren. Klik terug op "Contacten" in het WordPress beheermenu, en u zou onze nieuwe contactpersoon moeten zien:

Volgende…

In het volgende artikel gaan we aangepaste velden toevoegen aan ons Aangepaste berichttype, waardoor we meer informatie kunnen opslaan over onze prospects en klanten.