• Ir a navegación principal
  • Ir al contenido principal
  • Ir a la barra lateral primaria

DecodeCMS

Tu WordPress a otro Nivel ...

  • Acerca de
  • Contacto
  • Inicio
  • Tutoriales
    • Themes
    • Plugins
    • Core
    • Recursos
  • Cursos
Inicio / Tutoriales / Plugins / Agregar Microdatos en campos de productos en WooCommerce
Anuncio banner webservi

Agregar Microdatos en campos de productos en WooCommerce

Agregar Microdatos en campos de productos en WooCommerce

[ 26 marzo 2019 ] [ Autor: Jhon Marreros Guzmán ][ Plugins - Avanzado] [ ]

mejoras optimización

¿Me ayudas a llegar a más gente?

Twittear Compartir LinkedIn WhatsApp

En un artículo anterior vimos cómo añadir campos personalizados en productos de WooCommerce, sin embargo no detallamos cómo agregar para estos campos adicionales los datos estructurados o microdatos, en este artículo veremos cómo realizar esto.

 

Generalidades

Usaremos el plugin Advanced Custom Fields para agregar el campo personalizado adicional para el producto, agregaremos un campo llamado Marca. En la siguiente imagen vemos como se ha creado el campo de marca.

Campo marca creado con ACF

Si tienes dudas sobre cómo llenar este campo para cada producto y cómo mostrarlo en el front-end de tu sitio revisa el artículo: Cómo añadir campos personalizados en productos de WooCommerce.

 

Agregando valores para la marca

Al ingresar al detalle de un producto verás que aparece un campo adicional de marca, tal como se muestra en la siguiente imagen.

Campo personalizado en detalle producto

 

Microdatos por defecto para un Producto

WooCommerce crea microdatos usando Json, para nuestro ejemplo definiremos el microdato adicional «brand» para un producto de acuerdo a Schema.org

Por ejemplo el siguiente código muestra algunos microdatos en formato Json:

<script type="application/ld+json">
{
  "@context": "http://schema.org",
  "@type": "ItemList",
  "url": "http://encurso/wordpress_5/producto/vneck-tee/",
  "numberOfItems": "100",
  "itemListElement": [{
      "@type": "Product",
      "image": "http://encurso/wordpress_5/wp-content/uploads/2019/02/vneck-tee.jpg",
      "url": "http://encurso/wordpress_5/producto/vneck-tee/",
      "name": "Camiseta de cuello en V"
    },{
      "@type": "Product",
      "name": "..."
    }
  ],
    "offers": {
      "@type": "Offer",
      "price": "18"
    }
    ...
}
</script>

A este código Json será necesario agregar «brand» con el nombre de la marca para un determinado producto.

Puedes comprobar el json de microdatos generados viendo el código HTML en la página de detalle de producto.

 

Código para agregar Microdatos adicionales al Producto

El siguiente código agrega el microdato de marca a los microdatos ya existentes en el producto.


add_filter( 'woocommerce_structured_data_product', 'dcms_product_microdata', 10, 2 );

function dcms_product_microdata( $markup, $product ){
	if ( function_exists('get_field')){
		if ( get_field('marca')!='' ){
			$markup['brand'] = get_field('marca');			
		}
    }
    return $markup;
}

En el código anterior:

  • Usamos un hook de filtro llamado woocommerce_structured_data_product el cual hace referencia a la función dcms_product_microdata
  • La función acepta dos parámetros, sólo modificaremos el $markup que es un array en donde se guarda los microdatos
  • Comprobamos si la función get_field del plugin ACF existe
  • A través de esta función obtenemos el valor del campo marca para un producto determinado
  • Agregamos el valor obtenido en un nuevo elemento de array llamado brand
  • Finalmente retornamos el array modificado

Puedes agregar este código en el archivo functions.php de tu child theme o como parte del código de un plugin.

 

Resultado final

Como resultado obtendremos el código Json con el microdato de marca al final.

