Blog personal de IT, viajes y otros hobbies

Etiqueta: WordPress Página 2 de 6

Cómo crear formularios sin plugins

¿Cómo crear formularios y capturar los valores con WordPress y sin plugins?

Ya no me sorprende encontrar plugins como Contact Form 7, Gravity Forms o Ninja Forms para dar solución a simples formularios en el frontend: ya sea una suscripción a un newsletter, un formulario de contacto o una verificación de edad. Los plugins están muy bien, no lo voy a negar, pero agregan una carga al servidor, en la mayoría de los casos, innecesaria. Además, el tiempo que consume aprender a utilizarlos es a veces mayor al de aprender por única vez cómo funcionan las propias peticiones POST y GET del protocolo HTTP. Luego de leer este artículo tendrás los conocimientos necesarios para hacer lo que desees con los valores que cargan nuestros usuarios en los formularios de nuestras webs.

Videotutorial

¿Cómo crear un formulario en el frontend?

No hace falta saber programación para crear un formulario en el frontend, solo algunos conocimientos básicos de HTML y que son los mismos conceptos que se utilizan desde hace muchos años.

Para el ejemplo vamos a crear un formulario de contacto en el que pedimos al usuario su nombre y un mensaje.

<form action="<?php echo esc_url( admin_url('admin-post.php') ); ?>" method="post">
    <label for="txtnombre">Nombre:</label>
    <input type="text" id="txtnombre" name="txtnombre">
    <label for="txtmensaje">Mensaje:</label>
    <textarea name="txtmensaje" id="txtmensaje" cols="15" rows="4"></textarea>
    <input type="hidden" name="action" value="contacto">
    <input type="submit" value="Enviar">
</form>

Puntos importantes del código:

  1. En esta línea abrimos la etiqueta form y todo los inputs que estén dentro de esta etiqueta se enviarán al servidor, puntualmente al fichero ‘admin-post.php’ a través de una petición POST de HTTP.
  2. Para que WordPress capture el formulario debemos indicar un nombre de acción, el cual guardaremos en un input del tipo oculto (hidden)
Ejemplo de formulario de contacto
Formulario de contacto de ejemplo

¿Cómo capturar correctamente los valores desde WordPress?

El fichero admin-post.php de WordPress define unas acciones muy fáciles de utilizar y que nos permite capturar los valores de las peticiones POST o GET de nuestro formulario. El nombre de los mismos se definen con un prefijo estándar más el nombre de la acción que hemos definido en nuestro formulario. Veamos el siguiente ejemplo en el fichero functions.php de nuestro tema:

<?php
/**
 * Funcion que captura los valores de una 
 * petición POST o GET de HTTP.
 */
function nombre_de_la_funcion(){
	
	// Nuestro código de manipulación de los datos
	
}
add_action('admin_post_nopriv_accion', 'nombre_de_la_funcion'); // Para usuarios no logueados
add_action('admin_post_accion', 'nombre_de_la_funcion'); // Para usuarios logueados

¿Por qué hay dos acciones para la misma funcionalidad? ¿Qué es eso de «admin_post_nopriv»?

Si te has fijado bien en el código estamos utilizando dos acciones para capturar los valores del formulario. Y es que WordPress nos permite tener el control sobre usuarios logueados y no logueados. Para el ejemplo que estamos trabajando nos da lo mismo si el usuario está logueado o no, y es por eso que debemos llamar a las dos acciones.

Una vez que nuestro formulario es enviado al servidor es capturado por la función donde tendremos 6 variables del tipo array con distintos valores para trabajar:

  • $_COOKIE: Un array con las cookies que genera WordPress y aquella que definamos nosotros para un determinado proyecto.
  • $_POST: Un array con los distintos valores del formulario (esta variable solo estará presente si se envía un formulario con el método POST).
    $_GET: Un array con valores pasados al servidor a través de variables GET (esta variable solo estará presente si se envían valores con el método GET).
  • $_REQUEST: Un array con los valores de $_POST, $_GET y $_COOKIE.
  • $_SERVER: Un array con todos los valores referentes a la petición HTTP (HTTP_REFERER, HTTP_USER_AGENT, REQUEST_TIME, etc).
  • $GLOBALS: Un array con todas las variables globales de WordPress (table_prefix, wp_query, wp_rewrite, etc).

Teniendo en cuenta la sintaxis de la acción y todas las variables con las que podemos trabajar tenemos las herramientas necesarias para definir el código final de nuestro ejemplo del formulario de contacto.

<?php
/**
 * Función para capturar los valores del
 * formulario de contacto del website.
 *
 * Los datos son enviados por email a mg@maugelves.com
 */
function enviar_formulario_por_email(){
	// Verificamos que los 2 campos tengan valores
	if( empty( $_POST['txtnombre'] ) || empty( $_POST['txtmensaje'] ) ):
		// Enviamos al usuario a la misma página con una variable GET de error.
		wp_redirect( add_query_arg( array( 'errormsg' => "Campos incompletos" ), get_home_url() . '/contacto') );
		exit;
	endif;

	// SIEMPRE SE DEBEN SANITIZAR LOS VALORES
	$nombre     = sanitize_text_field( $_POST['txtnombre'] );
	$mensaje    = sanitize_text_field( $_POST['txtmensaje'] );

	/*
	Una vez que tenemos los datos del formulario podemos
	hacer con ellos lo que nuestro proyecto web necesite, ej:
	a)  Enviar un email con esta información
	b)  Guardar los valores en base de datos
	c)  Hacer una nueva llamada POST a otro servicio que necesita
		esta información.
	En nuestro caso vamos a mandar un email con el nombre y el mensaje del usuario.
	*/
	wp_mail( "mg@maugelves.com", "Formulario de contacto", $nombre . " envió este mensaje => " . $mensaje  );

	/* Una vez que hayamos trabajado con los datos debemos
	redireccionar al usuario a la misma u a otra nueva página.
	En nuestro ejemplo, vamos a redirigirlo a la misma página
	de contacto con una variable de éxito.*/
	wp_redirect( get_home_url() . '/contacto?exito=1'); exit;

}
add_action('admin_post_nopriv_contacto', 'enviar_formulario_por_email');
add_action('admin_post_contacto', 'enviar_formulario_por_email');

Conclusión

Como han podido ver la captura de los datos es muy simple, una vez que podemos acceder a los valores podremos hacer con ellos cualquier requerimiento que se nos pida. Recuerda agregar seguridad a todos los formulario ya que son puertas de acceso a nuestro servidor. Para ello valida los datos desde el cliente con javascript y también en el servidor como hemos detallado en el ejemplo.

Ya no hay vuelta atrás, la próxima vez que te pidan un formulario piensa dos veces si realmente necesitas instalar un plugin para realizarlo.

¿Cómo incluir campos personalizados de ACF en plugins y temas?

Quien haya tenido la desgracia suerte de hablar un poco conmigo sobre informática sabrá que utilizo el plugin de campos personalizados ACF (Advanced Custom Fields) a menudo para el desarrollo de mis proyectos. Uno de los principales motivos es la velocidad con la que puedo generar la estructura de información en mis temas o plugins versus las mínimas complicaciones que este plugin pueda generar (duplicación de post_metas, sobrecarga en el administrador de WordPress).

Pero ahora bien, tanto los plugins como los temas que desarrollemos deben ser totalmente independientes ¿Qué quiero decir con esto? Que nuestros proyectos deben funcionar en cualquier instalación de WordPress, sin tener que estar nosotros instalando los plugins necesarios, migrando bases de datos o retocando configuraciones para que todo funcione normalmente. Entonces ¿Cómo podemos incluir los campos personalizados ACF en los plugins o temas que desarrolllamos? Muy simple:

  1. Incluyendo el plugin directamente dentro de nuestro tema o el mismo plugin.
  2. Creando una dependencia del plugin.

Incluir ACF en nuestro plugin o tema

Incluir ACF dentro del plugin o tema

Reglas oficiales para distribuir ACF en un plugin o tema

Según la documentación oficial podremos instalar distintas versiones de ACF (de pago o la gratuita) según la finalidad económica de nuestro plugin/tema:

Pasos para incluir el plugin de ACF en nuestros desarrollos

Son pocos y muy fáciles los pasos a seguir:

  1. Descarga una copia de la versión que necesites (respetando las reglas del punto anterior)
  2. Copia la carpeta con el plugin dentro de tu tema/plugin.
  3. Haz un include del archivo principal del plugin ACF.
  4. Configura los directorios y PATH del plugin.
  5. Opcional, puedes ocultar el menú de ACF en el administrador de WordPress.

Para los pasos 3, 4 y 5 abriremos nuestro fichero functions.php (del plugin o tema) y pegaremos el siguiente código. Modificar las rutas con el nombre de vuestro directorio de ACF.

https://gist.github.com/maugelves/d2082ecd69145ca37b1dbae1b93b1b9a

Crear una dependencia del plugin

Otra posible solución es declarar el plugin ACF como una dependencia de nuestro plugin. Esto significa que cuando se active el plugin o tema y no tengamos el plugin de ACF saldrá un mensaje advirtiéndonos que necesitamos instalarlo para el correcto funcionamiento.

Mensaje de dependencia del plugin Advanced Custom Field Pro
Mensaje de dependencia del plugin Advanced Custom Field Pro

Para declarar esta dependencia necesitaremos una pequeña librería de PHP llamada «TGM Plugin Activation» de la que tengo un artículo explicando cómo utilizarla.

Los pasos a seguir para declarar la dependencia son:

  1. Descargar la librería TGM Plugin Activation
  2. Hacer un include de la librería en nuestro fichero functions.php
  3. Declarar la dependencia del plugin gratuito o de pago según nuestras necesidades

A continuación detalle el código para cualquiera de las dos versiones del plugin:

Dependencia para la versión gratuita de ACF

Dependencia para la versión PRO de ACF


Conclusión

Dependiendo del proyecto, utilizar ACF puede ser una gran ventaja en ahorro de tiempo de desarrollo. Pero esto generará que nuestro desarrollo dependa de un plugin de terceros. Utilizando cualquier de estas dos técnicas podemos quedarnos tranquilos que nuestro código funcionará correctamente ¿Cuál de las dos técnicas utilizar? Como siempre, cada proyecto es único y debemos valorar cuál es la solución más óptima en cada caso.

Así fue la Meetup de WooCommerce Madrid

#WooMadrid – Primer Meetup WooCommerce Madrid

Ayer martes 4 de Julio del 2017 lanzamos junto a Fernando Tellado el primer Meetup de WooCommerce en Madrid. Un proyecto en el que queremos dar a conocer y aprender sobre WooCommerce. Esta herramienta es un plugin para WordPress, libre, gratuito y que sirve para crear sitios webs de eCommerce. Fue creado por una empresa llamada WooThemes pero en Mayo del 2015 fue comprado por la empresa Automattic, la misma que lleva la discutida marca de WordPress.com.

Meetup WooCommerce Madrid

La idea fue rápidamente apoyada por SiteGround España quien patrocinó el catering para el networking  y también hemos tenido el privilegio de contar con el Auditorio del Campus Madrid, un sitio que me trae lindos recuerdos por todo lo vivido en la WordCamp de Madrid 2017.

Hemos recibido un total de 123 inscripciones para el evento aunque se han presentado unas 70 personas, un 56% de asistencia. Un número más que satisfactorio teniendo en cuenta el porcentaje de inasistencias en este tipo de eventos gratuitos. Esperemos que el número de personas siga creciendo con cada Meetup y que entre todos podamos formar una verdadera comunidad de aprendizaje.

Fernando fue el encargado de dar la bienvenida al grupo y rápidamente nos deleitó con su amplia experiencia en el mundo del eCommerce. Su ponencia se tituló «¿Por qué una herramienta libre y gratuita como WooCommerce lidera el eCommerce?».

Luego me cedió el turno para comenzar con mi charla donde expliqué cómo instalar, configurar, cargar un producto simple y realizar una compra en vivo mediante una ponencia que titulé «¿Cómo crear tu tienda WooCommerce en 10 mins?»

Galería de fotos

jpg formato progresivo

¿Cómo optimizar las imágenes JPG con el formato progresivo?

A veces aprendo pequeños tips informáticos que te sorprenden por su simplicidad pero que tienen un gran impacto en la usabilidad u optimización de la web. En este caso os hablaré de la importancia de utilizar ficheros de imágenes JPG con formato progresivo.

¿Qué formatos de JPG’s existen?

Existe el fichero JPG con formato progresivo que graba varias capas con distintas calidades. De esta manera, cuando un visitante accede a una web se cargarán las imágenes progresivamente, de menor a mayor calidad mejorando así la experiencia de usuario de nuestra página. Es preferible que el usuario vea algo, aunque sea con poca calidad, a tener espacios vacíos en la estructura de la web. Y para nuestra sorpresa este tipo de formato es más ligero, mejorando así el tiempo de carga (y nuestro SEO finalmente). Con lo cual, a la hora de utilizar imágenes JPG en nuestra web debemos seleccionar este formato.

El otro formato se llama baseline y guarda la imagen con una sola capa con la calidad final. A diferencia del formato anterior su carga en los navegadores es línea a línea.

La siguiente imagen grafica cómo se comporta cada tipo de formato durante la carga de una web en los navegadores.

jpeg progresivo y baseline

Demostración

En estas URL encontraréis dos ficheros con la misma imagen. Uno con formato baseline y otro con el formato progresivo:

El siguiente video muestra cómo se renderizan los archivos en un navegador con una velocidad de carga de 50Kbs/seg (utilizando la funcionalidad de Throttling de Chrome)

Herramientas y plugins

Para guardar una imagen en format progresivo podemos utilizar las siguientes herramientas y plugins:

Photoshop

  1. Ir a Archivo » Exportar » Guardar para web
  2. Activar la casilla «Progresivo»
jpg progresivo opción de photoshop

GIMP

  1. Ir a Archivo » Exportar
  2. Exportar el fichero con la extensión jpg
  3. Activar la casilla «Progresivo» dentro de las opciones avanzadas
jpg progresivo opción con gimp

TinyPNG

Esta página web comprime imágenes de varios formatos. En caso que el fichero sea un JPG lo convierte automáticamente a progresivo.

tiny png home

Optimizilla

(Actualización 05/07/2017, gracias Luis)
Esta web brinda los mismos servicios que TinyPNG pero también permite modificar el porcentaje de compresión con un previsualizador bastante chulo.

Logo de Optimizilla
Previsualizador de imágenes de Optimizilla
Previsualizador de imágenes de Optimizilla

EWWW Image Optimizer

EWWW es uno de los mejores plugins de WordPress para optimizar imágenes. Comprime varias extensiones e incluye el formato progresivo para los ficheros del tipo jpg.

EWWW plugin de WordPress para optimizar imágenes
wpescamp 2017 plencia

WPESCamp 2017 Plencia – El resumen

Luego de la WordCamp de Bilbao nos fuimos con otras 4 personas a vivir la tercera edición de la WPESCamp. En este caso se realizó en Plencia, una ciudad de la provincia de Vizcaya en el País Vasco. Y más de uno estará preguntándose ¿Y qué es eso de la WPESCamp?

Es un proyecto en el que un grupo de personas relacionadas al mundo de WordPress conviven en una casa para trabajar por las mañanas haciendo co-working, por las tardes se realizan distintos tipos de talleres con temas muy diversos y siempre hay tiempo para hacer algo de turismo por la zona. También hay que hacer especial hincapié en la gastronomía durante la convivencia. No llevamos básculas pero creo que alguno ha vuelto con algunos kilos de más (empezando por mi, claro está). Pero mejor dejemos que lo explique Rafa Poveda, evangelista de WordPress en España y asistente a las tres ediciones de WPESCamp (Sitges, Sevilla y Plencia).

Talleres impartidos:

  • Ibon Azkoitia – «WPHackathon desde dentro«: Ibon explicó un proyecto en el que está trabajando para facilitar la creación de Hackatons de WordPress mediante el uso de un conjunto de plugins. El proyecto gustó mucho entre los asistentes y fue propuesto como Hackaton interno (o meta hackaton 😝) para ayudar a cerrar algunos hitos importantes. Durante los dos días de desarrollo colectivo contamos con el apoyo de SiteGround, quien colaboró con las calorías necesarias para que todo saliera correctamente ¡Gracias Moncho!
  • Fernando García Rebolledo – «Automatizar la importación en WordPress con CRON«: Fernando nos dejó a todos boquiabiertos cuando nos contó sobre un proyecto WordPress que recoge y actualiza su información de otro sistema mediante la funcionalidad CRON del servidor y el plugin de pago WP All Import. Una tarea que hace años hubiese sido un dolor de cabeza, y económico, y que hoy puede resolverse fácilmente con la utilización de plugins y un poco de ingenio ¡Enhorabuena Fer!
  • Francisco Torres – «Docker como entorno de desarrollo para WordPress«: Si en la próxima WPESCamp no va Fran, yo no voy. Un auténtico crack que automatiza todo lo que tiene al alcance de su mano. Con esta charla nos explicó una receta de Docker que viene trabajando desde hace meses para facilitar la configuración inicial y el desarrollo de sus proyectos webs.
    «Gestión de clientes (CRM) con WordPress como plataforma» ¡Doblete! En otro rato libre nos explicó cómo tiene montado un sistema de CRM que «forkeó» de un plugin que aconsejaba «… no descargar. Lleva años sin actualizarse…«. Ver para creer. Le hemos insistido para que cuente estas experiencias en la próxima WordCamp que se organice.
  • Mauricio Gelves – «Desarrollo involuntario de marca personal«: Cuando hicimos las preguntas generales sobre qué hablar me pidieron que hablara un poco sobre cómo gestiono mis redes sociales, videos, blogs, etc. En la charla «improvisada» detallé cómo junté varios hobbies que tengo para enfocarlos en el desarrollo de mi marca y cómo fueron  sucediendo con el transcurso de mi paso empresarial al freelance.
  • Rafa Poveda – «XP Planning game (XP: eXtreme Programming)«: El WP Jedi de la casa se lució nuevamente con su Master Class de eXtreme Programming. Su charla la realizó el día sábado y asistieron personas de la Meetup Bilbao que disfrutaron como niños montando casas y castillos con Lego’s bajo un contexto de proyecto organizado con varias iteraciones de clientes. Un verdadero lujo contar con la experiencia de este profesional y amigo ¡Gracias Rafa!

Video resumen

Ahora sí, ¿Quieren ver lo que ha pasado dentro de la casa? (Sí, suena y parece un poco a Gran Hermano…. solo que no hay super, ni expulsamos a nadie… ni tampoco hay edredoning… bueno, no sé. Mejor me callo.)


Album de fotos

Mis fotos


Iré actualizando a medida que las vaya procesando

De Twitter (@WPESCamp)


Conclusión

Sé que es difícil cuadrar una semana para muchas personas, por temas laborales, de familia u otros compromisos. Pero debo aconsejar que al menos vivan una vez la experiencia de una WPESCamp. Es impagable trabajar, soltar una duda y que rápidamente un compañero/amigo tenga una posible respuesta. Compartir almuerzos, cenas, cervezas y noches de poker (los dejé pelados 😉). Nutrirse de los distintos talleres y experiencias personales. Hacer turismo con personas de la propia zona, que saben dónde y cuándo llevarte a los distintos lugares. Sin dudas es una experiencia que seguiré repitiendo siempre que mis obligaciones me lo permitan. Hasta la próxima WPESCamp, ¿Tal vez en Chiclana a orillas del mar? ¿Quien sabe?

wordcamp bilbao 2017 resumen maugelves

WordCamp Bilbao 2017 – El resumen

Wow, qué pedazo de evento hemos vivido este fin de semana en la WordCamp Bilbao 2017. Yo ya lo estoy sintiendo por las próximas ciudades que quieran organizar un evento de este tipo porque el listón está puesto muy muy alto. Un venue de lujo, ponentes locales, nacionales e internacionales que han nutrido de sabiduría a los casi 200 asistentes que subieron hasta Bilbao desde todos los rincones de España.


Video resumen

Antes de meternos en los detalles del evento te dejo un video resumen de todo lo vivido durante este fin de semana.


Venue

El evento tuvo lugar en el Hotel Gran Bilbao que patrocinó la WordCamp cediendo sus instalaciones. Se utilizaron 3 salones para los distintos tracks de ponencias pero también hubo salones con expertos de WordPress y otro salón completo para el desayuno, almuerzo y merienda del evento. Ojalá en los próximos años se pueda contar con su ayuda nuevamente para la realización de las WordCamps.


Comunidad

Sin dudas lo mejor de una WordCamp, sea la de Bilbao o la de cualquier ciudad española, es la gente que asiste a ella, que comparte sus conocimientos y buenos momentos. Esta edición no fue la excepción. Me encanta reencontrarme con grandes amigos y poner cara a personas con las que inclusive estuve trabajando pero que no conocía en persona.

WordCamp Bilbao 2017 Comunidad

La alegría de reencontrarse con grandes amigos en distintos puntos de España.


After Party

Como siempre la gente además de aprender mucho con todas las charlas se lo pasa pipa durante el networking y sobre todo en el After Party. Ibon Azkoitia, el organizador de la WordCamp, nos tenía preparado una fiesta en el hotel con un DJ que trató de cumplir con todos los gustos musicales de los allí presentes, desde Chuck Berry hasta la música cañera de los 90’s. La segunda parada de la noche fue en el bar «DeLorean«, bar al que pudimos llegar luego de caminar 600 metros cuando un taxista nos dejó en otro local con similar nombre pero de dudosa reputación como para celebrar un After Party.

bar lorea no delorean wordcamp bilbao 2017

Luego de analizarlo durante unos minutos decidimos, por las dudas, no entrar en este bar.


Patrocinadores

Tal vez lo hayamos escuchado miles de veces y la frase ya no tenga sentido en nuestras mentes, pero debemos detenernos a pensar un minuto para ser conscientes que absolutamente TODO lo que se vive en una WordCamp es gracias a los patrocinadores. Gracias a ellos podemos contar con uno de los eventos más baratos y más enriquecedores del ámbito informático. Desde mi humilde blog, ¡muchas gracias a todos ustedes!


Ponencias

Hombre, no iban a faltar las típicas ponencias en el post resumen de la WordCamp de Bilbao, ¿No? Hala, aquí dejo el listado de lo sucedido durante el sábado:

Referencias: 📒 Diapositivas |  🍿 Videos

Sábado 13 de Mayo – Track A

09:15 – Sobrevive a la Gestión de Proyectos Web – Jorge González | 📒
10:00 – Plugins de seguridad, tiburones, gatitos y elefantes – Tomas Sierra | 📒
10:45 – 10 trucos para no tirar el dinero en AdWords – Unai Benito | 📒
12:00 – WordPress no es “tan” fácil – Fernando Tellado | 📒
12:45 – The unspoken digital content editing rules – Yonit Tzuk | 📒
14:45 – Organizar un evento no siempre es un tormento – Alejandro Gil Mialdea | 📒
15:30 – Stranger Themes: Aprende a vivir sin ThemeForest – Fernan Diez | 📒
16:15 – Equipa y configura tu WordPress con Google Analytics – Gorka Goikoetxea | 📒
17:30 – APP Store Optimization – Nekane Arribas
18:15 – Hosting especializado WordPress: El motor de tus ventas – José Ramón Padrón

Sábado 13 de Mayo – Track B

09:15 – Estrategias de caché para un proyecto WordPress – Fernando Puente | 📒
1
0:00 – Internationalisation Done right – Pascal Birchler | 📒
10:45 – Crear layouts con Flexbox es mucho más fácil – Darío Balbontín
12:00 – Docker, entorno de trabajo configurado en 1 minuto – Ruben Egiguren | 📒
12:45 – Quiero aprender a programar en WordPress ¿por dónde empiezo? – Mauricio Gelves | 📒
14:45 – Tu primer contacto con Vue.js – Julià Mestieri | 📒
16:15 – Administrando WordPress con WP-CLI facilmente – Óscar Abad | 📒
17:30 – Why and How to Create Docs that Rock – Kat Christofer | 📒
18:15 – WordPress Translations Demystified – Dominik Schilling | 📒

Sábado 13 de Mayo – Track C

