Blog personal de IT, viajes y otros hobbies

Categoría: Plugins

Contact Form 7 - Cómo agregar CSS personalizado

Estilos CSS personalizados para Contact Form 7

El plugin Contact Form 7 tiene un fichero de CSS para dar estilos mínimos al formulario pero estos no siempre concuerdan con la estética de nuestra Web. Sigue los pasos de este artículo para que puedas aplicar tus propias líneas de CSS y hacer que tu formulario luzca perfecto.

Desgranando el HTML

Lo primero que tendrás que hacer es entender el HTML que genera este plugin con sus correspondientes clases, para que luego puedas atacarlas desde tu tema hijo o bien desde el personalizador.

El formulario básico

Formulario básico de Contact Form 7
Estilos de Contact Form 7 en el tema Twenty Twenty

A modo de ejemplo voy a transcribir parte de la estructura de HTML que general el Contact Form 7 y sus respectivas clases:

<form class="wpcf7-form"> <!-- (1) -->
    <p><!-- (2) -->
        <label> Tu nombre (obligatorio)<br><!-- (3) -->
            <span class="wpcf7-form-control-wrap your-name"><!-- (4) -->
                <input type="text" name="your-name" value="" size="40" class="wpcf7-form-control wpcf7-text wpcf7-validates-as-required"><!-- (5) -->
            </span>
        </label>
    </p>
    <p>
        <input type="submit" value="Enviar" class="wpcf7-form-control wpcf7-submit"><!-- (6) -->
    </p>
</form>

Como podrás ver, agregué un par de comentarios en el HTML para explicar cada uno de los puntos:

  1. Puedes ver que todo el formulario está agrupado bajo el elemento <form> con la clase .wpcf7-form la cual te servirá para atacar los estilos en forma general.
    Por ejemplo, podrías asignarle el atributo display: grid para cambiar la estructura general del mismo.
  2. Cada campo y hasta el botón de enviar se encierran automáticamente con un elemento <p>. Poco más que agregar aquí.
  3. Los campos que damos de alta en el Administrador de WordPress (a excepción del botón enviar) se encierran dentro de la etiqueta label.
  4. A su vez, cada campo se encierra en un span con algunas clases que nos facilitarán su selección para aplicar estilos. Las clases que se agregan son:
    • wpcf7-form-control-wrap: clase genérica para representar cualquier campo.
    • [campo name del input]: agrega también una clase dinámica con el mismo nombre del atributo name del input. En el ejemplo, agrega la clase your-name.
  5. Ahora sí ya estás en el input mismo, donde CF7 agrega una serie de clases en forma automática, a saber:
    • wpcf7-form-control: clase genérica para todos los campos.
    • wpcf7-text: clase con el tipo de campo configurado en el Administrador de WordPress (más adelante te mostraré las clases de los otros tipos de campos).
    • wpcf7-validates-as-required: CF7 agregará esta clase en caso de que el campo sea obligatorio.

Las clases para cada tipo de campo de Contact Form 7

  • Campo de texto => wpcf7-text
  • Campo de email => wpcf7-email
  • Campo de URL => wpcf7-url
  • Campo de teléfono => wpcf7-tel
  • Campo numérico => wpcf7-num
  • Campo fecha => wpcf7-date
  • Campo de textarea => wpcf7-textarea
  • Campo desplegable => wpcf7-select
  • Campo de verificación => wpcf7-checkbox
  • Botones de selección => wpcf7-radio
  • Campo de aceptación => wpcf7-acceptance
  • Campo de archivo => wpcf7-file

Mensajes

Tanto como si el formulario se envía correcta o incorrectamente, el plugin genera un mensaje con una estructura de HTML definida y algunas clases que podrás utilizar para modificar su estilo.

Mensaje de éxito

Mensaje de éxito de Contact Form 7
Mensaje de éxito de Contact Form 7
<!-- mensaje de éxito -->
<form class="wpcf7-form sent">
    <div class="wpcf7-response-output wpcf7-display-none wpcf7-mail-sent-ok">Gracias por tu mensaje. Ha sido enviado.</div>
</form>

Aquí puedes ver el HTML del mensaje exitoso que genera el plugin además de agregar la clase sent al formulario.

Mensaje de error

Mensaje de error de Contact Form 7
Mensaje de error de Contact Form 7
<!-- mensaje de error -->
<form class="wpcf7-form invalid">
    <div class="wpcf7-response-output wpcf7-display-none wpcf7-validation-errors">Uno o más campos tienen un error. Por favor, revísalos e inténtalo de nuevo.</div>
</form>

Al igual que el mensaje anterior, el plugin genera un HTML específico para el mensaje y también agrega la clase invalid al formulario.

Ejemplos de modificaciones

Cambios en el formulario

¿Qué tal si agregamos borde, cambiamos de color y ponemos un poco de sombra? Así quedaría el CSS final.

.wpcf7-form {
    background-color: #ffffff;
    border: 3px solid #000000;
    box-shadow: 0px 9px 21px 6px rgba(0,0,0,0.5);
    padding: 2em;
    overflow: none !important;
}

Campos con bordes animados

Ya sabes que tienes clases que afectan a todos los campos independientemente del tipo que sean. Vamos a hacer uso de esta clase para darle un toque más original al formulario.

.wpcf7-form .wpcf7-text,
.wpcf7-form .wpcf7-textarea {
    background-color: transparent ;
    border-bottom: 1px solid #001;
    border-top: 1px solid transparent;
    border-left: 1px solid transparent;
    border-right: 1px solid transparent;
    margin-bottom: 40px;
	outline: none;
	transition: 0.4s border;
}
.wpcf7-form .wpcf7-text:focus,
.wpcf7-form .wpcf7-textarea:focus,
.wpcf7-form .wpcf7-text:hover,
.wpcf7-form .wpcf7-textarea:hover {
	border: 1px dashed #001;
}

Editando el mensaje de éxito

Podemos darle al mensaje de éxito un toque más parecido a las alertas de Bootstrap. Como verás, solo basta con atacar a la clase wpcf7-mail-sent-ok que es la que se agrega al mensaje en cuanto el formulario se envía correctamente.

.wpcf7-mail-sent-ok {
    background-color: #d4edda;
    border: 2px solid #c3e6cb;
    border-radius: .55rem;
    display: block;
    color: #155724;
    font-family: roboto;
    margin-bottom: 1rem;
    padding: .75rem 1.25rem;
    position: relative;
}

Como puedes ver, la estructura de HTML puedes modificarla fácilmente desde el configurador de formularios y la estética puedes cambiarla con algunas líneas de CSS seleccionando las clases que Contact Form 7 agrega automáticamente.

Ánimo y a ajustar los colores de esos formularios 💪🏻

Flamingo Contact Form 7 WordPress

Cómo guardar en base de datos los mensajes de Contact Form 7

Ya hemos visto en el artículo anterior cómo crear nuevos formularios con Contact Form 7, pero esta configuración solamente envía correos y muestra en pantalla mensajes de éxito o error.

Pero mediante el uso de un plugin extra puedes guardar en base de datos todos los mensajes que se envíen a través de estos formularios.

¿Por qué deberías guardar los mensajes en la Base de Datos?

