do not show sidebars on WooCommerce pages

This commit is contained in:
Stef Kariotidis 2016-11-19 13:05:37 +02:00
parent 91b04484b0
commit 89bb11b0ea
2 changed files with 94 additions and 37 deletions

View File

@ -1,13 +1,52 @@
<?php
$sidebar_pos = get_theme_mod( 'understrap_sidebar_position' );
// On WooCommerce pages there is no need for sidebars as they leave
// too little space for WooCommerce itself. We check if WooCommerce
// is active and the current page is a WooCommerce page and we do
// not render sidebars.
$is_woocommerce = false;
$this_page_id = get_queried_object_id();
if ( class_exists( 'WooCommerce' ) ) {
if ( is_woocommerce() || is_shop() || get_option( 'woocommerce_shop_page_id' ) === $this_page_id ||
get_option( 'woocommerce_cart_page_id' ) == $this_page_id || get_option( 'woocommerce_checkout_page_id' ) == $this_page_id ||
get_option( 'woocommerce_pay_page_id' ) == $this_page_id || get_option( 'woocommerce_thanks_page_id' ) === $this_page_id ||
get_option( 'woocommerce_myaccount_page_id' ) == $this_page_id || get_option( 'woocommerce_edit_address_page_id' ) == $this_page_id ||
get_option( 'woocommerce_view_order_page_id' ) == $this_page_id || get_option( 'woocommerce_terms_page_id' ) == $this_page_id) {
$is_woocommerce = true;
}
}
?>
<?php if ( 'left' === $sidebar_pos || 'both' === $sidebar_pos ): ?>
<?php if ( 'left' === $sidebar_pos || 'both' === $sidebar_pos && !$is_woocommerce ) : ?>
<?php get_sidebar( 'left' ); ?>
<?php endif; ?>
<?php if ( 'right' === $sidebar_pos || 'left' === $sidebar_pos ): ?>
<div class="<?php if ( is_active_sidebar( 'right-sidebar' ) || is_active_sidebar( 'left-sidebar' )) : ?>col-md-8<?php else : ?>col-md-12<?php endif; ?> content-area" id="primary">
<?php
if ( $is_woocommerce ) {
echo '<div class="col-md-12 content-area" id="primary">';
} else {
$html = '';
if ( 'right' === $sidebar_pos || 'left' === $sidebar_pos ) {
$html = '<div class="';
if ( is_active_sidebar( 'right-sidebar' ) || is_active_sidebar( 'left-sidebar' ) ) {
$html .= 'col-md-8 content-area" id="primary">';
} else {
$html .= 'col-md-12 content-area" id="primary">';
}
echo $html;
} elseif ( is_active_sidebar( 'right-sidebar' ) && is_active_sidebar( 'left-sidebar' ) ) {
$html = '<div class="';
if ( 'both' === $sidebar_pos ) {
$html .= 'col-md-6 content-area" id="primary">';
} else {
$html .= 'col-md-12 content-area" id="primary">';
}
echo $html;
}
}
?>
<?php elseif ( is_active_sidebar( 'right-sidebar' ) && is_active_sidebar( 'left-sidebar' ) ): ?>
<div class="<?php if ( 'both' === $sidebar_pos ) : ?>col-md-6<?php else : ?>col-md-12<?php endif; ?> content-area" id="primary">
<?php endif; ?>

View File

@ -16,11 +16,28 @@
<?php
$container = get_theme_mod( 'understrap_container_type' );
$sidebar_pos = get_theme_mod( 'understrap_sidebar_position' );
// On WooCommerce pages there is no need for sidebars as they leave
// too little space for WooCommerce itself. We check if WooCommerce
// is active and the current page is a WooCommerce page and we do
// not render sidebars.
$is_woocommerce = false;
$this_page_id = get_queried_object_id();
if ( class_exists( 'WooCommerce' ) ) {
if ( is_woocommerce() || is_shop() || get_option( 'woocommerce_shop_page_id' ) === $this_page_id ||
get_option( 'woocommerce_cart_page_id' ) == $this_page_id || get_option( 'woocommerce_checkout_page_id' ) == $this_page_id ||
get_option( 'woocommerce_pay_page_id' ) == $this_page_id || get_option( 'woocommerce_thanks_page_id' ) === $this_page_id ||
get_option( 'woocommerce_myaccount_page_id' ) == $this_page_id || get_option( 'woocommerce_edit_address_page_id' ) == $this_page_id ||
get_option( 'woocommerce_view_order_page_id' ) == $this_page_id || get_option( 'woocommerce_terms_page_id' ) == $this_page_id) {
$is_woocommerce = true;
}
}
?>
<div class="wrapper" id="page-wrapper">
<div class="<?php echo $container?>" id="content" tabindex="-1">
<div class="<?php echo esc_html( $container ) ?>" id="content" tabindex="-1">
<div class="row">
@ -34,7 +51,7 @@ $sidebar_pos = get_theme_mod('understrap_sidebar_position');
<?php get_template_part( 'loop-templates/content', 'page' ); ?>
<?php
// If comments are open or we have at least one comment, load up the comment template
// If comments are open or we have at least one comment, load up the comment template.
if ( comments_open() || get_comments_number() ) :
comments_template();
endif;
@ -49,7 +66,8 @@ $sidebar_pos = get_theme_mod('understrap_sidebar_position');
<!-- Do the right sidebar check -->
<?php if ( 'right' === $sidebar_pos || 'both' === $sidebar_pos ) : ?>
<?php get_sidebar( 'right' ); ?>
<?php if ( !$is_woocommerce ) : get_sidebar( 'right' ); ?>
<?php endif; ?>
<?php endif; ?>