• Skip to primary navigation
  • Skip to main content
  • Skip to primary sidebar

Able Rabbit LogoAble Rabbit

  • Home
  • Reviews
    • Extensions
    • Themes
    • Hosting
  • WooCommerce Tutorials
    • Product Page Customizations
    • Cart & Checkout Optimization
    • Account & User Experience
    • Emails & Automation
    • Pricing, Coupons & Discounts
    • Shipping, Tax & Order Management
    • Affiliate, Membership & Marketing Tools
    • Advanced Developer Customizations
  • Developers Guide
    • Visual Hook Guides
    • Code Snippets
    • Advanced Woo
You are here: Home / Visual Guides / WooCommerce Shop & Archive Page Hooks: Visual Guide + Full List

WooCommerce Shop & Archive Page Hooks: Visual Guide + Full List

By Able Rabbit / November 14, 2025

Bookmark this definitive Visual guide and complete reference of all WooCommerce Shop and Archive page hooks (Actions & Filters) with code examples.

This article was last manually reviewed for data accuracy on 14 November 2025.

WooCommerce shop page hooks provide powerful and flexible tools for customizing the online store’s central product browsing page and the archive pages. By leveraging these predefined hooks in your theme or plugin, you can easily add, modify, or remove content and functionality without touching core WooCommerce files.

This article presents the complete list of all WooCommerce Shop Page Hooks and a visual guide of the Woo Shop Page hooks. Bookmark this article for your ready reference.

Table of Contents

  • Visual Guide: WooCommerce Shop Page Hooks
  • Complete List of WooCommerce Shop Page Action Hooks
  • Essential List of WooCommerce Shop Page Filters
  • Code Examples: Actions vs. Filters in WooCommerce Shop Page
  • Summary: Mastering WooCommerce Shop Page Customization
  • FAQs: WooCommerce Shop Page Hooks Answered

Visual Guide: WooCommerce Shop Page Hooks

Visual Guide - WooCommerce Shop Page Hooks

Complete List of WooCommerce Shop Page Action Hooks

Group & LocationHook NameDescription & UsageDefault Functions
Page Wrapperswoocommerce_before_main_contentFires before the main content wrapper. Used to open structural markup and output breadcrumbs.woocommerce_output_content_wrapper, woocommerce_breadcrumb
woocommerce_after_main_contentFires after the main content wrapper. Used to close structural markup.woocommerce_output_content_wrapper_end
woocommerce_sidebarOutputs the sidebar area.woocommerce_get_sidebar
Archive Description & Noticeswoocommerce_archive_descriptionDisplays taxonomy/archive description (e.g., category text).woocommerce_taxonomy_archive_description, woocommerce_product_archive_description
woocommerce_noticesDisplays general notices (e.g., “Product added to cart”).wc_print_notices
Loop Wrapperswoocommerce_before_shop_loopFires before the product loop. Commonly used for result count and ordering dropdown.woocommerce_result_count, woocommerce_catalog_ordering
woocommerce_before_shop_loop_productsFires before the <ul class=”products”> wrapper.None by default
woocommerce_after_shop_loop_productsFires after the <ul class=”products”> wrapper.None by default
woocommerce_after_shop_loopFires after the product loop. Commonly used for pagination.woocommerce_pagination
Product Item Wrapperswoocommerce_before_shop_loop_itemFires before each product item wrapper.None by default
woocommerce_before_shop_loop_item_titleFires before product title. Commonly used for thumbnails.woocommerce_template_loop_product_link_open, woocommerce_template_loop_product_thumbnail
woocommerce_shop_loop_item_titleOutputs product title.woocommerce_template_loop_product_title
woocommerce_after_shop_loop_item_titleFires after product title. Commonly used for price and rating.woocommerce_template_loop_rating, woocommerce_template_loop_price
woocommerce_after_shop_loop_itemFires after each product item wrapper. Commonly used for add-to-cart button.woocommerce_template_loop_product_link_close, woocommerce_template_loop_add_to_cart
Empty Statewoocommerce_no_products_foundFires when no products are found.wc_no_products_found

Essential List of WooCommerce Shop Page Filters

