fbpx

Insertar mensaje condicional en la ficha de producto de WooCommerce

En ocasiones mostrar un mensaje en la ficha de un producto, pero que no se aplique a todos los productos. Aprende cómo hacerlo de forma fácil y rápida.

Cuando tienes un ecommerce, las funcionalidades que puedes llegar a necesitar, pueden ser de lo más variopintas. Recientemente, uno de mis clientes necesitaba mostrar en sus productos la información del tiempo de envío. Dependiendo del producto, el envío puede realizarse en 24, 48 o 72 horas.

Seguramente ya estarás pensando algún plugin que puede resolver este mismo problema. Y es cierto, existen unos cuantos, como por ejemplo Booster for WooCommerce, que realizan esta función a la perfección.

Pero si sólo necesitas esta funcionalidad, no es necesario que sobrecargues tu instalación de WooCommerce con otro plugin más, cuando puedes resolverlo con unas pocas líneas de código en tu plugin de funciones. ¡Veamos cómo hacerlo paso a paso!

¿Cómo insertar mensaje condicional en la ficha de producto?

Para activar esta funcionalidad en tu instalación de WooCommerce sólo tienes que añadir el siguiente código en tu plugin de funciones:

// Agrega un checkbox en la pestaña general de la página de edición del producto 

add_action( 'woocommerce_product_options_general_product_data', 'mk_agrega_checkbox_producto' );        

function mk_agrega_checkbox_producto() {
woocommerce_wp_checkbox( array(
'id' => 'id_check',
'class' => '',
'label' => 'Etiqueta del check'  //Cambia la etiqueta del checkbox
)
);
}

// Guarda la información del checkbox via custom field

add_action( 'save_post', 'mk_guarda_checkbox_en_post_meta' );

function mk_guarda_checkbox_en_post_meta( $product_id ) {
    if ( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE )
        return;
    if ( isset( $_POST['id_check'] ) ) {
            update_post_meta( $product_id, 'id_check', $_POST['id_check'] );
    } else delete_post_meta( $product_id, 'id_check' );
}

// Muestra el mensaje solo si el check está marcado en la ficha de producto

add_action( 'woocommerce_single_product_summary', 'mk_muestra_mensaje_checkbox', 20 );  //Cambia el hook o la prioridad para mover la posición del mensaje

function mk_muestra_mensaje_checkbox() {
    global $product;
    if ( get_post_meta( $product->get_id(), 'id_check', true ) ) {
        echo 'TU MENSAJE PERSONALIZADO';  //Cambia tu mensaje
    }
}

Personalización del snippet

Como puedes comprobar, una vez aplicado el snippet, aparecerá el checkbox en la ficha de edición de cada producto.

insertar-mensaje-condicional-ficha-producto-woocommerce-check
El checkbox aparecerá en todos los productos, pero podrás activarlo sólo en aquellos que lo desees.

Para cambiar la etiqueta del checkbox solo tienes que editar la línea ‘label’ => ‘Etiqueta del check’ cambiando Etiqueta del check por lo que necesites.

Cuando este activas el check en un producto, la información se guarda en un campo personalizado. Esto es lo que nos sirve para luego mostrarlo condicionamente en la ficha de producto.

insertar-mensaje-condicional-ficha-producto-woocommerce-custom-field
A través de los campos personalizados se puede añadir información extra en WooCommerce.

Para cambiar el mensaje por lo que quieras, sólo tienes que editar la línea echo ‘TU MENSAJE PERSONALIZADO’;. Al usar una función echo puedes utilizar el código HTML que necesites.

insertar-mensaje-condicional-ficha-producto-woocommerce-front
Puedes insertar el mensaje o el código HTML que quieras y variar su posición como prefieras.

Por último, si quieres cambiar la ubicación del mensaje dentro de la ficha de producto, edita la línea add_action( ‘woocommerce_single_product_summary’, ‘mk_muestra_mensaje_checkbox’, 20 ); para cambiar el hook o la prioridad, tal y como veíamos en la personalización de la ficha de producto de WooCommerce.

¡Así de simple y así de fácil!

Si te ha gustado este tutorial, recuerda que si te suscribes, tendrás acceso a todo el contenido premium.

Y como siempre, si tienes cualquier problema, no dudes en contactar conmigo. Nos vemos en la próxima entrega, con un nuevo tutorial. 😉

Author avatar
Ángel Martín
Ayudo a emprendedores y empresas a digitalizar su negocio y sus procesos optimizando sus costes.