How to Create Archive Product php WooCommerce

Archive Product php WooCommerceAre you looking for the best way to create an archive product php WooCommerce code that allows you to display WooCommerce products in a custom archive template? If you are looking for the code that will help you to quickly create the custom archive template in WooCommerce, this post will guide you.

Archive Product PHP WooCommerce

To create a WooCommerce archive product PHP page template you need to first understand how you create a custom page template.

You should also understand that for most WooCommerce default pages you can override them by creating your custom pages in your theme. WooCommerce documentation states the following about creating an archive page for the products :

If your theme has a woocommerce.php file, you will be unable to override the woocommerce/archive-product.php custom template in your theme, as woocommerce.php has priority over other template files. This is intended to prevent display issues.

The following is the code you can add to your custom archive product page and this can be customized further to make it suitable for your specific needs. For example in a recent project I needed to create a custom archive page as shown in the image below :

Archive Product php WooCommerce -1

To create a custom archive page you will need to override the existing templates and you can use the code below to create your custom WooCommerce archive page.

[php] <?php
/**
* The Template for displaying product archives, including the main shop page which is a post type archive.
*
* Override this template by copying it to yourtheme/woocommerce/archive-product.php
*
* @author WooThemes
* @package WooCommerce/Templates
* @version 2.0.0
*/

if ( ! defined( ‘ABSPATH’ ) ) exit; // Exit if accessed directly

get_header(‘shop’); ?>

<!– body content –>
<section class="body-content">
<!– left –>
<div class="left">
<?php
/**
* woocommerce_before_main_content hook
*
* @hooked woocommerce_output_content_wrapper – 10 (outputs opening divs for the content)
* @hooked woocommerce_breadcrumb – 20
*/
do_action(‘woocommerce_before_main_content’);
?>

<?php if ( apply_filters( ‘woocommerce_show_page_title’, true ) ) : ?>

<!– <h1 class="page-title"><?php woocommerce_page_title(); ?></h1> –>

<?php endif; ?>

<?php do_action( ‘woocommerce_archive_description’ ); ?>

<?php if ( have_posts() ) : ?>

<?php
/**
* woocommerce_before_shop_loop hook
*
* @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_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_get_template( ‘loop/no-products-found.php’ ); ?>

<?php endif; ?>

<?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’);
?>
</div>
<!– end left –>

<!– right –>
<div class="right">
<?php include(‘right-sidebar.php’); ?>
</div>
<!– end right –>

<div class="clear"></div>
</section>
<!– end body content –>

<?php get_footer(‘shop’); ?>

[/php]

 

Conclusion

In this post, I have outlined the way you can create a custom WooCommerce archive product page and how you can use this code to further customize WooCommerce by creating your custom layout and overriding the default WooCommerce page template such as the default WooCommerc product archive template.

Similar Articles