Si usted es un diseñador, desarrollador o empresario independiente, sabrá lo difícil que es mantener un almacén central de datos de clientes potenciales. Una vez que haya logrado eso, a veces es difícil mantener esos datos actualizados: registrar las llamadas que ha realizado a la perspectiva, los correos electrónicos que ha enviado, etc..
Específicamente, exploraremos el registro de un tipo de publicación personalizada, la creación de campos de publicación personalizados, la visualización de los campos de publicación personalizados en la interfaz de administración de WordPress, la búsqueda de nuestros datos de campo personalizados y la conversión de la interfaz de administración de WordPress en una interfaz ligera de CRM.
Si bien existen complementos gratuitos y premium de WordPress CRM (como WP-CRM) y servicios de CRM de terceros (como Salesforce o Highrise), son demasiado complejos para comenzar a usarlos rápidamente o tienen características que pueden no ser ideales para nuestro particular flujo de trabajo.
Al implementar nuestra propia solución, podemos crear una solución liviana y simple, que podría extenderse en el futuro en función de sus requisitos específicos. Además, aprenderemos cómo usar algunas de las funciones de la API de WordPress.
Para esta serie, crearemos un complemento de WordPress y extenderemos su funcionalidad a través de cada parte de esta serie..
El código fuente se proporcionará en su totalidad al final de cada artículo, pero hasta entonces, vamos a crear el complemento paso a paso..
Primero, en su instalación local de WordPress, cree un directorio en wp-content / plugins
llamado tuts-crm
. A partir de aquí, comenzaremos a añadir nuestro código fuente..
Crear un archivo llamado tuts-crm.php
, Insertando el siguiente código:
Como verás, esto es solo un comentario de PHP. Sin embargo, WordPress escanea esto para averiguar:
En el panel de WordPress, active su nuevo complemento yendo a "Complementos"> "Complementos instalados", y luego haga clic en "Activar" junto al complemento de CRM:
Con cualquier sitio web de WordPress que tenga cualquier número posible y combinación de complementos, es posible que el nombre de una función que elijamos usar (como crm ()
) entra en conflicto con otro plugin que usa el mismo.
La mayoría de los complementos solucionan este problema utilizando una exista función ()
comprobar:
if (! function_exists ('crm')) function crm () // Haz algo aquí
Si bien esto evita que su sitio de WordPress se detenga, no hace que su complemento funcione si hay un conflicto.
Un enfoque alternativo orientado a objetos es envolver sus funciones en una clase orientada a objetos. Continuemos y hagamos eso agregando lo siguiente debajo del comentario del encabezado del complemento:
clase WPTutsCRM / ** * Constructor. Se llama cuando se inicializa el complemento * / function __construct () $ wpTutsCRM = new WPTutsCRM;
Esto crea nuestra clase de PHP, junto con una construcción, que se llama cuando llegamos a la línea $ wpTutsCRM = nuevo WPTutsCRM;
A continuación, debemos registrar un tipo de publicación personalizada, que almacenará cada contacto en nuestro sistema CRM.
Del Codex:
WordPress puede contener y mostrar muchos tipos diferentes de contenido. Por lo general, un solo elemento de dicho contenido se denomina publicación, aunque la publicación también es un tipo de publicación específica. Internamente, todos los tipos de publicaciones se almacenan en el mismo lugar, en la tabla de base de datos wp_posts, pero se diferencian por una columna denominada tipo_puesta.
WordPress 3.0 le brinda la capacidad de agregar sus propios tipos de publicaciones personalizadas y de usarlas de diferentes maneras..
Las páginas y las publicaciones son dos tipos comunes de publicaciones de WordPress. Podemos ampliar la funcionalidad de WordPress agregando nuestro propio tipo de publicación personalizada. Hagamos esto registrando un acción
a nuestro constructor de Plugin:
function __construct () add_action ('init', array ($ this, 'register_custom_post_type'));
Esto le dice a WordPress que ejecute el register_custom_post_type
Funciona dentro de nuestra clase cuando se inicializa nuestro plugin.
A continuación, agregue el register_custom_post_type
función:
/ ** * Registra un tipo de publicación personalizado llamado contact * / function register_custom_post_type () register_post_type ('contact', array ('labels' => array ('name' => _x ('Contacts', 'Post tipo general name' , 'tuts-crm'), 'singular_name' => _x ('Contact', 'post type singular name', 'tuts-crm'), 'menu_name' => _x ('Contacts', 'admin menu', ' tuts-crm '),' name_admin_bar '=> _x (' Contacto ',' agregar nuevo en la barra de administración ',' tuts-crm '),' add_new '=> _x (' Agregar nuevo ',' contacto ',' tuts -crm '),' add_new_item '=> __ (' Add New Contact ',' tuts-crm '),' new_item '=> __ (' New Contact ',' tuts-crm '),' edit_item '=> __ ('Editar contacto', 'tuts-crm'), 'view_item' => __ ('Ver contacto', 'tuts-crm'), 'all_items' => __ ('Todos los contactos', 'tuts-crm') , 'search_items' => __ ('Search Contacts', 'tuts-crm'), 'parent_item_colon' => __ ('Parent Contacts:', 'tuts-crm'), 'not_found' => __ ('No conttacts encontrado. ',' tuts-crm '),' not_found_in_trash '=> __ (' No se encontraron contactos en la Papelera. ',' tuts-crm '),), // Frontend' has_archive '=> false, 'public' => false, 'publicly_queryable' => false, // Admin 'capacity_type' => 'post', 'menu_icon' => 'dashicons-businessman', 'menu_position' => 10, 'query_var' = > verdadero, 'show_in_menu' => verdadero, 'show_ui' => verdadero, 'apoya' => matriz ('título', 'autor', 'comentarios',),));
Esto registra un tipo de mensaje personalizado llamado contacto. register_post_type
acepta el siguiente conjunto de argumentos:
llave | Descripción |
---|---|
etiquetas | Una matriz de etiquetas que describen este tipo de publicación. Estos se utilizan dentro de la administración de WordPress. |
has_archive | Habilita archivos en el sitio web frontend.. |
público | Si el tipo de publicación debería estar disponible en la administración de Wordpress y en el sitio web de frontend. |
publery_queryable | Si se puede consultar este tipo de publicación personalizada desde el sitio web de frontend. |
capacidad_tipo | Se utiliza para definir las capacidades que el usuario debe tener para agregar, editar y eliminar publicaciones para este tipo de publicación. Esto podría ser una capacidad existente (como enviar ) |
menu_icon | Ya sea la URL a la imagen del icono del menú, o una dashicons- clase (3.8 o superior). Utilizado en la Administración de WordPress. |
menu_position | Un número que indica dónde está en el menú de administración de WordPress para mostrar este elemento. El número más bajo significa que aparece más pronto. |
consulta_var | Establece el query_var para este tipo de publicación. Por defecto es el nombre del tipo de publicación personalizada. |
show_in_menu | Ya sea para mostrar este tipo de publicación personalizada en el menú de administración de WordPress. |
show_ui | Ya sea para generar una interfaz de usuario en la Administración de WordPress para permitir agregar, editar y eliminar publicaciones para este tipo de publicación personalizada. |
apoya | Una matriz que detalla los campos disponibles para este tipo de publicación personalizada. Ejemplos incluyen título , editor , extracto y atributos de página |
Guarde su complemento y luego vea su panel de WordPress. Debería ver una nueva entrada de menú llamada Contactos:
Haga clic en esta entrada, y debería ver una interfaz familiar a la que utiliza para administrar publicaciones y páginas:
Sigamos adelante y agreguemos nuestro primer contacto. Haga clic en "Agregar nuevo" y luego coloque "Joe Bloggs" en el campo "Título", antes de hacer clic en "Publicar".
Por último, tenemos que comprobar el tipo de mensaje personalizado guardado. Haga clic en "Contactos" en el menú de administración de WordPress, y debería ver nuestro nuevo contacto:
En el siguiente artículo, agregaremos campos personalizados a nuestro Tipo de mensaje personalizado de contacto, lo que nos permitirá almacenar más información sobre nuestros clientes potenciales y clientes..