En algunas ocasiones, ya sea por requerimientos del cliente o necesidades de nuestro propio ecommerce, es posible que queremos mostrar alguna información adicional en la ficha de producto, ya sea en todos o de forma condicional según el producto, categoría, estado del inventario, etc…
Aunque existen plugins específicos para ello, no siempre se adaptan a lo que necesitamos y en cualquier caso, soy partidaria de depender del mínimo número de plugins posible, y más en un WooCommerce.
En este caso vamos a crear campos de texto para que el gestor de la tienda pueda añadir un aviso condicional, tanto a nivel de producto, como de variación.
Para ello, en nuestro plugin de funciones, mu-plugin o en el archivo functions.php de nuestro tema (ojo que en ese caso queda vinculado al theme que utilizamos), podemos utilizar las siguientes funciones.
Con esto tendremos un nuevo campo en la página de producto general y en cada una de las variaciones que luego podremos mostrar en la web según necesitemos.
Por ejemplo, con esta función podríamos mostrar el campo que hemos creado a nivel de producto bajo la descripción corta, sólo en el caso que el producto esté agotado:
function esl_aviso_general($content) {
global $product, $post;
$general = get_post_meta($post->ID, '_esl_custom_product_text_field', true);
$respuesta = $content;
if ( $product->is_type( 'simple' ) ) {
if($product->get_stock_quantity()<1) {
$respuesta = $content.'<div class="aviso_agotado_var">'.$general.'</div>';
}
}
return $respuesta;
}
add_filter( 'woocommerce_short_description', 'esl_aviso_general', 10, 2 );
Y en el caso de las variaciones, para recuperar el valor de cada campo deberíamos recorrer una a una:
$variation_ids = $product->get_children();
if ( empty( $variation_ids ) )
return $respuesta;
foreach( $variation_ids as $variation_id ) {
$variation = wc_get_product( $variation_id);
$adicional_var = get_post_meta($variation_id, '_custom_variation', true);
if($variation->get_stock_quantity()<1 && $adicional_var!='') {
$detalle .= '<div class="aviso_agotado_var">'.$adicional_var."</div>";
}
}
Estos son ejemplos de cómo podríamos recoger y utilizar la información que se ha guardado en cada campo, pero deberás aplicarlo a los condicionales y necesidades del proyecto en cada caso.
Si estás intentando añadir información o modificar en la ficha de producto de WooCommerce, esta guía visual de los hooks es muy útil: WooCommerce Visual Hook Guide: Single Product Page
¿Eres implementador o desarrollador WordPress?
En la Zona DPW encontrarás más recursos, tutoriales, plantillas, y una biblioteca de snippets para poder utilizar en tu día a día y ganar tiempo en tu trabajo:
ACCEDER AHORA