<script type="application/ld+json">
{
  "@context": "http://schema.org",
  "@type": "ItemList",
  "url": "http://encurso/wordpress_5/producto/vneck-tee/",
  "numberOfItems": "100",
  "itemListElement": [{
      "@type": "Product",
      "image": "http://encurso/wordpress_5/wp-content/uploads/2019/02/vneck-tee.jpg",
      "url": "http://encurso/wordpress_5/producto/vneck-tee/",
      "name": "Camiseta de cuello en V"
    },{
      "@type": "Product",
      "name": "..."
    }
  ],
    "offers": {
      "@type": "Offer",
      "price": "18"
    }
    ...
    "brand": "Affliction"
}
</script>

 

Conclusión

Como has podido ver, siempre que agregues campos personalizados a tus productos es recomendable igualmente agregar estos campos como microdatos siguiendo las recomendaciones de schema.org.

 
¿Aún con dudas?, en el siguiente video se explica los puntos tratados anteriormente.

Suscríbete a DecodeCMS:  

 

¿Me ayudas a llegar a más gente?

Twittear Compartir LinkedIn WhatsApp

Artículos Relacionados

  • Exportar / importar  la configuración del personalizador de temas en WordPressExportar / importar la configuración del personalizador de temas en WordPress
  • Personalizar página de gracias de WooCommercePersonalizar página de gracias de WooCommerce
  • Configura el tema Twenty Twenty One WordPressConfigura el tema Twenty Twenty One WordPress
  • Abrir enlaces externos en un nuevo tab automáticamenteAbrir enlaces externos en un nuevo tab automáticamente
Valora este artículo : 1 barra2 barras3 barras4 barras5 barras (4 votos, promedio: 5,00 de 5)
Cargando...

Interacciones con los lectores

