¿Cómo elimino la barra lateral de Woocommerce del carrito, el pago y las páginas de un solo producto?

6 minutos de lectura

avatar de usuario
Oliver Martín

Como muchas personas que comienzan a usar woocommerce por primera vez, necesito saber cómo personalizarlo. En mi situación particular, quiero eliminar la barra lateral de las páginas del carrito, el pago y un solo producto. Mi barra lateral está definida y llamada desde barra lateral.php usando el siguiente código:

<?php dynamic_sidebar('global-sidebar'); ?>

He intentado durante mucho tiempo encontrar una respuesta que funcione, pero parece que no puedo encontrar el código o la solución correctos. Tal vez hacer la pregunta yo mismo funcione. Por cierto, realmente aprecio las respuestas en los otros artículos y procedimientos, pero no funcionan para mí.

Antes de continuar, estoy usando Bootstrap (última versión a partir de 2014) para diseñar mi sitio web de WordPress. No estoy seguro de si eso importa, pero tal vez lo haga de alguna manera.

¿Puede alguien decirme cómo encuentro y luego le digo a Woocommerce que no muestre ningún tipo de barra lateral en las páginas de carrito, pago y producto único?

ps El sitio web se puede encontrar aquí > wp.wunderful.co.uk (sitio de prueba para un proyecto de sitio web de un cliente)

  • ¿Revisaste el menú de widgets en esas páginas?

    – Siyah

    06/09/2014 a las 13:25

  • No estoy familiarizado con el funcionamiento de los widgets en estas páginas. Las páginas de woocommerce me confunden, de ahí el pedido de ayuda. Gracias por tu comentario.

    –Oliver Martín

    06/09/2014 a las 21:21

  • Si te parece bien, puedo comprobarlo por ti en el panel de administración.

    – Siyah

    7 de septiembre de 2014 a las 7:39

  • Estoy evitando hacer esto, así que no lo siento.

    –Oliver Martín

    7 de septiembre de 2014 a las 8:18

Vaya a la página “Carrito” desde las páginas del tablero, desde “Sección de atributos de página” -> “Plantillas”, elija “Ancho completo”, esto le dará una página sin barra lateral.

  • De todas las soluciones que se ofrecen, esta es la más simple y no requiere edición de código.

    –Steve

    2 de julio de 2021 a las 0:45

avatar de usuario
helgatheviking

En teoría, algo como lo siguiente debería funcionar, pero no lo he probado. (Para ser agregado a las funciones de su tema.php)

function so_25700650_remove_sidebar(){
    if( is_checkout() || is_cart() || is_product() ){
        remove_action( 'woocommerce_sidebar', 'woocommerce_get_sidebar', 10 );
    }
}
add_action('woocommerce_before_main_content', 'so_25700650_remove_sidebar' );

Si miras las plantillas de Woo verás

<?php
    /**
     * woocommerce_sidebar hook
     *
     * @hooked woocommerce_get_sidebar - 10
     */
    do_action( 'woocommerce_sidebar' );
?>

Este es Woo diciendo: “Muestra la barra lateral aquí”. Pero es agregar el woocommerce_get_sidebar función a la woocommerce_sidebar gancho… lo cual es conveniente porque te permite desenganchar esa función como he mostrado arriba. Finalmente, estoy usando La lógica condicional de Woo para desenganchar la función de su acción solo en las páginas que solicitó.

Estoy ejecutando mi función en el woocommerce_before_main_content gancho, que creo que debería funcionar suponiendo que su tema no haya eliminado ese gancho. Si es así, entonces probablemente podrías usar wp_head o algo que está garantizado que estará allí, aunque entonces probablemente querrá verificar que el is_checkout(), etc. existen funciones o corre el riesgo de romper su tema si alguna vez desactiva WooCommerce. Tal como lo tengo, solo debería ejecutar en páginas específicas de WooCommerce, por lo que verificar si las funciones de WooCommerce están definidas es probablemente una exageración.

Nota IMPORTANTE:

Esto asume el tema predeterminado o un tema que no ejecuta sus propias funciones personalizadas de la barra lateral. Si su tema está haciendo otra cosa, deberá investigar sus funciones y plantillas particulares.

  • Me gusta la respuesta simple de digerir que proporcionó, gracias. Sin embargo, ¿puede aclarar si necesito eliminar el código “woocommerce_sidebar hook” y reemplazarlo con el código remove_sidebar o simplemente va debajo del código woocommerce_sidenar? Además, ¿en qué páginas específicas debo copiar y pegar el código que proporcionó?

    –Oliver Martín

    7 sep 2014 a las 17:58

  • Para aclarar, copié y pegué su código en la página single-product.php debajo del código de gancho original y no eliminó la barra lateral.

    –Oliver Martín

    7 sep 2014 a las 18:02

  • pudo copie todas las plantillas de Woo en su tema y elimine el enlace de la barra lateral donde lo desee, pero creo que sería más fácil pegar mi código en functions.php de su tema.

    – helgathevikingo

    7 sep 2014 a las 18:48


  • Woocommerce proporciona la woocommerce_before_main_content gancho en las páginas de consecución/tienda/product_cat solamente.. Puedes usar el woocommerce_before_cart gancho en la página del carrito y el woocommerce_before_checkout_form gancho en la página de pago. Y tienes que hacer el .content-area más ancho también.

    – Gleb Kemarsky

    9 de abril de 2017 a las 4:56


Lo que debes hacer es crear un archivo llamado woocomemrce.php en su tema si aún no existe. Luego, debe buscar en los archivos de plantilla de su página el ancho completo y la página con barra lateral para ver cómo están estructurados y ver dónde difieren. Luego copie el contenido de uno de los archivos en woocommerce.php y reemplace el ciclo con woocommerce_content(), ver esta página para más detalles. Por último, vea dónde difieren las diferentes plantillas de página y luego use declaraciones if en los lugares donde difieren.

if( is_post_type_archive( 'product' ) ) :
    //Content to display in the list view (i.e. with sidebar)
else :
    //Content to display all other views (i.e. without sidebar)
endif;

avatar de usuario
usuario6360563

.woocommerce-cart .sidebar {
    display: none;
}

.woocommerce-cart .content-area {
    width: 100%;
}

agrega esto en custom/style.css.

avatar de usuario
leonardo spinola

De

https://wordpress.org/support/topic/remove-sidebar-for-woocommerce-cart-and-checkout-pages/

En su tema, probablemente subtema, function.php

add_action('wp_head', 'hide_sidebar' ); function hide_sidebar(){ if(is_cart() || is_checkout()){ ?>
<style type="text/css">
    #secondary {
        display: none;
    }
</style>
<?php
}

  • esta es una solución alternativa, pero no una gran solución. una pantalla: ninguna; seguirá cargando el contenido aunque no esté visible, por lo que sería mejor eliminar el código que carga la barra lateral en primer lugar para optimizar el rendimiento.

    – AlphaX

    28 de septiembre de 2020 a las 12:07

  • Entonces, ¿cómo podemos eliminar el código… que carga la barra lateral?

    – El autobús de codificación

    4 de marzo de 2021 a las 7:26

avatar de usuario
Swapnali

Para eliminar la barra lateral del carrito, el pago y las páginas de un solo producto en las que desea usar el enlace de acción función.php expediente –

    add_action('woocommerce_before_main_content', 'remove_sidebar' );
    function remove_sidebar()
    {
        if( is_checkout() || is_cart() || is_product()) { 
         remove_action( 'woocommerce_sidebar', 'woocommerce_get_sidebar', 10);
       }
    }

Aquí puede obtener WooCommerce Action y Filter Hook:https://docs.woothemes.com/wc-apidocs/hook-docs.html

  • esta es una solución alternativa, pero no una gran solución. una pantalla: ninguna; seguirá cargando el contenido aunque no esté visible, por lo que sería mejor eliminar el código que carga la barra lateral en primer lugar para optimizar el rendimiento.

    – AlphaX

    28 de septiembre de 2020 a las 12:07

  • Entonces, ¿cómo podemos eliminar el código… que carga la barra lateral?

    – El autobús de codificación

    4 de marzo de 2021 a las 7:26

¿Ha sido útil esta solución?