Te listo a continuación algunas ideas de por qué deberías implementar esta solución:

  • Problemas de correo: Los servidores de correos pueden tener fallos o caídas impidiendo que los emails lleguen a su destino. Con esta solución podrías tener una copia del mensaje en tu base de datos, a pesar de que no te haya llegado ningún correo.
  • Exportar información: Tal vez necesites guardar estos datos para luego exportarlos y hacer algún seguimiento o análisis específico.
  • Libreta de direcciones: Tal vez necesites armar una agenda de todas las personas que te contactan para luego hacer un seguimiento (como un CRM).

Para todas estas situaciones usaremos el plugin «Flamingo» el cual se adapta a la perfección al «Contact Form 7» ya que está desarrollador por el mismo programador (Takayuki Miyoshi). Puedes descargarlo siguiendo este enlace ⬇️

No tendrás que configurar NADA

Tal como lo lees, para utilizar este plugin no tienes que hacer nada más que instalarlo.

Una vez instalado, se creará un nuevo menú llamado «Flamingo» con los siguientes submenús:

Libreta de direcciones

Pantalla de Libreta de Direcciones de Flamingo
Pantalla de Libreta de Direcciones de Flamingo

En esta pantalla verás solamente los datos personales de las personas que envían sus mensajes a través de los distintos formularios de tu página Web.

En caso de que una persona envíe más de un formulario, no se duplica el registro, pero sí que se actualiza la columna de «Historial», desde donde podrás acceder a cada uno de los mensajes enviados.

También tienes el botón de «Exportar» el cual te permite rápidamente descargar todos los contactos en un fichero con formato .CSV tal como se muestra a continuación. ⬇️

"Correo electrónico","Nombre completo","Nombre","Apellidos"
"jperez@gmail.com","Juan Pérez","",""
"mgelves@gmail.com","mgelves","",""
"pgonzalez@gmail.com","Pedro González","",""
"wapuu@wordpress.example","Un comentarista de WordPress","",""

Mensajes Entrantes

Desde esta pantalla podrás ver y gestionar todos los mensajes que envían los usuarios a través de tus formularios.

Pantalla de «Mensajes Entrantes» del plugin Flamingo

Estos son algunos de los puntos más importantes de esta pantalla:

  1. Asunto: Por defecto Flamingo guarda el «Asunto» del formulario como título de los mensajes.
  2. Canal: Esta columna indica cuál es el formulario de origen del mensaje. Si haces clic en él puedes filtrar los mensajes por formularios.
  3. Exportar: Al igual que la página anterior puedes exportar los mensajes en un fichero con formato .CSV el cual tiene la siguiente estructura:
"your-name","your-email","your-subject","your-message","file-298","Fecha"
"Juan Pérez","jperez@gmail.com","2do email que envío","Este es el segundo email que envío para revisar el historial.","","2020-05-05T15:49:44+00:00"
"Juan Pérez","jperez@gmail.com","Prueba con fichero","Envío un formulario con una imagen.","600_162649732.jpeg","2020-05-05T15:25:41+00:00"
"Pedro González","pgonzalez@gmail.com","Prueba de envío","Este es el cuerpo del mensaje","","2020-05-05T15:22:43+00:00"

Cómo cambiar los campos de los mensajes entrantes

Como te contaba en el punto anterior, los campos de los mensajes entrantes se guardan a partir de los campos [your-subject], [your-name] y [your-email] que se crean por defecto cada vez das de alta un nuevo formulario.

Pero podrías cambiar estos valores para que se ajusten a los campos que hayas creado para tu proyecto. Solo tienes que ir a la pestaña de «Ajustes Adicionales» del formulario en cuestión y agregar el siguiente código pero con el ID de tus propios campos:

flamingo_email: "[email-usuario]"
flamingo_name: "[nombre-usuario]"
flamingo_subject: "[titulo-de-mensaje]"
Ajustes adicionales para cambiar los campos de los mensajes entrantes

Contact Form 7 - Cómo añadir un nuevo formulario

Cómo añadir formularios con Contact Form 7

Abro con este artículo el primero de una serie donde te estaré explicando la sencillez y robustez del plugin «Contact Form 7» para que puedas crear todo tipo de formularios y aprendas cómo manipular los datos que se envían a través de él.

Vamos a comenzar desde lo más sencillo que es cómo añadir un simple formulario a nuestra página Web.

Imagen de «Contact Form 7» en el repositorio de Plugins de WordPress

Cómo añadir un nuevo formulario

En primer lugar tendrás que instalar y activar el plugin «Contact Form 7» en tu WordPress. Una vez instalado, sigue los siguientes pasos para agregar un nuevo formulario a tu página Web:

  1. Ve a Contacto » Añadir nuevo. Un vez que se cargue la página estarás en la pestaña «formulario» donde podrás configurar los siguientes valores:
  1. Título: Aquí tendrás que especificar un título para el formulario.
  2. Campos disponibles: El plugin Contact Form 7 pone a tu disposición un conjunto de campos para que te sea muy simple armar tus formularios. Te detallo algunos de ello para que los conozcas:
    • Texto: Es el más simple de todos. Agrega un campo de texto donde el usuario puede escribir libremente.
    • Correo Electrónico: Este campo validará que el contenido tenga el formato correcto para un correo electrónico.
    • Fecha: Este campo despliega un calendario para que el usuario seleccione una fecha.
    • Área de texto: Es una caja de mayor tamaño para que el usuario pueda escribir texto libremente.
    • Menú desplegable: Este campo permite agregar un conjunto de valores para que el usuario elija uno o más de ellos desde un selector desplegable.
    • Aceptación: Agrega una simple casilla de verificación que debe estar marcada para poder enviar el formulario.
    • Cuestionario: Podemos agregar una pregunta simple al formulario para evitar el envío de SPAM. Ejemplo 2+2? = 4
    • Archivo: Este campo permite al usuario cargar un fichero para agregar al formulario.
    • Enviar: Es el botón que enviará el formulario con todos los campos anteriormente configurados.
  3. Cuerpo del formulario: Aquí podrás modificar el HTML del formulario en caso que necesites agregar algún elemento extra o una clase de CSS. Como podrás ver, los campos se agregan con formato de shortcode.

Define todos los campos que necesites y al finalizar no olvides hacer clic en el botón «Guardar» para registrar todos los cambios.

¿Cómo se envía el formulario?

Por defecto el plugin envía el formulario al correo electrónico del Administrador del WordPress, pero por supuesto que tanto esta dirección como el contenido del email puede ser configurado desde la pestaña «Correo electrónico».

Haz clic en esta pestaña o bien utiliza las fechas del teclado (⬅️➡️) para desplazarte entre ellas.

A continuación te detallo para qué sirve cada campo:

Pestaña Correo Electrónico Formulario Contact Form 7 WordPress
  1. Etiquetas: Cualquier campo que agregues al formulario en la pestaña «Formulario» tendrá un nombre único (ID) que luego podrás utilizar en el correo o bien en los mensajes (que veremos más adelante) que devuelvas a la Web.
    Como puedes ver, en este formulario tenemos a disposición los campos [fc-nombre], [fc-email], [fc-mensaje] y [fc-archivo].
  2. Para: En este campo podrás especificar a qué dirección de correo quieres enviar el formulario. Puedes agregar más de un destinatario separándolos por coma, ejemplo: tu-email@gmail.com, otro-email@gmail.com, email-nro-3@gmail.com.
  3. De: Esta campo será el remitente del correo. Para evitar que vaya a la carpeta de SPAM usa un correo con el mismo dominio que la Web desde donde se emite.
  4. Asunto: Define un título para el correo. Ej. «Nuevo Contacto desde la Web mi-web.com»
  5. Cabeceras adicionales: Aquí podrás agregar todas las cabeceras adicionales de correo que necesites. Por ejemplo:
    • Para agregar un email en copia (CC) usa la cabecera Cc: otro-email@gmail.com.
    • Para agregar un email en copia oculta (CCO) usa la cabecera Bcc: otro-email@gmail.com.
  6. Cuerpo del mensaje: Define aquí como quieres recibir el correo electrónico con todos los campos del formulario. Como ves en el ejemplo, puedes mezclar texto con las Etiquetas vistas en el punto 1.
    En el caso que agregues etiquetas HTML, no olvides marchar la casilla de «Usar contenido del tipo HTML».
  7. Archivos adjuntos: En el caso que el usuario pueda subir archivos a tu formulario podrás agregarlos como ficheros adjuntos al correo utilizando este campo. Basta simplemente con que agrueges la etiqueta del campo como ves en el ejemplo.
  8. Correo electrónico (2): Ten en cuenta que todas las configuraciones anteriores son para el correo que te llegarán a ti, pero puedes activar esta casilla para enviar un segundo correo a quién desees.
    Puede usar este segundo correo para configurar una respuesta automática al usuario que te envió el formulario o bien enviar una copia con otras configuraciones a otra persona.
    Los campos que se despliegan son iguales a los que ya he detallado.

Mensajes de éxito o validación

En la pestaña «Mensajes» podremos configurar todos los tipos de mensajes que el formulario pueda devolver.

No voy a detenerme a explicar cada campo porque es muy simple de entender. Cada fila corresponde a un tipo de mensaje de éxito o error que pueda devolver el formulario.

Lo que sí voy explicarte son los valores que aquí puedes o no utilizar:

  • Etiquetas HTML: No está permitido el uso de etiquetas HTML, de hecho si lo haces te aparecerá un mensaje de advertencia.
  • Etiquetas de campos: Puedes utilizar las etiquetas de campos del formulario, de manera tal que podrás personalizar los mensajes con los datos introducidos, por ejempleo: Gracias [fc-nombre] por enviarnos tu mensaje.

Añade el formulario a tus páginas o entradas

Muy bien, ya tenemos el formulario configurado, ahora es momento de mostrarlo en la página Web.

Lo único que tienes que hacer es copiar el «shortcode» del formulario y pegarlo en cualquier entrada o página de tu Web utilizando el bloque «Shortcode» de Gutenberg.

Shortcode del formulario

Una vez que guardes los cambios, visita la entrada o página para verificar el correcto funcionamiento del formulario.

Resultado final del formulario configurado con Contact Form 7
Técnicas para modificar el orden de tus posts

Cómo cambiar el orden de tus posts de WordPress

Hace poco tiempo tuve que dar la posibilidad a un usuario de cambiar de manera simple el orden de un Custom Post Type para alterar un listado en el frontend y fue cuando me di cuenta las distintas posibilidades que existen para llevar adelante esta funcionalidad.

Vamos a ver en detalle todas estas posibilidades con los pros y contras de cada una de ellas.


Método por defecto

Por defecto los post están ordenados por fecha de publicación en forma descendente, esto significa que los últimos posts escritos son los primeros que se muestran en el frontend.

Sabiendo esto podemos alterar el orden de los mismos modificando su fecha de publicación haciendo uso de la «Edición rápida» del listado de post.

Pros:

  • No hace falta instalar ningún plugin.

Contras:

  • Perdemos la fecha original de publicación del post.
  • Es un auténtico quebradero de cabeza hacerlo de esta manera.

Utilizando el campo «Orden»

Podemos registrar nuestro Custom Post Type con el atributo page-attributes para que agregue el campo «Orden».

<?php
function crear_custom_post_type_charlas() {
	$args = [
		'has_archive' => true,
		'labels'    => [
			'name' => 'Charlas',
		],
		'public' => 'true',
		'supports' => [
			'title',
			'editor',
			'page-attributes', // Atributo para agregar el campo 'Orden' a nuestro CPT.
		],
		'show_ui'           => true,
		'show_in_menu'      => true,
		'show_in_rest'      => true,
	];
	register_post_type( 'charla', $args );
}
add_action( 'init', 'crear_custom_post_type_charlas' );

Luego podremos especificar un número para el alterar el orden en que mostramos nuestros posts:

Por último tendremos que hacer un pequeño cambio en la consulta de base de datos (con la acción pre_get_post) por defecto para que coja este nuevo valor «Orden»:

<?php
function ordenar_charlas_por_menu_order( $query ) {
	if(
		$query->is_main_query()
		&& ! is_admin()
		&& is_post_type_archive( 'charla' ) ):
		$query->set( 'orderby', 'menu_order' );
		$query->set( 'order', 'DESC' ); // Podemos modificar el orden del listado [ASC ó DESC]
	endif;
}
add_action( 'pre_get_posts', 'ordenar_charlas_por_menu_order' );

Podemos ver en la imagen anterior como se ha alterado efectivamente el orden de los posts del tipo «Charla».

Pros:

  • No se necesita ningún plugin.
  • Mantenemos la fecha de publicación intacta.

⚠️ No tan contras:

  • Requiere un mínimo de programación (no lo consideraría tan negativo este punto).

Contras:

  • Sigue siendo algo engorroso para el usuario en el caso que quiera modificar el orden de muchos posts.

Con el plugin Simple Custom Post Order

Por supuesto que existen opciones ya empaquetadas que nos facilitan implementar esta funcionalidad a golpes de click.

Os voy a recomendar el plugin Simple Custom Post Order que nos permite seleccionar el Custom Post Type que queremos ordenar (como así también taxonomías) y luego con un simple drag & drop (arrastrar elementos) en el listado de posts podemos modificar fácilmente el orden de los mismos.

Configuración del plugin

Para configurar el plugin debemos seguir los siguientes pasos:

  1. Ir al menú a Ajustes > SPCOrder.
  2. Seleccionar los tipos de posts que queremos ordenar manualmente.
  3. Guardar los cambios cliqueando en el botón «Update».

En nuestro ejemplo vamos a seleccionar el Custom Post Type «Charlas» que venimos desarrollando a lo largo del artículo.

Ordenar las charlas con el plugin

Una vez seleccionado el tipo de post que queremos ordenar debemos seguir los siguientes pasos:

  1. Ir al listado de «Charlas» (o el tipo de post que tengáis en vuestros proyectos).
  2. Arrastrar y soltar los posts en el orden deseado.
  3. Al soltar los items el orden se guardan automáticamente.