Comentarios

  1. Nancy

    6 junio, 2019

    Muy útil tu artículo, me ha servido de ayuda 🙂

  2. rogermc

    3 agosto, 2019

    «Puedes agregar este código en el archivo functions.php de tu child theme o como parte del código de un plugin»
    ¿Se supone que un plugin de marcado deberia detectar los campos adicionales que explicas como por ejemplo el «Brand»? o varia segun el plugin?

    • Jhon Marreros Guzmán

      8 agosto, 2019

      Hola, si usas un plugin que agrega campos teóricamente debería agregar estos campos a los microdatos, en todo caso si no los agrega tendrías que hacerlo tal como comento en este artículo.

  3. Víctor

    12 septiembre, 2019

    ¿Como puedo agregar reviews? ….

    • Jhon Marreros Guzmán

      13 septiembre, 2019

      Hola, puesto que las revisiones son ingresadas por el usuario a través de una interfaz, la forma más simple es que lo hagas con un plugin, por ejemplo con: Customer Reviews for WooCommerce

  4. Jose Antonio

    23 noviembre, 2019

    Perfecto. Todo fue bien y sin problema con el campo de marca «brand». Al querer agregar un nuevo campo «aggregateRating» repitiendo la operacion, functions.php da error fatal. ¿Como resuelvo añadir varios campos con sus correspondientes microdatos? Gracias. Un saludo.

    • Jhon Marreros Guzmán

      25 noviembre, 2019

      Hola, tendrías que detallar un poco más el error que te aparece, puedes activar el modo debug y ver exactamente el mensaje de error. Sin embargo si estas usando algún plugin para Rating en WooCommerce ya tendría que agregarte el microdato el propio plugin.

  5. pepe

    19 diciembre, 2019

    Muchas gracias. Muy util.

  6. dani

    12 marzo, 2020

    Hola, por que wordpres 5.3 no viene tag y category en wocomerce?.

    • Jhon Marreros Guzmán

      13 marzo, 2020

      Hola Dani, no me queda claro a qué te refieres, en todas las versiones de WordPress se incluyen ambas taxonomías, Categorías y etiquetas, esto a nivel de WordPress sin embargo a nivel de WooCommerce igualmente tienes Categorías y Etiquetas para productos.

  7. dani

    14 marzo, 2020

    No me sale el tag y categoria en wocomerce pero en las entradas si.. desde que atualice wordpres..

    • Jhon Marreros Guzmán

      14 marzo, 2020

      Hola lo que comentas no tiene que ver con este artículo, de manera general prueba con esta url: https://tudominio.com/wp-admin/edit-tags.php?taxonomy=product_cat&post_type=product , cambia tu dominio.com, para las etiquetas podrías hacerlo cambiando el parámetro taxonomy a product_tag, no tiene que ver con la versión de WordPress, debes tener algún tipo de problema con algún plugin o algo que haya ido mal en la actualización. Si sigues con problemas puedes comentarme detalles en el formulario de contacto.

  8. jorge

    19 abril, 2020

    Hola buenas, no entiendo mucho de programación, tengo una tienda online y quiero poner datos estructurados, comprendo que woocomerce me da unos ya preestablecidos pero no completos del todo. Con el código que das e introducir los valores que me falten sobraría?? No hace falta borrar los que te da woocommerce por defecto, no?
    Y otra pregunta,¿para añadir más valores cómo seria el código que hay que pegar debajo del de marca??

    • Jhon Marreros Guzmán

      19 abril, 2020

      Hola, si no has realizado personalizaciones por código para el producto, los microdatos que te da WooCommerce deberían ser suficientes en tu caso. Para agregar campos adicionales puedes revisar: https://decodecms.com/campos-personalizados-en-productos-de-woocommerce/ . Saludos.

  9. Edha

    3 junio, 2020

    muchas gracias por tu articulo, muy currado.
    He seguido todos tus pasos pero en la herramienta de datos estructurados de google me sigue diciendo que me falta el campo «brand»…llevo tiempo intentándolo solucionar si éxito 🙁
    Si sabes de algo que pueda hacer…
    gracias de antemano

    • Jhon Marreros Guzmán

      3 junio, 2020

      Hola, esta información la ingresas usualmente a través de un plugin, el plugin que uses asegúrate de que ya incluya datos estructurados para la marca, puedes evaluar por ejemplo: https://es.wordpress.org/plugins/perfect-woocommerce-brands/ , ya te agrega los microdatos el mismo plugin por lo que no tienes que agregarlos manualmente.

  10. Federico

    21 agosto, 2020

    Hola Jhon gracias por tus tutoriales son simple y al punto.
    Yo he crado un ACF llamado “puntos” que son puntos por producto que se brindan para determinar según puntos acumulados que precio se aplicará finalmente al producto.
    He visto tus ambos tutoriales sobre campos personalizados y microdatos, mi consulta es como puedo hacer para mostrar por cada producto la suma de puntos para que el cliente sepa que precio se aplicará finalmente a su total. Esa información la querría mostrar en finalizar compra y en el mail que llega tanto a cliente como admin. ¿Se puede hacer esto?

    • Jhon Marreros Guzmán

      22 agosto, 2020

      Hola, efectivamente faltaría aplicar los puntos en el total, posiblemente implique trabajar con más de un hook, has evaluado usar un plugin para esto?, veo por ejemplo que este podría servirte: https://docs.woocommerce.com/document/woocommerce-points-and-rewards/

Para escribir código envolver con: <pre class="language-xxx"><code> </code></pre> ,reemplaza las xxx (php, css, html)

*

* Gravatar habilitado

Barra lateral primaria

Presentación

Únete a DecodeCMS

Recibirás como regalo:

Guia práctica con video:
Los 5 posibles errores que estas cometiendo cuando trabajas con código en WordPress

Niveles

Básico Intermedio Avanzado

Etiquetas

accesibilidad css dashboard editor error funcionalidad herramientas imagen js librería mejoras optimización seguridad social

Populares

Agregar super administrador a multisitio de WordPress

Crear un sitio One Page en WordPress

Usar funciones de WordPress fuera de WordPress

Excluir entradas en el inicio de WordPress

Recientes

  • Exportar / importar la configuración del personalizador de temas en WordPress
  • Personalizar página de gracias de WooCommerce
  • Configura el tema Twenty Twenty One WordPress
  • Abrir enlaces externos en un nuevo tab automáticamente
alojamiento wordpress

© logo decode pie Copyright 2021 | Todos los derechos reservados | Política de Privacidad