Group & LocationHook NameDescription & Parameters
Page Title & Layoutwoocommerce_page_titleFilters the page title text. Parameters: (string $page_title)
woocommerce_show_page_titleBoolean filter to show/hide page title. Parameters: (bool $show)
woocommerce_products_per_pageControls number of products per page. Parameters: (int $products_per_page)
loop_shop_columnsSets number of columns in product grid. Parameters: (int $columns)
loop_shop_per_page (legacy)Legacy filter for products per page. Parameters: (int $products_per_page)
woocommerce_get_loop_propFilters loop properties (columns, pagination, etc.). Parameters: (mixed $value, string $prop)
Breadcrumbs & Paginationwoocommerce_breadcrumb_defaultsCustomize breadcrumb defaults (delimiter, home text, etc.). Parameters: (array $defaults)
woocommerce_pagination_argsCustomize pagination arguments. Parameters: (array $args)
woocommerce_is_filteredBoolean filter for whether products are filtered. Parameters: (bool $is_filtered)
Loop Markupwoocommerce_product_loop_startFilters opening markup of product loop. Parameters: (string $markup)
woocommerce_product_loop_endFilters closing markup of product loop. Parameters: (string $markup)
woocommerce_post_classFilters product <li> classes. Parameters: (array $classes, WP_Post $product)
Product Outputwoocommerce_get_price_htmlFilters product price HTML. Parameters: (string $price_html, WC_Product $product)
woocommerce_loop_product_visibilityControls product visibility in loop. Parameters: (bool $visible, int $product_id)
woocommerce_catalog_orderbyCustomize catalog ordering options. Parameters: (array $orderby_options)
woocommerce_result_countFilters result count output. Parameters: (string $html, WC_Query $query)
woocommerce_catalog_orderingFilters ordering dropdown output. Parameters: (string $html)
woocommerce_loop_add_to_cart_linkFilters add-to-cart button HTML. Parameters: (string $html, WC_Product $product)
woocommerce_loop_product_linkFilters product link HTML. Parameters: (string $link, WC_Product $product)
woocommerce_loop_product_thumbnailFilters product thumbnail HTML. Parameters: (string $html, WC_Product $product)
woocommerce_loop_product_titleFilters product title HTML. Parameters: (string $title, WC_Product $product)
woocommerce_loop_product_ratingFilters product rating HTML. Parameters: (string $html, WC_Product $product)
woocommerce_loop_product_priceFilters product price HTML. Parameters: (string $html, WC_Product $product)
Query Modifierswoocommerce_product_query_meta_queryModify the product query based on custom fields. Parameters: (array $meta_query, WC_Query $query)
woocommerce_product_query_tax_queryModify the product query based on taxonomies. Parameters: (array $tax_query, WC_Query $query)
woocommerce_product_queryModify the entire product query arguments before execution. Parameters: (WP_Query $query)
woocommerce_default_catalog_orderbySets the default catalog ordering option. Parameters: (string $orderby)
Related & Cross-sellswoocommerce_related_products_argsFilters the query arguments for related products. Parameters: (array $args)
woocommerce_cross_sells_columnsFilters the number of columns used to display cross-sell products. Parameters: (int $columns)

Code Examples: Actions vs. Filters in WooCommerce Shop Page

Deep Dive: For a comprehensive understanding of WooCommerce Filter and Hooks refer to WooCommerce Hooks and Filters: Complete Guide with Examples.

WooCommerce Shop Page Action Hook Example : Adding a Custom Banner

This example adds a custom banner at the top of the shop page using the action hook woocommerce_before_main_content. Actions are used for outputting additional content or running some code at specific points.

php

add_action('woocommerce_before_main_content', 'custom_banner_before_main_content');
function custom_banner_before_main_content() {
    echo '<div class="custom-banner" style="background:#ffefc5; padding: 15px; text-align:center;">
            Welcome to Our Shop! Enjoy 10% off today.
          </div>';
}

This code hooks into woocommerce_before_main_content and outputs an HTML banner before the main content wrapper starts.

WooCommerce Shop Page Filter Hook Example : Modify the number of products displayed

This example modifies the number of products displayed per shop page using the filter hook woocommerce_products_per_page. Filters are used to modify or return a value after applying some logic.

php

add_filter('woocommerce_products_per_page', 'custom_products_per_page', 20);
function custom_products_per_page($products_per_page) {
    return 24; // Display 24 products per page instead of default
}

This hook filters the number of products shown on each shop page load. It intercepts the default value and returns a customized one.

PRO Tip: Bookmark all our Visual WooCommerce Hook Guides for ready reference.

Summary: Mastering WooCommerce Shop Page Customization

Understanding how to use WooCommerce shop page hooks allows you to create a unique, user-friendly shop experience that aligns with your brand and SEO goals. Customizing your shop page with these hooks lets you place promotional content, optimize product visibility, and improve site navigation.

Whether adding banners, adjusting product grids, or filtering product display behavior, hooks ensure your WooCommerce site remains modular and maintainable. This WooCommerce Shop Page Hook visual guide can help to become an expert in this!

Before we finish

Master WooCommerce with real tutorials and plugin reviews.

Join Free

FAQs: WooCommerce Shop Page Hooks Answered

What are WooCommerce shop page hooks?

WooCommerce Shop Page hooks are predefined action and filter points in WooCommerce templates specifically for the shop (product archive) page. They allow you to insert or change content and behavior at specific locations without editing core files.

How do action and filter hooks differ in WooCommerce Product Archive Page?

Action hooks let you add custom output or execute code at certain points in the page. Filter hooks allow you to modify data or markup by intercepting and returning a changed value.

Where do I add code to customize WooCommerce shop page hooks?

Typically, you add your hook-based customizations in the functions.php file of your child theme or in a custom plugin to ensure updates don’t overwrite changes.

Are there risks to using WooCommerce hooks?

Improper use of WooCommerce Hooks can cause layout issues or conflicts with other plugins/themes. Always test changes on a staging site and document your customizations.

Did this help? Send a sip

Related Posts

  • WooCommerce Checkout Page Hooks: Visual Guide + Full List
  • WooCommerce Cart Page Hooks: Visual Guide + Full List
  • WooCommerce Single Product Page Hooks: Visual Guide + Full List

Reader Interactions

Leave a Reply

Your email address will not be published. Required fields are marked *

Productivity Tools

The Burrow

Master WooCommerce with real tutorials and plugin reviews.

Join Free

  • About
  • Contact
  • Privacy Policy
  • Disclaimer Policy
  • Terms and Conditions

Copyright © 2025 · Able Rabbit. All rights reserved.

Able Rabbit is an independent publication not sponsored or endorsed by WooCommerce® or Automattic Inc.