Mostrar pestaña solo si contiene texto en Woocommerce

  • Autor Autor yapooo
  • Fecha de inicio Fecha de inicio
Y

yapooo

Gamma
Verificación en dos pasos activada
Verificado por Whatsapp
Buenas.

He añadido en el woocommerce este codigo, para añadir otra pestaña en un producto de woocommerce.

Insertar CODE, HTML o PHP:
add_filter( 'woocommerce_product_tabs', 'woo_new_product_tab' );

function woo_new_product_tab( $tabs ) {

	$tabs['resumen_tab'] = array(
		'title' 	=> __( 'Resumen', 'woocommerce' ),
		'priority' 	=> 50,
		'callback' 	=> 'woo_new_product_tab_content'
	);

	return $tabs;

}
function woo_new_product_tab_content() {
	echo '<h2>Resumen</h2>';
	echo get_post_meta( get_the_ID(), 'resumen', true );
}

Y tengo dos preguntas:

1) ¿Se podría hacer algo para que solo se muestre la pestaña si se le ha añadido texto? Es decir, si no se le ha escrito nada, no se muestra esa pestaña en el producto.

2) Que debo modificar de ahí para añadir otra pestaña más correctamente? Cambiar el nombre de "woo_new_product_tab" y "woo_new_product_tab_content" ? (Esta respuesta ya la obtuve trasteando) ^^

Gracias!
 
Última edición:
Buenas.

He añadido en el woocommerce este codigo, para añadir otra pestaña en un producto de woocommerce.

Insertar CODE, HTML o PHP:
add_filter( 'woocommerce_product_tabs', 'woo_new_product_tab' );

function woo_new_product_tab( $tabs ) {

    $tabs['resumen_tab'] = array(
        'title'     => __( 'Resumen', 'woocommerce' ),
        'priority'     => 50,
        'callback'     => 'woo_new_product_tab_content'
    );

    return $tabs;

}
function woo_new_product_tab_content() {
    echo '<h2>Resumen</h2>';
    echo get_post_meta( get_the_ID(), 'resumen', true );
}

Y tengo dos preguntas:

1) ¿Se podría hacer algo para que solo se muestre la pestaña si se le ha añadido texto? Es decir, si no se le ha escrito nada, no se muestra esa pestaña en el producto.

2) Que debo modificar de ahí para añadir otra pestaña más correctamente? Cambiar el nombre de "woo_new_product_tab" y "woo_new_product_tab_content" ? (Esta respuesta ya la obtuve trasteando) ^^

Gracias!
¡Hola!

1) Para que la pestaña solo se muestre si contiene texto, puedes agregar una condición que verifique si el campo 'resumen' tiene contenido antes de mostrar la pestaña. Aquí te dejo una versión actualizada de tu código con esta condición:

PHP:
add_filter( 'woocommerce_product_tabs', 'woo_new_product_tab' );

function woo_new_product_tab( $tabs ) {
    global $post;
   
    $resumen = get_post_meta( $post->ID, 'resumen', true );

    if ( ! empty( $resumen ) ) {
        $tabs['resumen_tab'] = array(
            'title'     => __( 'Resumen', 'woocommerce' ),
            'priority'  => 50,
            'callback'  => 'woo_new_product_tab_content'
        );
    }

    return $tabs;
}

function woo_new_product_tab_content() {
    global $post;
   
    $resumen = get_post_meta( $post->ID, 'resumen', true );

    if ( ! empty( $resumen ) ) {
        echo '<h2>Resumen</h2>';
        echo $resumen;
    }
}

Este código verificará si el campo 'resumen' contiene algún contenido antes de añadir la pestaña y mostrar su contenido.

2) Para añadir otra pestaña correctamente, simplemente necesitas modificar los nombres de las funciones y los identificadores 'resumen_tab' para evitar conflictos. Puedes seguir un enfoque similar al proporcionado arriba cambiando los nombres adecuadamente.

Espero que esta información te sea de ayuda. ¡Déjame saber si tienes alguna otra pregunta!
 
Atrás
Arriba