Por supuesto que con este plugin no hace falta ningún tipo de código extra. Automáticamente aplica todo el código necesario para ordenarlo en forma automática.

Pros:

  • Muy simple de utilizar para el usuario final.

⚠️ No tan contras:

  • Agregar una nueva columna a la tabla ‘wp_terms’. No es algo muy negativo pero hay personas que prefieren mantener la estructura de la base de datos intacta.
  • Por supuesto que agrega más carga de recursos al cargar nuevos javascripts en el backend.

Como podéis ver hay varias opciones a la hora de permitir modificar el orden de los posts ¿Se te ocurre alguna otra técnica? déjame tu idea en los comentarios.

Happy coding ❤️!

ACF Custom Database Tables – Tablas personalizadas para ACF

ACF Custom Database Tables – Tablas personalizadas para ACF

ACF Custom Database Tables es un plugin de pago (99,00$AUD) de la empresa Hookturn, que extiende ACF (Advanced Custom Fields) y que gestiona automáticamente los datos en tablas personalizadas. Con esta herramienta cada campo de ACF se transforma en una columna de una tabla. Sin dudas es una opción más que interesante para proyectos que tengan una gran carga de consulta de base de datos. Me puse en contacto con Aaron Rutley (co-creador del plugin) quien amablemente me cedió una licencia para que pudiera trastear y escribir esta review donde os detallaré por qué, cómo y cuándo se debe utilizar este plugin.

Hookturn
Hookturn es la empresa que está detrás de este plugin.

¿Por qué crear nuevas tablas?

Son varios los motivos por los que podríamos optar por guardar nuestros datos de WordPress en nuevas tablas, vamos a ver algunos de ellos en detalle:

Mayor seguridad

Al día de la fecha existen 55,214 plugins, donde muchos de ellos guardan sus configuraciones o datos en tablas como wp_options o wp_postmeta ¿Compartirías la información valiosa de tu negocio junto a la de otros plugins con posibles fallos de seguridad? En el caso de información muy sensible yo crearía una nueva tabla personalizada dónde con un nombre totalmente ajeno a la estructura por defecto de WordPress ya estaríamos más protegidos.

Estructura horizontal

WordPress debe su éxito a la estructura de crecimiento vertical conocida como key => value, aunque esta estructura dificulta muchas tareas como la creación de consultas complejas o extracción de datos. Este plugin crea tablas personalizadas de crecimiento horizontal (cada campo es una columna) permitiendo una mejor legibilidad, facilidad de exportación y búsquedas mucho más rápidas.

ejemplo crecimiento vertical y horizontal base de datos
Ejemplo de crecimiento horizontal y vertical en tablas de base de datos.

Operaciones más rápidas

Al guardar la información en tablas personalizadas hará que la escritura, recuperación y borrado de las mismas sean mucho más rápida. No es lo mismo buscar un registro único en una tabla personaliza a buscar entre cientos, miles o millones de registros compartidos con otras entidades (otros custom post types, menús, adjuntos, etc).

Mayor escalabilidad

Al tener la información separada permitirá que la escalabilidad de nuestro proyecto sea más optima. Si sabemos de antemano que un tipo de entidad puede tener millones de registros y/o que debemos realizar consultas SQL muy complejas sobre ellas, lo ideal es separarlo en una tabla personalizada para consumir la menor cantidad de recursos posibles del servidor (procesador, memoria, etc).

Ejemplo de uso

Obviamete que para probar el plugin he creado una pequeña estructura de información que me permitió ver y trastear el comportamiento en la base de datos. Para ello diseñé una estructura muy básica de Libros => Autores que podemos ver en el siguiente diagrama.

diagrama libro autor
Diagrama de Libro / Autor. Donde un libro puede tener uno o más autores.

Implementación:

  • Primero he creado los Custom Post Types «Libros» y «Autores».
  • He dado de alta los grupos de campos personalizados con ACF para cada Custom Post Type.
  • El plugin añade una nueva opción al formulario de ACF, dando la posibilidad a los desarrolladores de crear una tabla personalizada para cada grupo de campos.
acf custom datatables nueva opcion
Nueva opción para indicar la creación de una tabla personalizada. En la segunda opción podemos especificar el nombre.
  • Cuando guardamos los cambios de los campos personalizados aparecerá un nuevo mensaje como el siguiente:
nuevo mensaje custom datatables acf

El plugin generará un fichero JSON que se guardará en la carpeta de uploads. Este fichero contienen toda la información necesaria para crear la(s) tabla(s) en la base de datos. Este último proceso debe ser manual, ya que el usuario debe indicar explícitamente que es consciente que esta acción conlleva una modificación en la base de datos.

  • Al pinchar sobre el botón «Manage Database Tables» (Administrar las tablas de base de datos) nos llevará a una página de configuración con los siguientes datos:
cuadro de dialogo para crear modificar base de datos acf custom datatables
Cuadro de diálogo para aceptar la creación o modificación de la base de datos de nuestro WordPress.

El sistema nos indica que ha encontrado un JSON (el de libros en este caso) y que está listo para crear o modificar la base de datos. Para ello nos piden una verificación que he marcado con lineas punteadas en azul. En inglés indica «Entiendo que este proceso modificará mi base de datos y que he realizado una copia de seguridad en caso que tenga que deshacer los cambios«.

En cristiano lo que te están diciendo es que al modificar la base de datos se puede liar (aunque no debería) y que obviamente no se harán cargo ante cualquier problema que surja. Por ello mismo te recomiendo que siempre hagas pruebas en local y/o que realices una copia de seguridad de todo tu contenido.

  • Repetimos los pasos para la entidad «Autores» y ya tenemos las tablas personalizadas en nuestra base de datos.
custom datatables acf base de datos final
Estructura final de una de las tablas personalizadas.

Ahora ya podemos dar de alta nuestros dos registros. Primero el autor, ya que lo necesitaremos luego para seleccionarlo en la relación de la entidad «Libro».

alta de custom post types con acf
Alta de registros para ambos Custom Post Types con sus respectivos campos personalizados.

Y este es el resultado final en la tabla wp_libros.

resultado fila libro
Registro en la tabla wp_libros.

¿Qué hay de la compatibilidad?

No os preocupéis porque el plugin sigue generando un registro en la tabla wp_posts como así también las relaciones con su tabla wp_postmeta. Sí, el plugin duplica el contenido con el único fin de mantener la compatibilidad con el resto de los plugins que no saben absolutamente nada de la existencia de tablas personalizadas.

Pero hay buenas noticias, podemos desactivar la creación de los registros duplicados, mediante el uso de los filtros:

<?php
/*
 * Deshabilita la creación de valores meta en las tabla wp_postmeta
 */
add_filter( 'acfcdt/settings/store_acf_values_in_core_meta', '__return_false' );

Tablas de Relaciones

Se pueden crear tablas de relaciones a partir de campos específicos de ACF. Estos son los tipos de campos ACF de los cuales podemos crear tablas relacionadas:

  • Relación
  • Objeto Post
  • Taxonomía
  • Link de página
  • Usuario

Una vez seleccionado el campo de relación debemos agregar un pequeño filtro para que el plugin cree las nuevas tablas:

<?php
/*
 * Este código crea las tablas de relación para los campos del tipo relación en forma global. 
 */
add_filter( 'acfcdt/settings/enable_join_tables_globally', '__return_true' );

Al guardar los campos personalizados, podemos ver cómo aparece una nueva línea en el mensaje indicando la creación de la nueva tabla para la Relación entre ambas entidades:

tabla de relacion acf custom datatables

Y ahora sí podemos ver cómo queda finalmente el registro del libro en su nueva tabla de relación.

tabla relacion custom datatables acf

El post_id 50, el libro «Don Quijote de la Mancha» tiene como autor al autor 48 «Miguel de Cervantes». La columna _sort_order es utilizada por el propio plugin.

Limitaciones del plugin

El plugin de momento tiene limitaciones para implementar los campos:

  • Repetidor
  • Grupo
  • Contenido flexible
  • Clon

Estos son campos más complejos que estarán representados en sub-tablas en versiones posteriores del plugin.

Conclusión

Como aclaré al principio del artículo, este plugin es específico para proyectos que requieran de búsquedas complejas a base de datos. El hecho de realizarlas sobre tablas horizontales permitirá consultas SQL menos complejas y por ende un mejor tiempo de respuesta y un uso más efectivo de los recursos del servidor. El plugin permite muchas más configuraciones mediante código las cuales están muy bien documentadas.

Me resta aún aprender cómo abstraer toda esta configuración para incluirlo en plugins independientes. Si bien ACF tiene una funcionalidad local-JSON que crea ficheros JSON «on the fly», este lo realiza en una carpeta del tema activo, algo que no termina de agradarme del todo.

Keyboard Action plugin review

Keyboard Action: un launchpad para WordPress

No lo voy a negar, soy un obsesivo de la productividad y desde que vi el demo de Keyboard Action en Twitter, supe que quería tener una copia y trastearlo. Me puse rápidamente en contacto con Jeroen Sormani, el desarrollador del plugin, y amablemente me cedió una licencia para que pudiera hacer esta pequeña review.

Así que vamos por parte (dijo Jack the ripper) y comencemos viendo…

¿Qué es Keyboard Action?

Keyboard Action es un plugin para WordPress que nos permite ejecutar distintas acciones mediante una serie de comandos. Para ejecutar estos comandos solo debemos presionar una combinación de teclas alt + space que lanzará un pequeño launchpad donde podremos lanzar nuestras acciones.

Es algo así como un WP-CLI pero en forma visual y que también podemos extender (lo describo casi al final del artículo).

Launchpad del plugin para WordPress Keyboard Action

Una vez que cobinamos las teclas ‘alt + space’ el plugin lanza un launchpad para que escribamos el comando.

¡Ahorra tiempo!

Para poner un ejemplo del tiempo que podemos ahorrar, vamos a suponer que estamos en el escritorio de WordPress y necesitamos editar una entrada. Sin este plugin los pasos básicos serían:

  • Pinchar en «Entradas» y esperar a que cargue la página.
  • Buscar con el buscador o entre las distintas páginas del resultado la entrada que queremos editar.
  • Pinchar sobre ella y esperar a que cargue la página con el contenido.

Con el plugin Keyboard Action solo tendríamos ejecutar los siguiente desde cualquier punto de WordPress (inclusive desde el Frontend 😃):

  • alt + space
  • edit «<nombre de la entrada>» y luego presionar enter.

Veamos este ejemplo en el siguiente GIF donde, desde el Frontend, voy directamente a editar la entrada «Hola Mundo»:

¿Cómo editar una entrada desde el Fronted con el plugin para WordPress Keyboard Action?

Listado de comandos

Una vez que hemos lanzado el launchpad podemos ejecutar una gran variedad de comandos desde cualquier lugar de WordPress (siempre y cuando estemos logueados y dependiendo del comando) que nos ahorrarán mucho tiempo. Veamos a continuación un ejemplo de los más importantes.

  • Activar pluginsactivate <nombre del plugin>
  • Desactivar pluginsdeactivate <nombre del plugin>
  • Instalar un plugin ➡ install plugin <slug del plugin> con el flag --activate se puede activar el plugin directamente.

    Instalando el plugin Contact Form 7 desde el Frontend con Keyboard Action

    Instalando el plugin Contact Form 7 desde el Frontend con Keyboard Action

  • Instalar un tema ➡ install theme <slug del tema> con el flag --activate se puede activar el tema directamente.
  • Editar una entrada:
    • edit post <nombre de la entrada>
    • edit page <nombre de la página>
    • edit <custom post type> <nombre de la entrada>
  • Nueva entrada:
    • new Entrada
    • new Página
    • new <custom post type>
  • Actualizar cambios:
    • save Entrada
    • save Página
    • save <custom post type>
  • Publicar cambios:
    • publish Entrada
    • publish Página
    • publish <custom post type>
  • Borrar una entrada: (Solo desde la misma página de la entrada, end backend o frontend)
    • trash Entrada
    • trash Página
    • trash <custom post type>
  • Ver una entrada: (Solo desde la misma página de la entrada)
    • view Entrada
    • view Página
    • view <custom post type>
  • Guardar configuraciones ➡ save settings (solo disponible en páginas de configuraciones)
  • Desloguearnos ➡ log out
  • Ir al administrador de WordPress ➡ nav admin

Estos son solo algunos de los comandos que pueden aplicarse, también los hay para WooCommerce y para duplicar entradas. Para más información podéis echar un ojo a la documentación oficial del plugin.

Comandos personalizados

Por si eso fuera poco, el plugin también nos permite crear nuestros propios comandos personalizados. Basta con seguir las indicaciones de su documentación para expandir este maravilloso plugin a cuanta funcionalidad necesitemos.

https://gist.github.com/JeroenSormani/47ff4beb54c0fcca7abfde3e142ff3c6#file-keyboard-action-lorem-ipsum-post-php

No es gratuito

Sí, lamentablemente el plugin no es gratuito ni tampoco tiene una pequeña demo para trastear 😓
Los precios van desde $39 para un solo sitio, $89 hasta 5 sitios y $199 para sitios ilimitados.
¿Vale la pena comprarlo? Pues eso ya depende de vosotros.

Conclusión

El plugin está en su primera versión y aún hay algunas aristas que limar, pero de todas formas funciona de maravillas. La curva de aprendizaje es muy rápida así que lo utilizaré en el desarrollo de mis proyectos (y en esta web también) para ahorrarme varios clicks y cargas innecesarias.

¿Tú qué opinas? ¿Pagarías esos precios para ahorrarte unos minutos de tu vida?

¿Cómo cambiar rápidamente perfiles de usuarios?

Revisión de plugin – View Admin As

Hay funcionalidades de plugins o temas que deben estar limitados a ciertos perfiles de usuarios de WordPress (Administrador, Editor, Autor, Colaborador o Suscriptor) o, peor aún, a un limitado grupo de capacidades (recordad que cada perfil de usuario de WordPress es en realidad un conjunto de capacidades). Para probar dichas funcionalidades solíamos crear nuevos usuarios con otros perfiles y perdíamos un tiempo valioso saliendo y loguéandonos nuevamente para comprobar que todo funcionaba correctamente. Hoy podemos quitarnos este dolor de cabeza con el plugin View Admin As el cual nos permite cambiar de perfiles o capacidades al vuelo sin necesidad de crear nuevos usuarios.