09:15 – Growth Hacking – Eduardo Turiño
10:00 – Taller: BuddyPress – Rocío Valdivia
12:00 – Taller: De PSD a WP – Juan Hernando | 📒
14:45 – El soporte soporta tu negocio: Caso de estudio de WPML – Andrés Cifuentes | 📒
15:30 – Taller: Crea tu propio staging de WordPress en tu ordenador – Flavia Bernárdez | 📒
17:30 – Taller: jQuery.(“#WordPress”); – Julka Grodel | 📒


Contributor Day

El día domingo 14 de Mayo se realizó el Contributor Day en las mismas instalaciones del hotel. Hemos tenido algunos problemas de conexión pero aún así hemos trabajado aportando nuestro granito de arena a la comunidad como así también hemos disfrutado de varias e interesantes desconferencias.

Nuestro amigo Monty ha grabado un pequeño video recorriendo las mesas del Contributor Day.


La foto de la WordCamp

La verdad es que estuvo difícil la elección pero Fernan Diez se lleva la mejor foto de la WordCamp con su «MetaFoto del video de Juan Hernando». De hecho el momento está inmortalizado en el video en el segundo 1:48 😂

Juan Hernando en la WordCamp Bilbao 2017

Foto ganadora de la WordCamp Bilbao 2017


Conclusión

Bilbao será siempre un lugar importante en mi carrera profesional ya que fue la ciudad donde di mi primera charla en una WordCamp (que lamentablemente aún no tengo el video) y desde entonces no he parado. Otro punto importante es la amistad que me une con Ibon Azkoitia (el organizador), ambos nos conocimos en una WordPress Day de Madrid, siendo los dos muy novatos en este mundo, y desde entonces hemos crecido muchísimo dentro de la comunidad, personal y profesionalmente.

El próximo año Ibon deberá ceder su lugar como organizador pero su trabajo minucioso y constante de años ha dejado una estructura sólida que seguirá dando frutos en las futuras Meetups y WordCamps de Bilbao ¡Muchas gracias Ibon por todo el esfuerzo que has realizado!

cupones de descuento en woocommerce

¿Cómo crear cupones de descuento en WooCommerce?

Los cupones de descuento son una herramienta esencial para ofrecer descuentos y beneficios a nuestros clientes. WooCommerce incluye toda la lógica necesaria para crear cupones siguiendo un extenso sistema de filtros y validaciones. Veamos todas las posibilidades que tenemos para crear nuestros propios cupones.

cupones descuentos woocommerce

En primer lugar debemos asegurarnos de que el sistema de cupones esté activo en nuestra tienda online WooCommerce. Para ello accedemos al menú WooCommerce » Ajustes » Cupones y verificamos que la casilla «Activa el uso de cupones» esté marcada.

menu activar cupones WooCommerce

¿Cómo crear un cupón en WooCommerce?

Datos básicos y pestaña general

Desde el menú de WooCommerce » Cupones podemos pinchar en el botón «Añadir cupón» y nos llevará al siguiente formulario:

pestana general cupon woocommerce
  1. Código de cupón: Este será el valor que tiene que introducir el cliente para acceder al descuento. El mismo tiene que ser único.
  2. Descripción: Una simple descripción para identificar el cupón a modo interno.
  3. Tipo de descuento:
    1. Descuento en porcentaje: Se aplica un descuento total de la compra. Por ejemplo, si el carro contiene 3 baterías para una cámara de foto a €20,00 cada una (haciendo un total de €60,00) y el cliente aplica un cupón por un 10% se aplicaría una rebaja de €6,00.
    2. Descuento fijo en el carrito: Se aplica un descuento fijo al total del carrito. Usando el mismo ejemplo anterior, si el carro contiene 3 baterías para una cámara de foto a €20,00 cada una (haciendo un total de €60,00) y el cliente presente un cupón de €10,00 se aplicaría una rebaja final de €10,00.
    3. Descuento fijo de producto: Se aplica el descuento fijo a cada producto. Por ejemplo, las 3 baterías a €20,00 cada una con un cupón de €10,00 de descuento aplica una rebaja total de €30,00.
  4. Importe del cupón: Importe porcentual o fijo según lo seleccionado en el campo «Tipo de descuento».
  5. Permitir el envío gratuito: En caso de tener una zona con envío gratuito y que se active con cupón debe marcarse esta casilla.
  6. Fecha de cadudad del cupón: Podemos especificar en este campo una fecha de caducidad para nuestro cupón.

Pestaña de restricción de uso

En esta pestaña podremos especificar dónde tendrá validez el cupón y dónde no a través de múltiples campos. Veámoslo en detalle:

Pestaña restricción de uso cupón woocommerce
  1. Gasto mínimo: ¿Cuál es el mínimo de la compra que debe alcanzarse para que el cupón tenga validez? (el total del carrito es igual a la sumatoria de los productos más los gastos de envío). Dejar en blanco si no hay mínimo.
  2. Gasto máximo: ¿Cuál es el monto máximo permitido para que el cupón tenga validez?
  3. Uso individual: Activar esta casilla si no queremos que se utilice el cupón junto a otros.
  4. Excluir los artículos en oferta: Debemos marcar la casilla si el cupón no debe aplicarse a productos que estén marcados con rebaja.
  5. Productos: ¿Qué productos debe contener el carrito para que el cupón sea válido? (dejar en blanco en caso de que el cupón sea válido para todos los productos).
  6. Productos excluidos: ¿Qué productos no debe contener el carrito para que el cupón sea válido? (dejar en blanco para que el cupón sea válido para todos los productos)
  7. Categoría de productos: Los productos en el carrito tienen que pertenecer a esta categoría para que el cupón sea válido.
  8. Excluir categorías: Los productos pertenecientes a esta categoría no serán válidos para el cupón con descuento.
  9. Restricciones de correo electrónico: Direcciones de email que pueden usar el cupón (se verifica con la dirección de email de facturación del cliente).

Límites de uso

En esta pestaña indicaremos qué cantidad de veces se podrá utilizar el cupón en forma general o bien individual (por usuario). Veamos sus campos:

Pestaña límites de uso cupón WooCommerce
  1. Límite de uso por cupón: ¿Cuántas veces puede usarse el cupón por todos los usuarios?
  2. Limitar el uso a X artículos: En caso de que el cupón se aplique a nivel de productos ¿A cuántos productos puede aplicarse el cupón de descuento?
  3. Límite de uso por usuario: ¿Cuántas veces puede usar el mismo usuario un cupón?

Una vez que tengamos configurado el cupón ya podremos generar nuestra campaña y comunicarla  a nuestros cliente. Recuerda que el código de descuento es el título del cupón, así que sé creativo e incrementa tus ventas con interesantes campañas de marketing.

pasarelas de pago en WooCoommerce PayPal

Pasarelas de pago en WooCommerce: PayPal paso a paso

Ya has configurado tu tienda online con WooCommerce, ya has cargado todos tus productos y has definido los gastos de envíos e impuestos. Ahora solo te resta configurar la parte más importante: la pasarela de pago con PayPal que hará que tus clientes puedan pagar con cualquier tarjeta de crédito en más de 190 países.

WooCommerce PayPal

PayPal es una de las pasarelas que viene por defecto en la instalación de WooCommerce y utilizarla conlleva unas comisiones que deberás revisar y calcular para verificar que tus números cuadran. Si lo has hecho y quieres incluir esta pasarela de pago en tu tienda online sigue los siguientes pasos:

Abre una cuenta en PayPal

Para poder recibir y enviar dinero a través de PayPal obviamente necesitarás tener una cuenta en dicha plataforma, para ello deberás seguir los siguientes pasos:

  • Ir la página de PayPal ➡ https://www.paypal.com/
  • Pincha en el botón «Crear cuenta» que se encuentra en la esquina superior derecha:
    Click en crear cuenta en PayPal
  • En la siguiente pantalla selecciona el tipo de cuenta «Business»:
    click en cuenta business PayPal
  • Especifica un email para la cuenta business (de ahora en más el email será tu identificador personal en PayPal).
    Especificar un email para la cuenta business de PayPal
  • De aquí en más completa los datos Personales/Empresariales que PayPal vaya solicitando. En la última pantalla del registro te enviarán un email que debes validar para finalizar el proceso.

Configura la cuenta PayPal para que pueda comunicarse con WooCommerce

Si bien WooCommerce configura muchos puntos hay otros tantos que tenemos que configurar por nuestra cuenta en la plataforma de PayPal:

Redirección a la tienda online

Debemos especificar en PayPal a qué página web debe volver luego de que el cliente haya pagado. Junto con el retorno irá toda la información necesaria para que WooCommerce actualice el estado de la compra y el stock de los productos.

  • Para configurarlo vamos a pinchar en el menú  Perfil » Configuración de la cuenta:
    seleccionar perfil de la cuenta paypal
  • Una vez que estamos en el perfil pinchamos en la pestaña «Opciones de venta»:
    seleccionar opciones de venta paypal
  • Una vez que se desplegan todas las opciones de la pestaña pinchamos en el enlace «Cambiar» de la fila «Preferencias de sitio web»:
    seleccionar preferencias de sitio web
  • Nos llevará a una página con varias opciones pero solamente vamos a fijarnos en las 4 más importantes:
    preferencias de pago en el sitio web

     

    1. Retorno automático: Debemos marcar la casilla «Activar» para que al finalizar el pago PayPal vuelva a la tienda online.
    2. URL de retorno: ¿A qué URL debe volver PayPal? El campo de retorno se forma de la siguiente manera:
      <protocolo>/<URL de la tienda>/<Slug de página "Finalizar compra">/<Nombre de la variable de "Pago Recibido">.
      Por ejemplo: «https://mitienda.es/finalizar-compra/order-received».
    3. Transferencia de datos de pago: Se debe activar esta casilla para recibir los mensajes de compra exitosa/errónea. Al guardar los cambios se generará un código extenso de letras y números que luego utilizaremos en las configuraciones de WooCommerce.
    4. Cuenta PayPal opcional: Si marcamos la opción «Activar» el usuario podrá pagar en PayPal tenga o no tenga cuenta en esta plataforma.

Solicitar credenciales de API

Para poder gestionar las devoluciones desde WooCommerce es necesario contar con las credecianles de la API de PayPal. En nuestra cuenta de PayPal debemos acceder al formulario del menú Perfil » Configuración de la cuenta » Opciones de venta » Acceso de API (explicado con gráficos en el punto anterior). Una vez en el formulario debemos seguir los siguientes pasos:

  • En esta pantalla debemos pinchar el enlace «Añadir o modificar accesos a API»:
    seleccionar añadir o modificar acceso api business paypal
  • En la siguiente pantalla pinchamos el enlace con la leyenda «Solicitar credenciales de API». Estas serán nuestras «tarjetas de acceso» para configurar en WooCommerce:
    solicitar credenciales de api paypal
  • En la siguiente pantalla deberemos seleccionar la opción «Solicite una firma de API»:
    seleccionar solicitar una firma de api paypal
  • Una vez que pinchamos en «Aceptar y enviar» se generarán las credenciales que debemos configurar en nuestra tienda online. Como bien lo indica la página estos son datos sensibles que debemos tener en buen resguardo. Una vez que tengamos estos datos debemos acceder a nuestra tienda online en el menú WooCommerce » Ajustes » Finalizar compra » PayPal y allí cargamos los siguientes valores:
    • Nombre de usuario de API ↔ Usuario de API
    • Contraseña de API ↔ Contraseña API
    • Firma ↔ Firma API
completar firma api paypal en woocommerce

Configuración de PayPal en WooCommerce

Ahora vamos a ver los campos que debemos completar en WooCommerce para finalizar la comunicación entre ambas plataformas:

Configuración básica

Configuración básica PayPal en WooCommerce
  1. Activar/Desactivar: Si queremos utilizar PayPal como medio de pago debemos mantener activa esta casilla.
  2. Título: ¿Qué título se usará en el Frontend de la tienda?
  3. Descripción: Breve descripción sobre la forma de pago que se utilizará en el Frontend.
  4. Correo eletrónico de PayPal: Este es el campo más importante ¿A qué cuenta de PayPal debemos transferir el dinero? Utilizad la dirección de email con la que habéis registrado la cuenta business de PayPal.
  5. Entornos de pruebas de PayPal: Mientras estemos desarrollando la tienda online es buena idea realizar pruebas para verificar que todo funciona correctamente. Activar esta casilla y en el campo «Correo electrónico de PayPal» utilizad una dirección de una cuenta de sandbox.paypal.com (si no tenéis cuenta, registrad una).
  6. Registro de depuración: Si activamos esta casilla se guardará un registro con información sobre las transacciones entre WooCommerce y PayPal. Esta información es muy útil para los desarrolladores en caso de problemas en los pagos con PayPal.

Configuración avanzada

Configuración avanzada PayPal en WooCommerce
  1. Correo electrónico del receptor: Es la dirección de correo donde queremos recibir las notificaciones. No tiene por qué ser igual al email de la cuenta de PayPal.
  2. Token de identidad de PayPal: En el formulario de «Redirección de tienda online» cuando activamos la casilla de «Transferencia de datos de pago» y al guardar los cambios se generó una clave formada por letras y números bajo el nombre de «Código personal de identidad«. Debemos copiar y pegar ese código en este campo para agilizar las comunicaciones entre ambas plataformas.
    transferencia datos de pago PayPal
  3. Prefijo de factura: ¿Qué prefijo vamos a ponerle a los números de las facturas? Es útil si vamos a usar más de una tienda con la misma cuenta de PayPal.
  4. Detalles de envío: Si el campo está activo enviaremos a PayPal la dirección con los datos de envío.
  5. Sobreescribir la dirección: En caso de estar activo permitimos que el usuario cambie los datos de dirección en PayPal (mantener desactivado).
  6. Acción de pago:
    1. Captura: Extrae directamente el monto de la tarjeta del cliente.
    2. Autorización: Solo genera una autorización. La captura se genera en cuanto cambiamos el estado de la compra.
  7. Estilo de página: En caso de tener algún estilo personalizado en PayPal (checkout con logo de la empresa, colores personalizados, etc), se debe especificar el nombre del estilo.
  8. URL de la imagen: Indicar la URL con el logo de nuestra web/empresa (190px X 60px).
  9. Usuario API: El nombre de usuario de las credenciales de la API de PayPal (explicado en «Solicitar credenciales API«)
  10. Contrasñea API: La contraseña de las credenciales de la API de PayPal (explicado en «Solicitar credenciales API«)
  11. Firma API: La forma de las credenciales de la API de PayPal (explicado en «Solicitar credenciales API«)

Este proceso tendrás que tomártelo con calma porque no suele funcionar a la primera (ojalá que sí). Para ello utiliza el entorno de prueba, utilízalo hasta que la pasarela funcione correctamente y luego no te olvides de cambiar la dirección de email por la cuenta válida de PayPal así recibes el «dinero verdadero» por cada compra de tus clientes.

Si tienes alguna duda o problemas con la configuración de la pasarela déjame tu comentario y con gusto buscamos la solución.

¿Cómo configurar los impuestos en WooCommerce?

Si vamos a montar una web en la que vendemos productos o servicios tarde o temprano tendremos que lidiar con los benditos impuestos de nuestro país (y en ocasiones puede variar los impuestos según el origen de nuestro cliente, aunque no es el caso de España). Antes de entrar en los pasos sobre cómo configurarlos es muy importante entender cómo estructura internamente WooCommerce el manejo de los impuestos. Veamos el siguiente gráfico y su correspondiente descripción:

Resume gráfico de impuestos en WooCommerce

En nuestra tienda online damos de alta un producto al que titulamos «Camiseta» y que cuesta €10,00. Al producto le asignamos una «clase de impuesto» llamada «Estándar». Esta clase «Estándar» engloba varios impuestos según desde dónde compre el cliente: si compra desde Paris tiene un 10% de IVA, si compra desde Madrid un 21% y si compra desde Londres un 23% (los porcentajes obviamente son inventados). Un cliente madrileño compra una camiseta costándole un total de €12,10 (€10,00 de la camiseta más €2,10 propio de los impuestos).

Resumiendo:

  • Un producto puede tener una sola clase de impuesto.
  • Una clase de impuestos puede englobar distintos valores de impuestos según localizaciones (países, estados/provincias, ciudades y/o códigos postales).
  • Una clase de impuestos puede utilizar comodines (*) para indicar que el impuesto se aplica en cualquier región (países, estados/provincias, ciudades o códigos postales).
  • En WooCommerce se pueden dar de alta cuantas clases de impuestos necesitemos. Por ejemplo: podemos tener en nuestra tienda online productos con IVA (una camiseta) y servicios libres de IVA (curso de WordPress).
  • El costo del producto y el costo de envío pueden tener «clases de impuestos» diferentes. Por ejemplo: Una cesta de frutas tiene un 10% de IVA por ser alimentos mientras que el envío lleva un 21% de IVA.

Configuraciones generales de impuestos

Antes de ver los pasos sobre cómo dar de alta «Clases de impuestos» vamos a ver las distintas configuraciones generales de los impuestos en WooCommerce. Para acceder al formulario debemos ir al menú WooCommerce » Ajustes » Impuesto » Opciones de impuestos. El formulario nos presenta los siguientes campos:

Configuración general de impuestos en WooCommerce
  1. Precios con impuestos incluidos: ¿Cómo debe calcular WooCommerce los impuestos? Si seleccionamos la opción «No, introduciré los precios sin impuestos» sumará los impuestos al precio que indiquemos en el producto. Si seleccionamos la opción «Sí, voy a introducir los precios con impuestos incluidos» entiende que el precio del producto ya tiene todos los impuestos.
  2. Calcular impuesto basado en: Como he explicado anteriormente algunos impuestos se aplicarán según una determinada zona. El campo permite las siguientes opciones:
    1. Dirección de envío del cliente
    2. Dirección de pedido del cliente
    3. Localización del negocio.
  3. Clase de impuesto por envío: Qué impuesto tiene el costo de envío. Aquí podremos elegir una «clase de impuesto» que explicaremos en el siguiente apartado.
  4. Redondeo: En caso de estar activo WooCommerce hará un redondeo final con la sumatoria de todos los impuestos. En caso de estar desactivado hará un redondeo por cada impuesto.
  5. Clases de impuestos adicionales: Si nuestra tienda online necesita otras configuraciones de impuestos debemos asignar en este campo el nombre general. Al guardar los cambios se generará una nueva pestaña para configurar los posibles impuestos.
  6. Mostrar precios en la tienda: En todas las páginas de la tienda ¿Mostramos los precios con o sin IVA?
  7. Mostrar precios en el carrito y en el pago: En las páginas de «carrito» (previa al pago) y en la de pago (checkout) ¿Mostramos los precios con o sin IVA?
  8. Sufijo a mostrar en el precio: Este campo nos permite agregar algún texto después del precio Por ejemplo podríamos agregar «IVA incluido».
  9. Visualización del total de impuestos:
    1. Como un total único: Se muestra una fila con el total de impuesto.
    2. Detallado: Se muestra una fila con el impuesto por cada producto comprado.

¿Cómo añadir/editar/borrar impuestos en una clase?

Para acceder al formulario de alta/edición de impuestos debemos pinchar en la pestaña con el nombre de la clase de impuesto deseada. A modo de ejemplo vamos a crear un nuevo impuesto en la clase «Estándar»:

Formulario de alta de impuesto en WooCommerce
  1. Código de país: ¿A qué país vamos asignar el impuesto? En caso de aplicar a todos los países debemos dejarlo en blanco. El código de país se conforma de 2 letras en mayúsculas, a España le corresponde el código «ES». Si no sabemos el código de nuestro país podemos averiguarlo en la columna «Alpha-2-code» de la ISO 3166-1.
  2. Código de provincia: En este campo podemos agregar el código de la provincia. Son las dos últimas letras de la columna «Code» de la ISO 3166-2:ES. Dejar en blanco para aplicar a todas las provincias.
  3. Código Postal: Podemos especificar un impuesto para uno o más código postales. Dejar en blanco para aplicar a todos los códigos postales. Se pueden especificar de las siguientes maneras:
    1. Escribiendo los códigos postales en el campo separados por punto y comas «;».
    2. Códigos postales con comodín *: Por ejemplo “280*” equivale a cualquier código postal que comience por 280 (28012, 28077, etc).
    3. Códigos postales con reglas de rangos: Por ejemplo “28000…28100” equivale a cualquier código postal entre el 28000 y el 28100.
  4. Ciudad: Podemos también especificar los nombres de las ciudades separados por punto y coma «;».  Dejar en blanco para aplicar a todas las ciudades.
  5. Tarifa %: Porcentaje de impuesto a aplicar con 4 posiciones de decimales.
  6. Nombre del impuesto: Indicamos un nombre para que el usuario pueda identificarlo en la tienda.
  7. Prioridad: En caso de aplicar más de un impuesto al mismo producto en qué orden se aplicarán.
  8. Compuesto: Si la casilla está marcada se aplicará el impuesto al producto antes de aplicar el resto de los impuestos.
  9. Envío: ¿Aplica también el impuesto para los costos de envío?
  10. Importar CSV: Nos lleva a otro formulario para que podamos importar un fichero .CSV con impuestos.
  11. Exportar en formato CSV: Este botón nos permite descargar un fichero .CSV con los impuestos de la clase actual.

Para editar un impuesto:

Basta simplemente con pinchar en algunas de las celdas de la tabla y modificar los valores.

Para borrar un impuesto:

Debemos pinchar la fila que deseamos borrar. La misma cambiará su color de fondo por uno amarillo. Luego pinchamos el botón con la leyenda «Eliminar fila seleccionada(s)».

Eliminar impuesto en WooCommerce

Configurar el impuesto de IVA de España para Ceuta, Canarias y Melilla en WooCommerce

España tiene algunas regiones que están exentas de IVA como es el caso de Ceuta, Canarias y Melilla (aunque tienen otros impuestos como el IGIC y el IPSI). Estas excepciones de impuestos deben estar configuradas de la siguiente manera:

  • Vamos a agregar una fila para cada provincia. Sus códigos son: «GC» (Las palmas),»TF» (Tenerife), «ML» (Melilla) y «CE» (Ceuta).
  • Como estamos especificando las provincias enteras no hace falta delimitar por códigos postales. Estos campos los mantenemos con el signo asterisco (*).
  • A cada provincia vamos a asignar una tarifa de 0,0000%.
  • En la última fila vamos a agregar el IVA del 21% para el resto de las zonas.

La tabla debería quedar así:

Impuestos excentos IVA España Ceuta Melilla Canarias

De la dirección de envío de nuestro cliente pertenece a Canarias, Ceuta o Melilla su producto estará exento de IVA, caso contrario se aplica la última fila correspondiente al resto de las zonas aplicando un 21% de IVA.


Otros impuestos reducidos

Si algunos de nuestros productos tienen un porcentaje reducido de impuestos podemos crearlos en la clase «Reduced rate» que se instala por defecto con WooCommerce o bien modificar el nombre en las opciones generales. Una vez que accedemos a la tabla de dicha clase damos de alta los impuestos siguiendo los mismo pasos que utilizamos para configurar el IVA. Por ejemplo, vamos a crear una clase de impuestos para una tasa de 10%. La tabla quedaría de la siguiente manera:

Tabla con el IVA reducido WooCommerce
  • Marcamos la tarifa en 10,000%
  • Le cambiamos el nombre para que haya una referencia en la tienda.
  • Desmarcamos las casillas de envío para que se siga aplicando el 21% de la tarifa estándar.

Una vez que tenemos definida la clase de impuesto reducida solo nos resta asignar la regla al producto. Para ello editamos el producto y en la pestaña general asignamos la nueva clase:

Producto con impuestos reducidos

Taxonomías de WooCommerce: Atributos

Otra forma muy importante de agrupar productos por características similares son los llamados «atributos». Este tipo de taxonomía tiene 2 funcionalidades muy importantes dentro del ecosistema de WooCommerce:

  1. Los atributos pueden ser usados como filtros en las páginas con listados de productos.
  2. Los atributos son la base para las variaciones de los productos. A través de los distintos términos de un atributo se pueden modificar las configuraciones de un producto.
Filtro de productos por atributos
Filtro de productos por valores del atributo «Color» en WooCommerce

Añadir y editar atributos de productos

Configurar atributos globales

Hay que tener en cuenta que todos los atributos que demos de alta en la tienda online serán globales. Por ejemplo: si definimos un atributo llamado «Color» con los términos «rojo, azul, amarrillo, marrón» podrán utilizarse para cualquier producto que tenga asignado el atributo «Color».

Para agregar, quitar o modificar atributos debemos acceder al formulario del menú Productos » Atributos.

Formulario de atributos de productos en WooCommerce
  1. Nombre: ¿Qué nombre tendrá el atributo?
  2. Slug: el slug es el nombre que se utilizará en las URL’s (enlaces) de nuestra tienda online. No tiene por qué ser igual al nombre del atributo.
  3. ¿Activamos el archivo?: En caso de activarlo el atributo tendrá una página propia en la que se listarán sus productos.
Archivo de productos por atributo
Página con listado de productos del atributo «Color» y específicamente con el término «black» (negro).
  • Tipo: ¿De qué manera vamos a seleccionar los valores del atributo en nuestro producto? Bien puede ser a través de texto o con un selector desplegable (recomiendo esta última opción).

  • Orden predeterminado: ¿En qué orden se mostrarán los valores de los atributos? El mismo puede ser por nombre, nombre (númerico), ID del valor del atributo.
  • Listado de atributos: Una vez que pinchemos el botón «Añadir término» se agregará al listado con los demás términos de la tienda online. Para agregar términos debemos pinchar en el enlace «Configurar términos», el cual nos llevará al siguiente formulario:
  • Formulario de alta de término de atributo
    1. Nombre: ¿Qué nombre tiene el nuevo término del atributo?
    2. Slug: el slug es el nombre que se utilizará en las URL’s (enlaces) de nuestra tienda online.
    3. Descripción: En algunos temas puede mostrarse la descripción en el listado de productos con el presente término de atributo.
    4. Listado de términos: Una vez que pinchemos en «Añadir nuevo Tamaño» (o el nombre que le hayamos puesto al atributo) se añadirá al listado con los restantes términos.

    Página 2 de 6

    Funciona con WordPress & Tema de Anders Norén