Woocommerce: Como añadir marcaje “brand” en el schema products.

Como sabréis, Woocommerce, sin ningún otro plugin, no te hace el marcaje json-ld del campo “brand” porque Woocommerce no incluye la marca de producto por defecto. De hecho necesitarás el plugin WooCommerce Brands para añadir la marca en woocommerce.

¿Que hay otros plugins mejores para hacer esto? Quizás si, quizás no, por ahora lo vamos a probar con este plugin que es el oficial. Si conocéis alguno que ya integre el marcaje de “marca” en los datos estructurados, ¡Bingo! pero era el plugin que el cliente tenía instalado y no le podía cambiar por otro.

Añadir el marcaje en json-ld dentro del archivo correspondiente

El segundo cerdito pensó, mejor no voy contra del sentido común y añado un campo en el marcaje json-ld en el product schema del woocommerce. Pero voy a encontrar primero dónde está.

Acceder al archivo de woocommerce donde crea los datos estructurados de producto y insertar este marcaje de marca, para hacerlo de este modo hay que ir al archivo:

tuweb.com/wp-content/plugins/woocommerce/includes/class-wc-structured-data.php

Añadir en la línea 214 aprox:

$brand = array_shift(wc_get_product_terms($product->id, 'product_brand', array( 'fields' => 'names' ) ));
$markup['brand'] = $brand;

¿Qué pasó? Bingo ya funcionaba, el marcaje de “brand” dentro del schema product y funcionando.

¿Cual es el problema de este ajuste chusquero? A la que haces una actualización de woocommerce todo este código se pierde, vamos que “se va a la puta”, como el de la moto.

¿Hay una solución definitiva? Añadir esta función json-ld en un archivo functions.php mediante un child theme.