Header del plugin View Admin As

Header del plugin View Admin As

Video Tutorial

Interfaz gráfica

Una vez instalado y activado el plugin veremos a la derecha de nuestra barra de administrador una nueva opción con el título «Default view (Off)». Al posicionarnos con el ratón veremos que se despliegan las siguientes opciones:

  • Info
  • Settings
  • Capabilities
  • Roles

View Admin As barra de adminsitrador

Nueva opción en la barra de adminsitrador de WordPress

¿Cómo cambiar de rol sin crear un nuevo usuario?

Basta solamente con que elijamos uno de los 5 roles disponibles (o un rol personalizado que creemos) en el selector bajo el nombre de Roles para que la magia suceda. Si el rol seleccionado tiene acceso al administrador de WordPress se refrescará la pantalla con la nueva configuración caso contrario nos llevará al Frontend del sitio web. Una vez seleccionado el nuevo perfil veremos en la barra de administrador un mensaje del tipo «Visualizando con el rol: editor»,  «Visualizando con el rol: contributor», etc. Con pinchar el botón «Resetear a los valores por defecto» volveremos a nuestro usuario habitual.

View Admin As cambiar roles

¿Cómo cambiar roles con View Admin As?

¿Cómo modificar las capacidades del perfil al vuelo?

Otra de las grandes funcionalidades que tiene este plugin es la posibilidad de poder modificar al vuelo las capacidades, partiendo o no de cualquier perfil. También incluye la opción de asignar todas las capacidades «que no sean de este perfil».

Para ello deberemos seguir los siguientes pasos:

  1. Ir a la barra de administrador.
  2. Posicionarnos en el submenú «Capacidades». Este desplegará un formulario con todas las capacidades disponibles.
  3. Seleccionar las capacidadades que deseemos o bien partir de los valores por defecto dentro del desplegable.
  4. Pinchar el botón «Aplicar» para asignar las nuevas capacidades al usuario actual.

View Admin As cambiar capacidades

Cambiando las capacidades a partir de cualquier perfil.

Al igual que con los roles, una vez que hayamos terminado las pruebas podremos pinchar nuevamente en «Resetear los valores por defecto» para volver a nuestro usuario habitual.

Conclusión

Este plugin, junto a otros tantos, es otra herramienta indispensable que utilizo en el desarrollo de mis proyectos para validar que ciertas funcionalidades de perfiles funcionan correctamente. No tiene mucho sentido tenerlo instalado en un sitio web en producción aunque podría utilizarse para una verificación puntual.

Enlaces: View Admin As en el repositorio de WordPress.org.
Traducción: En poco tiempo estará disponible la versión en español que me tomé el trabajo de traducir.

Actualización 30/07/2017: Las traducción al español fue aprobada 🙂

10 razones para elegir WooCommerce para tu tienda online

Seguro tienes una idea en mente para vender tus productos o servicios en internet y estás buscando alguna solución rápida, sencilla y sobre todo económica. Para ello existe una gran variedad de software aunque WooCommerce está muy por encima en porcentaje de uso con respecto a sus competidores. Este elevado uso tendrá una explicación ¿No? En este artículo voy a explicarte 10 razones importantes para hacer de este plugin una de las primeras opciones para el desarrollo de nuevas tiendas online.

¡Es gratis!

WooCommerce es gratis

Sí, lo que has leído. WooCommerce es totalmente gratis. Es un plugin que se añade a tu sitio web WordPress y automáticamente se convierte en una tienda online sin haber gastado un solo euro ¿Crees que no es motivo suficiente? Pues sigue leyendo las demás razones.

Es verdad que existen un montón de extensiones de pago, pero en su versión gratuita podrás vender, utilizar pasarelas de pago, gestionar órdenes de compra y visualizar informes. Vamos, lo mínimo y necesario para empezar a vender tus productos sin ningún tipo de problemas.

Descárgate ya la última versión de WooCommerce del repositorio o bien desde la sección de plugins de tu sitio web de WordPress y haz las primeras pruebas.

Plugin de WooCommerce en el repositorio de WordPress
Plugin de WooCommerce en el repositorio de WordPress

Desarrollado con código abierto

WooCommerce es Código Abierto

Al igual que WordPress, WooCommerce es un software de código abierto. Esto significa que podremos ver cómo está desarrollado y también podremos hacer las modificaciones que creamos necesarias para ajustarlo a nuestro negocio ¡Pero cuidado! Nunca se debe modificar el código del plugin de WooCommerce ya que se sobrescribiría con las posteriores actualizaciones.

Para poder modifiar el funcionamiento de WooCommerce replicaremos las plantillas y ficheros de funcionalidad en nuestros temas o bien desarrollando nuevos plugins. Hay bastante información al respecto que veremos más adelante.


Miles de plugins y extensiones

WooCommerce, extensiones y plugins

En algunas ocasiones necesitarás algo de funcionalidad extra para adaptar WooCommerce a las necesidades de tu negocio. Para esos casos puedes contar con los cientos de plugins y extensiones que existen para este software. Alguno de ellos son gratuitos y otros son de pago, pero todos extienden la funcionalidad base de la tienda online.

Plugins de pago

A continuación voy a mencionar algunos plugins de pago a modo de ejemplo y que ahorran mucho tiempo/dinero en el desarrollo de un proyecto.

  • Sensei: Es un extenso plugin de LMS (sistema de gestión de aprendizaje) que nos permite crear cursos, clases, pruebas y exámenes. Cuesta U$S 129,00, un precio irrisorio para toda la funcionalidad que provee.
  • Bookings: Como su nombre lo indica, este plugin de pago nos permitirá gestionar reservas de todo tipo: turnos, habitaciones, disponibilidades, recursos, etc. Si estáis planeando algún tipo de negocio relacionado con las reservas no lo dudaría, compraría una licencia y me evitaría un gran dolor de cabeza. Este plugin va desde U$S250,00 hasta los U$S450,00 según la cantidad de sitios webs donde queremos implementarlo.

Por más que nos parezcan caro siempre tenemos que hacer el cálculo de cuanto tiempo, esfuerzo y dinero nos costaría si tuviéramos que desarrollar toda esa funcionalidad por nuestra cuenta. Por esos montos tenemos productos muy bien desarrollados, estables y con un gran soporte en materia de actualizaciones de seguridad.

Plugins gratuitos

También hay una gran extensión de plugins gratuitos en el repositorio de WordPress y que pueden ajustarse perfectamente a nuestras necesidades. Mencionaré algunos de ellos:

Y así como estos hay otros 3948 resultados con la palabra «WooCommerce» en el repositorio de WordPress con plugins que añaden o modifican funcionalidades o cambios visuales en el frontend. Seguro que por ahí andará lo que estás necesitando para vitaminar tu tienda online.


WooCommerce es WordPress

WooCommerce sigue siendo WordPress

