Skip to content

Instantly share code, notes, and snippets.

@schalkjoubert
Created January 25, 2018 14:14
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save schalkjoubert/6f84e66487b99421e11b548e770d0bea to your computer and use it in GitHub Desktop.
Save schalkjoubert/6f84e66487b99421e11b548e770d0bea to your computer and use it in GitHub Desktop.
FacetWP in Woocommerce Archive
<?php
/**
* The Template for displaying product archives, including the main shop page which is a post type archive
*
* This template can be overridden by copying it to yourtheme/woocommerce/archive-product.php.
*
* HOWEVER, on occasion WooCommerce will need to update template files and you
* (the theme developer) will need to copy the new files to your theme to
* maintain compatibility. We try to do this as little as possible, but it does
* happen. When this occurs the version of the template file will be bumped and
* the readme will list any important changes.
*
* @see https://docs.woocommerce.com/document/template-structure/
* @author WooThemes
* @package WooCommerce/Templates
* @version 2.0.0
*/
if ( ! defined( 'ABSPATH' ) ) {
exit; // Exit if accessed directly
}
get_header( 'shop' ); ?>
<?php
/**
* woocommerce_before_main_content hook.
*
* @hooked woocommerce_output_content_wrapper - 10 (outputs opening divs for the content)
* @hooked woocommerce_breadcrumb - 20
* @hooked WC_Structured_Data::generate_website_data() - 30
*/
do_action( 'woocommerce_before_main_content' );
?>
<header class="woocommerce-products-header">
<?php if ( apply_filters( 'woocommerce_show_page_title', true ) ) : ?>
<h1 class="woocommerce-products-header__title page-title"><?php woocommerce_page_title(); ?></h1>
<?php endif; ?>
<?php
if (is_product_category( 'computers' )) {
echo '<div class="container"><div class="row">';
//echo facetwp_display( 'facet', 'product_tags' );
echo '<div class="col">';
echo facetwp_display( 'facet', 'product_category_computers' );
echo '</div>';
echo '<div class="col">';
echo facetwp_display( 'facet', 'brand' );
echo '</div>';
echo '<div class="col">';
echo facetwp_display( 'facet', 'processor' );
echo '</div>';
echo '<div class="col">';
echo facetwp_display( 'facet', 'screen_size' );
echo '</div>';
echo '<div class="col">';
echo facetwp_display( 'facet', 'operating_system' );
echo '</div>';
echo '<div class="col">';
echo facetwp_display( 'facet', 'storage_size' );
echo '</div>';
echo '<div class="col">';
echo facetwp_display( 'facet', 'printer' );
echo '</div>';
echo '<div class="col">';
echo facetwp_display( 'facet', 'ink_black' );
echo '</div>';
echo '<div class="col">';
echo facetwp_display( 'facet', 'ink_colour' );
echo '</div>';
echo '</div></div>';
add_action( 'woocommerce_before_shop_loop', 'tsum_facet_reset', 10 );
}
if (is_product_category( 'notebooks' )) {
echo '<div class="container"><div class="row">';
echo '<div class="col">';
echo facetwp_display( 'facet', 'brand' );
echo '</div>';
echo '<div class="col">';
echo facetwp_display( 'facet', 'processor' );
echo '</div>';
echo '<div class="col">';
echo facetwp_display( 'facet', 'screen_size' );
echo '</div>';
echo '<div class="col">';
echo facetwp_display( 'facet', 'operating_system' );
echo '</div>';
//if( get_facetwp( 'facet', 'storage_size' ) ):
echo '<div class="col">';
echo facetwp_display( 'facet', 'storage_size' );
echo '</div>';
// endif;
echo '</div></div>';
add_action( 'woocommerce_before_shop_loop', 'tsum_facet_reset', 10 );
}
if (is_product_category( 'software' )) {
echo '<div class="container"><div class="row">';
echo '<div class="col">';
echo facetwp_display( 'facet', 'brand' );
echo '</div>';
echo '<div class="col">';
echo facetwp_display( 'facet', 'software_type' );
echo '</div>';
echo '</div></div>';
add_action( 'woocommerce_before_shop_loop', 'tsum_facet_reset', 10 );
}
if (is_product_category( 'ink-toners' )) {
echo '<div class="container"><div class="row">';
echo '<div class="col">';
echo facetwp_display( 'facet', 'brand' );
echo '</div>';
echo '<div class="col">';
echo facetwp_display( 'facet', 'ink_black' );
echo '</div>';
echo '<div class="col">';
echo facetwp_display( 'facet', 'ink_colour' );
echo '</div>';
echo '</div></div>';
dd_action( 'woocommerce_before_shop_loop', 'tsum_facet_reset', 10 );
}
if (is_product_category( 'monitors' )) {
echo '<div class="container"><div class="row">';
echo '<div class="col">';
echo facetwp_display( 'facet', 'brand' );
echo '</div>';
echo '<div class="col">';
echo facetwp_display( 'facet', 'screen_size' );
echo '</div>';
echo '</div></div>';
add_action( 'woocommerce_before_shop_loop', 'tsum_facet_reset', 10 );
}
if (is_product_category( 'desktop' )) {
echo '<div class="container"><div class="row">';
echo '<div class="col">';
echo facetwp_display( 'facet', 'brand' );
echo '</div>';
echo '<div class="col">';
echo facetwp_display( 'facet', 'processor' );
echo '</div>';
echo '<div class="col">';
echo facetwp_display( 'facet', 'operating_system' );
echo '</div>';
echo '<div class="col">';
echo facetwp_display( 'facet', 'hard_drive' );
echo '</div>';
echo '<div class="col">';
echo facetwp_display( 'facet', 'storage_size' );
echo '</div>';
echo '</div></div>';
add_action( 'woocommerce_before_shop_loop', 'tsum_facet_reset', 10 );
}
if (is_product_category( 'printers' )) {
echo '<div class="container"><div class="row">';
echo '<div class="col">';
echo facetwp_display( 'facet', 'brand' );
echo '</div>';
echo '<div class="col">';
echo facetwp_display( 'facet', 'printer' );
echo '</div>';
echo '</div></div>';
add_action( 'woocommerce_before_shop_loop', 'tsum_facet_reset', 10 );
}
?>
<div style="clear:both"></div>
<?php
/**
* woocommerce_archive_description hook.
*
* @hooked woocommerce_taxonomy_archive_description - 10
* @hooked woocommerce_product_archive_description - 10
*/
do_action( 'woocommerce_archive_description' );
?>
</header>
<div class="facetwp-template">
<?php if ( have_posts() ) : ?>
<?php
/**
* woocommerce_before_shop_loop hook.
*
* @hooked wc_print_notices - 10
* @hooked woocommerce_result_count - 20
* @hooked woocommerce_catalog_ordering - 30
*/
do_action( 'woocommerce_before_shop_loop' );
?>
<?php woocommerce_product_loop_start(); ?>
<?php woocommerce_product_subcategories(); ?>
<?php while ( have_posts() ) : the_post(); ?>
<?php
/**
* woocommerce_shop_loop hook.
*
* @hooked WC_Structured_Data::generate_product_data() - 10
*/
do_action( 'woocommerce_shop_loop' );
?>
<?php wc_get_template_part( 'content', 'product' ); ?>
<?php endwhile; // end of the loop. ?>
<?php woocommerce_product_loop_end(); ?>
<?php
/**
* woocommerce_after_shop_loop hook.
*
* @hooked woocommerce_pagination - 10
*/
do_action( 'woocommerce_after_shop_loop' );
?>
<?php elseif ( ! woocommerce_product_subcategories( array( 'before' => woocommerce_product_loop_start( false ), 'after' => woocommerce_product_loop_end( false ) ) ) ) : ?>
<?php
/**
* woocommerce_no_products_found hook.
*
* @hooked wc_no_products_found - 10
*/
do_action( 'woocommerce_no_products_found' );
?>
<?php endif; ?>
</div>
<?php
/**
* woocommerce_after_main_content hook.
*
* @hooked woocommerce_output_content_wrapper_end - 10 (outputs closing divs for the content)
*/
do_action( 'woocommerce_after_main_content' );
?>
<?php
/**
* woocommerce_sidebar hook.
*
* @hooked woocommerce_get_sidebar - 10
*/
do_action( 'woocommerce_sidebar' );
?>
<?php get_footer( 'shop' ); ?>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment