Crear un CRM simple en WordPress Campos personalizados avanzados

Hemos estado viendo cómo crear un sistema de CRM simple en WordPress. En la última parte de esta serie, agregamos un campo de dirección de correo electrónico personalizado a nuestro tipo de publicación personalizada de Contactos. Aprendimos cómo escribir y leer estos datos de campo personalizados, e implementar un nonce para asegurar que nuestros envíos de formularios sean seguros.

Hoy, cubriremos cómo usar los Campos personalizados avanzados, un popular complemento de WordPress, para generar rápidamente campos personalizados.

Campos personalizados avanzados

La creación de campos personalizados para un tipo de publicación requiere mucho tiempo, y hemos identificado las principales consideraciones de seguridad en el proceso. Para un CRM, donde podemos tener varios tipos de campos diferentes, como un menú desplegable de selección o casillas de verificación, la creación manual de campos en un complemento llevaría una cantidad significativa de tiempo.

Advanced Custom Fields es un complemento de WordPress que proporciona una interfaz de usuario y métodos programáticos para crear meta box personalizados y campos personalizados en cualquier tipo de publicación.. 

 También proporciona una mayor variedad de tipos de campos de formulario, como:

  • editores visuales
  • número / rango
  • contraseña
  • correo electrónico
  • imagen
  • seleccionar
  • caja
  • publicar objetos
  • mapas de Google

Los meta box personalizados y sus campos pueden tener condiciones adjuntas, por lo que solo se muestran según el tipo de publicación o el valor de otro campo. Esto es realmente útil si solo queremos mostrar un campo cuando se marca una casilla de verificación, por ejemplo.

Instalar campos personalizados avanzados

Ve a la Plugins> Añadir Nuevo En tu panel de WordPress. En el cuadro de búsqueda, introduzca Campos personalizados avanzados, y haga clic Buscar Complementos:

En la pantalla de resultados de búsqueda, encuentra Campos personalizados avanzados, y haga clic Instalar ahora.

Una vez instalado, active el plugin..

Eliminando nuestro campo personalizado

Como usaremos Campos personalizados avanzados para generar nuestros meta cuadros y campos personalizados, la manera más rápida de eliminar nuestro campo personalizado generado en la segunda parte de esta serie es descargue el código de la Parte 1 de esta serie de tutoriales.

Espera, ¿qué era la parte 2 todo sobre?

En lugar de saltar directamente al uso de Campos personalizados avanzados, explicamos en detalle cómo funciona el proceso para registrar meta box personalizados, campos personalizados, guardar datos y recuperar datos.. 

 Al hacer esto, tenemos una idea más clara de cómo funcionan los Campos personalizados avanzados, además de ver qué tan rápido es (por no mencionar una mejor interfaz de usuario).

Creando un grupo de campo

Haga clic en Campos Personalizados En el menú de administración de WordPress:

Verá el Grupos de campo pantalla. Piense en un grupo de campo como un meta box personalizado que describimos en la Parte 2. Creemos nuestro primer grupo de campo, haciendo clic en Añadir nuevo junto al título del grupo de campo:

Llame al grupo de campo Detalles de contacto, y luego haga clic en el Agregue campo Botón para agregar nuestro primer campo:

Ingrese en los siguientes detalles:

Campo Valor
Etiqueta de campo Dirección de correo electrónico
Tipo de campo Email
Necesario?

Desplácese hasta la Ubicación caja. Queremos que este grupo de campos solo se muestre en nuestra Contacto tipo de mensaje personalizado, así que vamos a agregar una condición eligiendo Mostrar este grupo de campos si Tipo de publicación es igual a contacto:

Desplácese hacia abajo hasta el cuadro de opciones. Selecciona el N º de pedido. a 1, Estilo a Estándar y marque todas las casillas para Ocultar en pantalla, excepto el Editor de contenido opción:

Hacer clic Publicar, y el Grupo de Campo se guardará.

Verifiquemos que nuestro campo está disponible en nuestro Tipo de mensaje de contacto, yendo a Contactos> Añadir Nuevo en el panel de WordPress:

Continúe, ingrese un nombre y una dirección de correo electrónico para su contacto y haga clic en Publicar. Verá cómo Advanced Custom Fields maneja todos los campos de validación, guardado y lectura de datos de campos personalizados..

Vamos a añadir algunos campos más a nuestros existentes. Grupo de campo. Editar el Detalles de contacto grupo de campos que creó anteriormente, y agregue los siguientes campos:

Número de teléfono
Campo Valor
Etiqueta de campo Número de teléfono
Tipo de campo Número
Necesario?
Foto
Campo Valor
Etiqueta de campo Foto
Tipo de campo Imagen
Necesario? No
Tipo
Campo Valor
Etiqueta de campo Tipo
Tipo de campo Seleccionar
Necesario?
Opciones Prospecto: Prospecto
Cliente: cliente

Siéntase libre de agregar cualquier otro campo o información que normalmente almacene para sus clientes actuales y potenciales.

Cuando hayas terminado, haz clic en Actualizar, y comience a agregar, editar y administrar sus contactos:

Prevenir cambios de campos personalizados

No queremos que otros administradores de WordPress cambien estos campos (o, lo que es peor, los eliminen), ya que significaría que no podemos ver o editar la información de un contacto..

Abra el archivo de complemento que creamos anteriormente y agregue lo siguiente antes clase WPTutsCRM :

/ ** * Configure los Campos personalizados avanzados en el modo Lite, para que no aparezca * en el Menú de administración de WordPress * / define ('ACF_LITE', verdadero);

Guarde el archivo del complemento y vuelva a cargar la interfaz de administración de WordPress. Verás que el Campos Personalizados La entrada del menú ha desaparecido:

Definir programáticamente campos personalizados

Podríamos ir un paso más allá y definir programáticamente nuestros campos personalizados, en lugar de confiar en la interfaz de usuario del complemento de Campos personalizados avanzados para definirlos.. 

 Esto sería útil si, por ejemplo, distribuyéramos nuestro complemento de CRM a varias instalaciones de WordPress. Sería mucho tiempo para:

  • instalar el complemento de CRM,
  • instalar campos personalizados avanzados
  • Definir nuestros grupos de campos y campos personalizados.

Elimine el siguiente código de nuestro complemento, para que podamos acceder a él nuevamente a través de la administración de WordPress:

/ ** * Configure los Campos personalizados avanzados en el modo Lite, para que no aparezca * en el Menú de administración de WordPress * / define ('ACF_LITE', verdadero);

En la Administración de WordPress, haga clic en Campos Personalizados, y luego haga clic en el Exportar opción.

A partir de aquí, vamos a seleccionar la Detalles de contacto grupo y haga clic en el Exportar a PHP opción:

Haz un clic en el código que aparece en la pantalla, que lo resaltará todo. Copie esto en su portapapeles y péguelo dentro de una nueva función dentro de su complemento:

/ ** * Registre campos y campos de campos de ACF * / function acf_fields () if (function_exists ("register_field_group")) register_field_group (array ('id' => 'acf_contact-details', 'title' => 'Detalles de contacto ',' fields '=> array (array (' key '=>' field_5323276db7e18 ',' label '=>' Email Address ',' name '=>' email_address ',' type '=>' email ',' required '=> 1,' default_value '=> ",' placeholder '=>",' prepend '=> ",' append '=>",), array (' key '=>' field_53232a6cf3800 ',' label '= > 'Número de teléfono', 'nombre' => 'número de teléfono', 'tipo' => 'número', 'valor_valorado' => ", 'marcador de posición' =>", 'añadir' => ", 'agregar' => ", 'min' =>", 'max' => ", 'step' =>",), array ('key' => 'field_53232aa9f3801', 'label' => 'Photo', 'name' => 'photo', 'type' => 'image', 'save_format' => 'object', 'preview_size' => 'thumbnail', 'library' => 'all',), array ('key' => ' field_53232c2ff3802 ',' label '=>' Type ',' name '=>' type ',' type '=>' select ',' required '=> 1,' choices '=> array (' Prospect '=>' Prospecto ',' 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 => 'discusión', 4 => 'comentarios', 5 => 'revisiones', 6 => 'slug', 7 => 'autor', 8 => 'formato', 9 => 'Featured_image', 10 => ' categories ', 11 =>' tags ', 12 =>' send-trackbacks ',),),' menu_order '=> 1,));  

A continuación, desactive el complemento avanzado de campos personalizados y luego mueva el avanzado-campos personalizados carpeta de plugin en nuestro tuts-crm carpeta:

Al mover los campos personalizados avanzados fuera del directorio de complementos, necesitaremos activarlo manualmente desde nuestro complemento. Hagamos eso agregando el siguiente código antes clase WPTutsCRM :

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

Finalmente, debemos informar a los Campos personalizados avanzados que hemos definido de manera programática los grupos de campos y los Campos personalizados. Cambie la construcción de nuestro plugin a la siguiente:

/ ** * Constructor. Se llama cuando se inicializa el complemento * / function __construct () add_action ('init', array ($ this, 'register_custom_post_type')); add_action ('plugins_loaded', array ($ this, 'acf_fields')); 

Recargue el panel de WordPress y cree y / o edite un contacto. Verás que nuestros grupos de campos y campos personalizados permanecen en su lugar..

Desventajas

Agrupar un complemento dentro de un complemento no siempre es el mejor enfoque. Si bien nos permite distribuir nuestro complemento rápidamente a través de múltiples instalaciones de WordPress en un solo paso, deberíamos enviar una actualización a nuestro complemento cada vez que:

  • Los campos son creados, editados o destruidos.
  • Advanced Custom Fields tiene una actualización disponible

Dependiendo de su caso de uso, es posible que prefiera este enfoque combinado. Si está ejecutando esto en un solo sitio, el uso de la interfaz de usuario para definir sus Grupos de campo y Campos personalizados puede ser un enfoque más rápido y fácil.

Hasta la próxima…

En el siguiente artículo, vamos a editar la tabla de administración de WordPress (también conocida como WP_List_Table) para mostrar nuestros campos personalizados avanzados.