Si ya has utilizado WordPress con antelación te será muy simple adaptarte a este nuevo plugin. El administrador se verá y seguirá funcionando de la misma manera. Solo tendrás un par de nuevos menús con sus respectivas opciones para configurar todos los aspectos de la tienda online (impuestos, envíos, pasarelas, etc) y los propios para dar de alta los productos y sus taxonomías.

Y si no lo has utilizado nunca no te preocupes porque es muy intuitivo y fácil de aprender.

También hay que agradecer al equipo de traducción de la Comunidad ya que el plugin está traducido en un 100% al español abriendo las puertas a muchas personas que desconocen el idioma anglosajón.


Muy fácil de configurar

hosting panel de control

WooCommerce viene preparado para que puedas ajustar miles de opciones adaptándose a las necesidades de tu negocio:

  • Impuestos: Si en el proceso de instalación del plugin seleccionas alguna ciudad española automáticamente se generarán las reglas para aplicar el 21% de IVA a tus productos y servicios. Siempre tienes la posibilidad de poder modificar estos valores y del método para aplicarlos (sumados al precio del producto o precio por separado) o bien añadir nuevos impuestos.
  • Envíos: ¿Necesitas enviar tus productos? No te preocupes porque el plugin viene equipado con un gran formulario para detallar los gastos de envíos desde donde compren tus productos.
  • Pasarelas de pago: Podrás especificar de forma gratuita las siguientes formas de pago: PayPal, Stripe, transferencia bancaria, pago a contrareembolso, pagos por cheque y PayPal Express Checkout. Si quieres agregar alguna nueva entidad es muy probable que exista un plugin que te ayude.
  • Taxonomías: Podrás usar las taxonomías cuando tengas la necesidad de agrupar tus productos bajo un término específico. Para ello cuentas con categorías, etiquetas y atributos.

Apto para todo tipo de productos

WooCommerce está preparado para cualquier tipo de producto

Vendas lo vendas seguro que tiene lugar en WooCommerce, ya que está preparado para productos físicos (una zapatilla, un libro, un disco) o productos virtuales (una suscripción, un libro electrónico, un servicio). En el caso de los productos virtuales puede también especificarse si se trata de un producto descargable (como el caso del libro electrónico). También podrás crear productos agrupados para armar tus promociones o bien vender objetos con enlaces de afiliado.

Como puedes ver, no hay producto que no se pueda vender con este plugin.


Informes para todos los gustos

WooCommerce tiene reportes de todo tipo

Para los amantes de los números, estadísticas y gráficos, WooCommerce cuenta con un extenso panel de informes listados por órdenes de compra, clientes, stock e impuestos. A su vez los mismos se pueden filtrar por fecha o por búsquedas personalizadas. Todas las gráficas son interactivas, al moverse con el ratón por los distintos valores se van pintando las áreas para una mayor claridad de la información.


Tiene un Frontend fácil de adaptar

WooCommerce es fácil de modificar el frontend

Una vez que tengamos la estructura de nuestros datos en el administrador de WordPress es hora de prestarle un poco más de atención al Frontend. Podemos tener los mejores productos con excelente descripciones pero si no va acompañado de un buen diseño dudo que podamos vender algo. Para la parte estética de la tienda contamos con un tema por defecto llamado StoreFront que es gratuito y muy simple de modificar.

Pero si quieres un diseño un poco más apropiado a tu Look&Feel y no puedes gastarte mucho dinero en maquetadores de HTML/CSS siempre puedes acudir a los temas de WooCommerce que ofrece la misma web o bien puedes encontrar una gran variedad de temas en los marketplaces de siempre (ThemeForest, TemplateMonster, ElegantThemes, etc).


Recibir ayuda de la Comunidad

razones woocommerce y su comunidad

¿Sabías que no estás solo? Detrás de estas tecnologías hay una gran cantidad de personas dispuestas a ayudarte con cualquier problema que pueda surgirte. Para ello hay foros de soporte en español, Meetups y hasta eventos internacionales llamados WooConf donde se reunen desarrolladores, emprendedores, entusiastas y aprendices para compartir todos los secretos de este gran plugin.


Es seguro, muy seguro.

WooCommerce es seguro

WooCommerce es la plataforma más segura de comercio electrónico. Está monitoreada por los desarrolladores del plugin líder en seguridad: Sucuri. Además hay miles de personas que velan también para que todo funcione correctamente e informan a la comunidad ante cualquier desperfecto para que de inmediato sea corregido y distribuido con las actualizaciones de seguridad. Así que prepárate un trago y relájate, que tu WooCommerce está bien vigilado

Revisión de plugin – Shortcake (Shortcode UI)

El cliente te solicita una funcionalidad que por algún motivo decides implementar con un shortcode. Explicarle cómo debe escribirlo en sus post o cómo definir sus parámetros puede convertirse en un auténtico infierno sumado a los posibles errores que puedan llegar a surgir. Es aquí cuando el plugin Shortcake viene a salvarnos. Con pocas líneas de código PHP podemos convertir un shortcode en un elemento que puede añadirse fácilmente mediante una interfaz gráfica.

Shortcake plugin logo
Logo del plugin Shortcake (Shortcode UI)

Ejemplo de funcionalidad

Uno de nuestros clientes tiene una página web de viajes y nos solicita que en cada uno de sus artículos, aparte del contenido, quiere una ficha con los datos básicos del viaje: un título, una imagen destacada, una descripción, el precio y el posible color de fondo de la ficha. Esta información debe mostrarse con un estilo propio como el que vemos en la siguiente imagen:

ejemplo funcionalidad shortcode shortcake

Para facilitarle la tarea al cliente y que todas las fichas tengan el mismo aspecto vamos a hacer en primer lugar un shortcode, que acepte como parámetros el nombre del país, la descripción, el precio, el color de fondo y una imagen. El código PHP quedaría de la siguiente manera:

<?php
function fichaviaje_func( $atts ){
	ob_start();
	// Seteo un color por defecto para el fondo.
	$bcolor = empty($atts['fv_bcolor'])?'#444444':$atts['fv_bcolor'];
	?>
		<div class="fviaje" style="background-color: ;">
			
			<?php
				if ( !empty($atts['fv_destacada']) ):
					// Obtengo la URL del adjunto
					$image_url = wp_get_attachment_image_src($atts['fv_destacada']); ?>
					<img src="<?php echo $image_url[0]; ?>" class="fviaje__feat">
			<?php endif; ?>
			<h3 class="fviaje__h"><?php echo $atts['fv_pais']; ?></h3>
			<p class="fviaje__b"><?php echo $atts['fv_descripcion']; ?></p>
			<hr>
			<p class="fviaje__price">Precio: <strong><?php echo $atts['fv_price']; ?>€</strong></p>
		</div>
	<?php
	return ob_get_clean();
}
add_shortcode( 'fichaviaje', 'fichaviaje_func' );

Aplicamos también el siguiente estilo:

.fviaje {
	color: #ffffff;
	padding: 10px 10px 10px 130px;
	position: relative;
}
	.fviaje__feat {
		left: 10px;
		position: absolute;
		width: 100px;
	}
	.fviaje__h {
		color: #ffffff;
		font-weight: bold;
		padding-top: 0;
	}
 	.fviaje__b { margin: 0; }
		.fviaje__b:before,
		.fviaje__b:after{ content: '"'; }

Con este shortcode el usuario podría incluir las fichas de viajes en su contenido de la siguiente manera:
[fichaviaje fv_destacada="10" fv_bcolor="#444444" fv_pais="Turquía" fv_descripcion="Visita Turquía en 5 días" fv_price="99,75"]

Al igual que yo estarán pensando que no es muy práctico enseñarle a usar este código al usuario final. Puede dar lugar a errores, equivocaciones y llamadas constantes para preguntarnos cómo funcionaba. Es aquí cuando entra en juego el plugin Shortecake (Shortcode UI). Podemos ofrecer la misma funcionalidad pero a través de una interfaz gráfica que facilite la tarea de carga de contenido a los usuarios finales utilizando el mismo cuadro de diálogo de multimedia de WordPress.

Pantallas finales

shortcake interfaz insertar elemento
shortcake interfaz insertar elemento campos

Registrar el shortcode en ShortCake

El plugin no tiene ninguna pantalla de opciones ni configuración en el administrador de WordPress. Solo nos da unas ciertas funciones de PHP que podemos utilizar para registrar nuestro shortcode y aplicarle todos los parámetros necesarios para formar la interfaz gráfica.

Aplica el siguiente código a tu fichero functions.php de tu tema activo o bien en tu plugin, para generar las interfaces del punto anterior.

add_action( 'register_shortcode_ui', 'shortcode_ui_fichaviaje' );
function shortcode_ui_fichaviaje() {
	$fields = array(
		// SELECT DE COLOR 
		array (
			'attr'		=> 'fv_bcolor',
			'label'		=> esc_html__('Color de fondo'),
			'type'   	=> 'color'
		),

		// SELECTOR DE IMAGEN
		array(
			'attr'		=> 'fv_destacada',
			'label'		=> esc_html__('Imagen'),
			'type'      => 'attachment',
			'libraryType' => array( 'image' ),
			'addButton'   => esc_html__( 'Seleccionar'),
			'frameTitle'  => esc_html__( 'Seleccionar imagen')
		),
		// NOMBRE DEL PAIS
		array(
			'attr'   	=> 'fv_pais',
			'label'  	=> esc_html__( 'Nombre del País' ),
			'meta'		=> array(
				'placeholder' => esc_html__('Nombre del país')
			),
			'type'   	=> 'text'
		),

		// DESCRIPTION DEL PAIS
		array(
			'attr'   	=> 'fv_descripcion',
			'label'  	=> esc_html__( 'Descripción del País' ),
			'type'   	=> 'textarea'
		),

		// PRECIO
		array(
			'attr'   	=> 'fv_price',
			'label'  	=> esc_html__( 'Precio' ),
			'type'   	=> 'number',
			'meta'		=> array(
				'step'	=> '.01'
			)
		)
	);

	$shortcode_ui_args = array(
		'label' => esc_html__( 'Ficha de viaje' ),
		'listItemImage' => 'dashicons-tickets-alt',
		'post_type' => array( 'post' ),
		'attrs' => $fields,
	);
	shortcode_ui_register_for_shortcode( 'fichaviaje', $shortcode_ui_args );
}

Podemos observar que la magia de este plugin radica en la función shortcode_ui_register_for_shortcode( 'fichaviaje', $shortcode_ui_args ); que une el shortcode con los parámetros y configuraciones propias del Shortcake.

Parámetros de configuración

Como se puede observar en el código, el plugin nos permite especificar los distintos campos que necesitamos para completar los parámetros de nuestro shortcode. Cada array de campo requiere de los siguientes valores:

NombreDescripción
attrNombre del parámetro del shortcode.
labelEtiqueta para describir los datos a ingresar.
typeEl tipo de campo puede ser: text, checkbox, textarea, radio, select, email,
url, number, and date, post_select, attachment, color.
meta(opcional) podemos usar este parámetros para especificar atributos de HTML.
Por ejemplo 'meta'=>'placeholder="nombre del país"'.

Dependiendo del tipo de campo que especifiquemos tendremos más o menos opciones para configurar los parámetros.

Para más información sobre los distintos campos y su configuración pueden acceder a los ejemplos del repositorio oficial del plugin.

Conclusión

Vemos una vez más que el análisis de la información que el usuario debe cargar es primordial en las primeras instancias del proyecto. Este tipo de solución es una de entre las tantas que podemos ofrecer para facilitar y mantener en un entorno controlado la información que los usuarios administran en WordPress.

embed can i use plugin

Revisión de plugin – Embed Can I Use

Hace una semana leyendo una web descubro una nueva librería Javascript para incrustar los gráficos de Can I Use en nuestro páginas web. Para aquellos que no conozcan esta web es una página que muestra en tablas el soporte que dan los distintos navegadores a las tecnologías de Frontend tanto en escritorio como en móviles. Luego de leer el artículo se me ocurrió la idea de convertirlo en un plugin para WordPress aunque como es habitual ya existíaEmbed Can I Use desarrollado por Geoffrey Crofte.

embed can i use plugin

Instalación y configuración

No tiene gran historia, se instala el plugin como cualquier otro en nuestro WordPress y no tiene ningún pantalla de configuración ya que solo configura un shortcode para nuestros post/páginas.

Instalación de embed can i use plugin

Uso del plugin

Como he comentado en el punto anterior este plugin configura por código un shortcode para que podamos utilizarlo en nuestros posts o páginas. La sintaxis del shortcode es la siguiente:

[ciu_embed feature="<Nombre del atributo>" periods="<-2,-1,current,+1,+2>"]

feature: Aquí debemos especificar el funcionalidad que queremos graficar.
periods: Aquí se debe especificar las versiones de los navegadores que queremos incluir en la tabla. Posibles valores:

  • Versión actual (obligatorio): current
  • Versiones futuras: +3, +2 y +1
  • Versiones anteriores: -3, -2 y -1

¿Cómo puedo saber el nombre de la feature?

Primero debemos buscar la funcionalidad en la página de caniuse.com y veremos que la URL agrega un # con el nombre de la característica. Ese es el valor que debemos agregar en el shortcode.

can i use embed feature
Debemos tomar el valor de la feature de la URL de la web.

Ejemplos:

Si agregamos en nuestro post o página el siguiente shortcode con la funcionalidad flexbox de CSS junto a todos los navegadores:

[ciu_embed feature="flexbox" periods="-3,-2,-1,current,+1,+2,+3"]

obtendremos el siguiente resultado:
[ciu_embed feature=»flexbox» periods=»-3,-2,-1,current,+1,+2,+3″]

Si indicamos el mismo atributo CSS pero sin navegadores:

[ciu_embed feature="flexbox"]

Obtenemos el siguiente resultado:
[ciu_embed feature=»flexbox»]


¿Agrega mucha carga Javascipt a nuestra página?

can i use embed javascript peso

El plugin agrega un solo Javascript (de 759 bytes) que está alojado en un CDN y que solo se carga cuando especificamos un shortcode en nuestros post o páginas, caso contrario no agrega ninguna carga extra a nuestra web.

can i use embed plugin enqueue

Video Resumen

Funciona con WordPress & Tema de Anders Norén