WooCommerce
WooCommerce is a fully functional and highly configurable open-source e-commerce plugin for WordPress, designed for small to large-sized online merchants using WordPress. The iPress themes have been developed with WooCommerce in mind with specific integrations and extensions to its core functionality.
Functionality
- Add WooCommerce theme support & WooCommerce gallery support
- Scripts & Styles: Optionaly display only what is needed.
- Scripts & Styles: Optional style overrides.
- Optionally limit WooCommerce core functionality, including cart
- Extend header cart functionality
- Extend product archive and single product pages
- Extend cart, checkout, and my account pages
- Extend Admin UI functionality for product pages
- Custom page templates & hooks for cart, checkout, and my account pages
- Custom WooCommerce page tamplate overrides
See hooks: actions & filters for further details of the extended functionality.
This is assisted by a number of helper functions that hook into WooCommerce core functionality:
- ipress_wc_active – Query WooCommerce activation
- ipress_wc_version_check – Compare WooCommerce version
- ipress_wc_version – Retrieve current WooCommerce version
- ipress_wc_version_notice – Display WooCommerce version notice
- ipress_wc_archive – Checks if the current page is a WooCommerce archive page
- ipress_wc_page – Checks if the current page is a WooCommerce standard page with shortcode
- ipress_wc_pages – Checks if the current page is a WooCommerce page of any description
- ipress_wc_page_id – Get the page ID if is a WooCommerce page
- ipress_is_wc_endpoint – Check if is a WooCommerce endpoint
- ipress_wc_cart_available – Checks whether the Woo Cart instance is available in the request
- ipress_wc_subscriptions_active – Query WooCommerce subscriptions activation
- ipress_wc_extension_active – Query WooCommerce extension activation
- ipress_wc_get_archive – Retrieve a list of products by parameters
- ipress_get_previous_product – Retrieves the previous product
- ipress_get_next_product – Retrieves the next product
- ipress_shop_results – Remove shop results from archives listing
Configuration
The WooCommerce section of the iPress theme configuration file (ST/CT) contains the hooks and functionality required to extend WooCommerce functionality and modify existing core WooCommerce functionality. It initially checks that WooCommerce is installed and active. This includes:
- Cart functionality: Turn off if not required.
- Header Cart functionality: Dropdown or slider.
- Additional Store sidebar areas.
- Scripts & Styles: Custom scripts & styles.
- Custom login & logout functionality.
Any WooCommerce related hooks should be placed in this section for consistency.
Hooks: Actions & FRilters
The themes contain a number of actions and filters which both hook into core WooCommerce functionality as well as extend it. These are detailed below.
ST/CT: Includes/woocommerce: class-ipr-woocommerce.php
WooCommerce settings and custom features.
‘ipress_wc_init’
– Action: Called during WooCommerce setup. Add additional WooCommerce setup actions/filters.
Usage:
add_action( 'ipress_wc_init', function() {
// functionality here, see woocommerce config
} );
‘ipress_wc_setup’
– Action: Called during WooCommerce setup. Add additional WooCommerce setup actions.
– Hook: ‘after_theme_setup’
Usage:
add_action( 'ipress_wc_setup', function() {
// functionality here, see woocommerce config
} );
‘ipress_wc_custom_styles’
– Action: Called after initialising custom WooCommerce styles.
– Hook: ‘wp_enqueue_scripts’
Usage:
add_action( 'ipress_wc_custom_styles', function() {
// functionality here, see woocommerce config
} );
‘ipress_wc_custom_scripts’
– Action: Called after initialising custom WooCommerce styles.
– Hook: ‘wp_enqueue_scripts’
Usage:
add_action( 'ipress_wc_custom_scripts', function() {
// functionality here, see woocommerce config
} );
‘ipress_wc_active’
– Filter: Turn on/off core cart functionality, true for active cart
– Default: true, (active)
– Return: boolean
Usage:
add_filter( 'ipress_wc_active', '__return_false' );
‘ipress_wc_args’
– Filter: Construct WooCommerce defanult arguments for WooCommerce Theme Support
– Default: [ ‘single_image_width’, ‘thumbnail_image_width’, ‘product_grid[]’ ]
– Return: []
– Hook: ‘after_theme_setup’
Usage:
add_filter( 'ipress_wc_args', function() {
return ''; // functionality here, see woocommerce config
} );
‘ipress_wc_product_gallery’
– Filter: Enable / disable woocommerce gallery support (zoom, lightbox, slider)
– Default: boolean, true (on)
– Return: boolean
– Hook: ‘after_theme_setup’
Usage:
add_filter( 'ipress_wc_product_gallery', '__return_false' );
‘ipress_wc_register_taxonomy_menus’
– Filter: Register product attribute taxonomies to the menus API
– Default: []
– Return: []
– Hook: ‘after_theme_setup’
Usage:
add_filter( 'ipress_wc_register_taxonomy_menus', function() {
return []; // functionality here, see woocommerce config
} );
‘ipress_wc_background_image_regeneration’
– Filter: Turn on/off automatic thumbnail regeneration on theme change
– Default: true ( active )
– Return: boolean
– Hook: ‘woocommerce_background_image_regeneration’
Usage:
add_filter( 'ipress_wc_background_image_regeneration', '__return_false' );
‘ipress_wc_body_classes’
– Filter: Load additional classes to body tag when WooCommerce is active.
– Default: [ ‘woocommerce-active’ ]
– Return: [], classes list
– Hook: ‘body_classes’
Usage:
add_filter( 'ipress_wc_body_classes', function() {
return []; // functionality here, see woocommerce config
} );
‘ipress_wc_product_loop’
– Filter: Display all products on single page. Disable pagination in product archive listing. Should only be used when a small number of products.
– Default: boolean, false
– Return: boolean
– Hook: ‘pre_get_posts’
Usage:
add_filter( 'ipress_custom_hero', '__return_true' );
‘ipress_wc_add_to_cart_text’
– Filter: Change default add to cart text depending on context
– Default: ”
– Return: string
– Hook: woocommerce_product_add_to_cart_text
Usage:
add_filter( 'ipress_wc_add_to_cart_text', function() {
return ''; // functionality here, see woocommerce config
} );
‘ipress_wc_breadcrumb_default_args’
– Filter: Change default breadcrumbs display args
– Default: []
– Return: []
– Hook: ‘woocommerce_breadcrumb_defaults’
Usage:
add_filter( 'ipress_wc_breadcrumb_default_args', function() {
return []; // functionality here, see woocommerce config
} );
‘ipress_wc_disable_css’
– Filter: Disable loading of WooCommerce CSS from custom plugins on front-end non-WC pages when active.
– Default: boolean, false
– Return: boolean
– Hook: wp_enqueue_scripts
Usage:
add_filter( 'ipress_wc_disable_css', '__return_true' );
‘ipress_wc_disable_wc_css’
– Filter: Disable loading of WooCommerce CSS for all non-WC pages.
– Default: boolean, false
– Return: boolean
– Hook: wp_enqueue_scripts
Usage:
add_filter( 'ipress_wc_disable_wc_css', '__return_true' );
‘ipress_wc_disable_core_css’
– Filter: Disable loading of core WooCommerce CSS files.
– Default: []
– Return: []
– Hook: wp_enqueue_scripts
Usage:
add_filter( 'ipress_wc_disable_core_css', function() {
return []; // functionality here, see woocommerce config
} );
‘ipress_wc_plugin_styles’
– Filter: List of CSS style handles to disable loading. Requires ‘ipress_wc_disable_css’ to be enabled.
– Default [ ‘wc-block-vendors-style’, ‘wc-block-style’, ‘wp-block-library’, ‘wc-bundle-style’, ‘wc-composite-css’ ]
– Return: []
Usage:
add_filter( 'ipress_wc_plugin_styles', function() {
return []; // functionality here, see woocommerce config
} );
‘ipress_wc_core_fonts’
– Filter: Load core WooCommerce fonts. Useful when WooCommerce css loading is disabled via woocommerce_enqueue_styles.
– Default: boolean, false (off)
– Return: boolean
– Hook: ‘wp_enqueue_scripts’
Usage:
add_filter( 'ipress_wc_core_fonts', '__return_true' );
‘ipress_wc_custom_styles’
– Filter: Define location for custom css files loading
– Default: true, all pages
– Return: boolean
– Hook: ‘wp_enqueue_scripts’
Usage:
add_filter( 'ipress_wc_custom_styles', '__return_false' );
‘ipress_wc_custom_styles_dependency’
– Filter: Default loading dependency
– Default: [ ‘woocommerce-general’ ]
– Return: []
– Hook: ‘wp_enqueue_scripts’
Usage:
add_filter( 'ipress_wc_custom_styles_dependency', function() {
return []; // functionality here, see woocommerce config
} );
‘ipress_wc_disable_js’
– Filter: Disable loading of WooCommerce JS on front-end non-WC pages when active.
– Default: boolean, false (off), WooCommerce JS loaded on all pages
– Return: boolean
– Hook: ‘wp_enqueue_scripts’
Usage:
add_filter( 'ipress_wc_disable_js', ''__return_false' );
‘ipress_wc_disable_cart_js’
– Filter: Disable loading of WooCommerce Cart/Checkout JS on front-end non-WC pages. Requires ‘ipress_wc_disable_js’ to be enabled.
– Default: boolean, true (on)
– Return: boolean
– Hook: wp_enqueue_scripts
Usage:
add_filter( 'ipress_wc_disable_cart_js', ''__return_boolean' );
‘ipress_wc_disable_select2’
– Filter: Disable Select2 JS on front-end if enabled.
– Default: boolean, false (off)
– Return: boolean
– Hook: wp_enqueue_styles
Usage:
add_filter( 'ipress_wc_disable_select2', function() {
return ''; // functionality here, see woocommerce config
} );
‘ipress_wc_generator’
– Filter: Dequeue WC head generator styles
– Default: false
– Return: boolean
– Hook: wp_enqueue_styles
Usage:
add_filter( 'ipress_wc_generator', '__return_true' );
‘ipress_wc_custom_scripts’
– Filter: Define location for custom js files loading
– Default: true, all pages
– Return: boolean
– Hook: ‘wp_enqueue_scripts’
Usage:
add_filter( 'ipress_wc_custom_scripts', '__return_false' );
‘ipress_wc_custom_scripts_dependency’
– Filter: Default loading dependency
– Default: []
– Return: []
Usage:
add_filter( 'ipress_wc_custom_scripts_dependency', function() {
return []; // functionality here, see woocommerce config
} );
‘ipress_wc_header_cart’
– Filter: Enable / disable header cart fragment for header link & content templates.
– Default: boolean, true (on)
– Return: boolean
– Hook: woocommerce_add_to_cart_fragments
Usage:
add_filter( 'ipress_wc_header_cart', '__return_false' );
‘ipress_product_thumbnail_columns’
– Filter: Default column number for WooCommerce product archive list.
– Default: 4
– Return: integer
– Hook: ‘wooCommerce_product_thumbnails_columns’
Usage:
add_filter( 'ipress_product_thumbnail_columns', function() {
return absint( $val ); // functionality here, see woocommerce config
} );
‘ipress_wc_catalog_random_ordering’
– Filter: Add custom pandom ordering to product archives
– Default: false
– Return: boolean
Usage:
add_filter( 'ipress_wc_catalog_random_ordering', '__return_true' );
‘ipress_related_products_args’
– Filter: Default related products to display.
– Default: [ 1 row, 3 columns]
– Return: []
– Hook: ‘woocommerce_output_related_products_args’
Usage:
add_filter( 'ipress_related_products_args', function() {
return []; // functionality here, see woocommerce config
} );
‘ipress_upsell_products_args’
– Filter: Default upsell products to display.
– Default: [ 1 row, 2 columns]
– Return: []
– Hook: ‘woocommerce_upsell_display_args”
Usage:
add_filter( 'ipress_upsell_products_args', function() {
return []; // functionality here, see woocommerce config
} );
‘ipress_wc_active_redirect’
– Filter: Redirect for Cart, Checkout & Account pages when cart inactive
– Default: home_url
– Return: none
Usage:
add_filter( 'ipress_wc_active_redirect', function() {
return esc_url( $url ); // functionality here, see woocommerce config
} );
‘ipress_default_checkout_country’
– Filter: Fix the checkout country value
– Default: GB
– Return: string
Usage:
add_filter( 'ipress_default_checkout_country', function() {
return ''; // functionality here, see woocommerce config
} );
‘ipress_default_checkout_state’
– Filter: Fix the checkout state value
– Default: ”
– Return: string
Usage:
add_filter( 'ipress_default_checkout_state', function() {
return ''; // functionality here, see woocommerce config
} );
ST/CT: Includes/woocommerce: class-ipr-adjacent-products.php
WooCommerce adjacent products functionality.
‘ipress_woocommerce_adjacent_query_args’
– Filter: Modify args for wc_get_products.
– Default: [ ‘limit’, ‘visibility’, ‘exclude’, ‘orderby’, ‘status’ ]
– Return: []
Usage:
add_filter( 'ipress_woocommerce_adjacent_query_args', function() {
return []; // functionality here, see woocommerce config
} );
ST/PT: Includes/woocommerce: class-ipr-customizer.php
WooCommerce specific customizer settings.
‘ipress_single_product_pagination’
– Filter: Enable / disable the ‘ipress_product_pagination’ setting.
– Default: boolean, true (on)
– Return: boolean
Usage:
add_filter( 'ipress_single_product_pagination', '__return_false' );
ST/CT: Includes/woocommerce: class-ipr-adjacent-products.php
WooCommerce adjacent products functionality.
‘ipress_wc_pages_list’
– Filter: Set up filterable WooCommerce virtual page list
– Default: []
– Return: []
– Function: ipress_wc_pages()
Usage:
add_filter( 'ipress_wc_pages_list', function() {
return []; // functionality here, see woocommerce config
} );
‘ipress_product_archive’
– Filter: Filterable posts list
– Default: []
– Return: []
– Function ipress_wc_get_archive()
Usage:
add_filter( 'ipress_product_archive', function() {
return []; // functionality here, see woocommerce config
} );
ST/CT: Includes/woocommerce: functions.php
Theme front-page Hero features.
‘ipress_wc_pages_list’,
– Filter: Set up filterable WooCommerce virtual page list
– Default: [ ‘woocommerce_shop_page_id’, ‘woocommerce_terms_page_id’, ‘woocommerce_cart_page_id’, ‘woocommerce_checkout_page_id’, ‘woocommerce_pay_page_id’, ‘woocommerce_thanks_page_id’, ‘woocommerce_myaccount_page_id’, ‘woocommerce_edit_address_page_id’, ‘woocommerce_view_order_page_id’, ‘woocommerce_change_password_page_id’, ‘woocommerce_logout_page_id’, ‘woocommerce_lost_password_page_id’ ]
– Return: []
Usage:
add_filter( 'ipress_wc_pages_list', function() {
return []; // functionality here, see woocommerce config
} );
‘ipress_product_archive’,
– Filter: Filterable product posts list
– Default: [ ‘date’, ‘id’, ‘title’, ‘excerpt’, ‘link’, ‘image’, ‘category’, ‘product’ ]
– Return: []
Usage:
add_filter( 'ipress_product_archive',, function() {
return []; // functionality here, see woocommerce config
} );
ST/CT: Includes/woocommerce: template-functions.php
WooCommerce template functions.
‘ipress_wc_header_cart’
– Filter: Is the header cart active?
– Default: true
– Return: boolean
Usage:
add_filter( 'ipress_wc_header_cart', '__return_false' );
‘ipress_wc_header_cart_dropdown’
– Filter: Is the header cart dropdown active? If not then use slider
– Default: false
– Return: boolean
Usage:
add_filter( 'ipress_wc_header_cart_dropdown', '__return_true' );
‘ipress_product_categories_args’
– Filter: Product Categories shortcode args.
– Default: [ limit’, ‘columns’, ‘child_categories’, ‘orderby’, ‘title’ ]
– Return: []
Usage:
add_filter( 'ipress_product_categories_args', function() {
return []; // functionality here
} );
‘ipress_product_categories_shortcode_args’
– Filter: Default args to pass to product_categories shortcode.
– Default: [ ‘number’, ‘columns’, ‘orderby’, ‘parent’ ]
– Return: []
Usage:
add_filter( 'ipress_product_categories_shortcode_args', function() {
return []; // functionality here
} );
‘ipress_before_product_categories’
– Action: Before product category html
Usage:
add_action( 'ipress_before_product_categories', function() {
// functionality here
} );
‘ipress_after_product_categories_title’
– Action: After product category title
Usage:
add_action( 'ipress_after_product_categories_title', function() {
// functionality here
} );
‘ipress_after_product_categories’
– Action: After product category html
Usage:
add_action( 'ipress_after_product_categories', function() {
// functionality here
} );
‘ipress_recent_products_args’
– Filter: Recent Products shortcode args.
– Default: [ ‘limit’, ‘columns’, ‘orderby’, ‘order’, ‘title’ ]
– Return: []
Usage:
add_filter( 'ipress_recent_products_args', function() {
return []; // functionality here
} );
‘ipress_recent_products_shortcode_args’
– Filter: Default args to pass to recent_product shortcode.
– Default: [ ‘orderby’, ‘order’, ‘per_page’, ‘columns’ ]
– Return: []
Usage:
add_filter( 'ipress_recent_products_shortcode_args', function() {
return []; // functionality here
} );
‘ipress_before_recent_products’
– Action: Before recent products html
Usage:
add_action( 'ipress_before_recent_products', function() {
// functionality here
} );
‘ipress_after_recent_products_title’
– Action: After recent products title
Usage:
add_action( 'ipress_after_recent_products_title', function() {
// functionality here
} );
‘ipress_after_recent_products’
– Action: After recent products html
Usage:
add_actiom( 'ipress_after_recent_products', function() {
// functionality here
} );
‘ipress_featured_products_args’
– Filter: Recent Products shortcode args.
– Default: [ ‘limit’, ‘columns’, ‘orderby’, ‘order’, ‘visibility’, ‘title’ ]
– Return: []
Usage:
add_filter( 'ipress_featured_products_args', function() {
return []; // functionality here
} );
‘ipress_featured_products_shortcode_args’
– Filter: Default args to pass to featured_product shortcode.
– Default: [ ‘per_page’, ‘columns’, ‘orderby’, ‘order’, ‘visibility’ ]
– Return: []
Usage:
add_filter( 'ipress_featured_products_shortcode_args', function() {
return []; // functionality here
} );
‘ipress_before_featured_products’
– Action: Before featured products html
Usage:
add_action( 'ipress_before_featured_products', function() {
// functionality here
} );
‘ipress_after_featured_products_title’
– Action: After featured products title
Usage:
add_action( 'ipress_after_featured_products_title', function() {
// functionality here
} );
‘ipress_after_featured_products’
– Action: After featured products html
Usage:
add_action( 'ipress_after_featured_products', function() {
// functionality here
} );
‘ipress_popular_products_args’
– Filter: Popular Products shortcode args.
– Default: [ ‘limit’, ‘columns’, ‘orderby’, ‘order’, ‘title’ ]
– Return: []
Usage:
add_filter( 'ipress_popular_products_args', function() {
return []; // functionality here
} );
‘ipress_popular_products_shortcode_args’
– Filter: Default args to pass to popular_products shortcode.
– Default: [ ‘per_page’, ‘columns’, ‘orderby’, ‘order’ ]
– Return: []
Usage:
add_filter( 'ipress_popular_products_shortcode_args', function() {
return []; // functionality here
} );
‘ipress_before_popular_products’
– Action: Before popular products html
Usage:
add_action( 'ipress_custom_hero', function() {
return ''; // functionality here
} );
‘ipress_popular_products_shortcode_args’
– Filter: Default args to pass to popular_products shortcode.
– Default: [ ‘per_page’, ‘columns’, ‘orderby’, ‘order’ ]
– Return: []
Usage:
add_filter( 'ipress_popular_products_shortcode_args', function() {
return []; // functionality here
} );
‘ipress_before_popular_products’
– Action: Before popular products html
Usage:
add_action( 'ipress_before_popular_products', function() {
// functionality here
} );
‘ipress_after_popular_products_title’
– Action: After popular products title
Usage:
add_action( 'ipress_after_popular_products_title', function() {
// functionality here
} );
‘ipress_after_popular_products’
– Action: After popular products html
Usage:
add_action( 'ipress_after_popular_products', function() {
// functionality here
} );
‘ipress_on_sale_products_args’
– Filter: On sale Products shortcode args.
– Default: [ ‘limit’, ‘columns’, ‘orderby’, ‘order’, ‘on_sale’, ‘title’ ]
– Return: []
Usage:
add_filter( 'ipress_on_sale_products_args', function() {
return []; // functionality here
} );
‘ipress_on_sale_products_shortcode_args’
– Filter: Default args to pass to on_sale_products shortcode.
– Default: [ ‘per_page’, ‘columns’, ‘orderby’, ‘order’, ‘on_sale’ ]
– Return: []
Usage:
add_filter( 'ipress_on_sale_products_shortcode_args', function() {
return []; // functionality here
} );
‘ipress_before_on_sale_products’
– Action: Before on sale products html
Usage:
add_action( 'ipress_before_on_sale_products', function() {
// functionality here
} );
‘ipress_after_on_sale_products_title’
– Action: After on sale products title
Usage:
add_action( 'ipress_after_on_sale_products_title', function() {
// functionality here
} );
‘ipress_after_on_sale_products’
– Action: After on sale products html
Usage:
add_filter( 'ipress_after_on_sale_products', function() {
// functionality here
} );
‘ipress_best_selling_products_args’
– Filter: Best selling Products shortcode args.
– Default: [ ‘limit’, ‘columns’, ‘orderby’, ‘order’, ‘title’ ]
– Return: []
Usage:
add_filter( 'ipress_best_selling_products_args', function() {
return []; // functionality here
} );
‘ipress_best_selling_products_shortcode_args’
– Filter: Default args to pass to best_selling_products shortcode.
– Default: [ ‘per_page’, ‘columns’, ‘orderby’, ‘order’ ]
– Return: []
Usage:
add_filter( 'ipress_best_selling_products_shortcode_args', function() {
return []; // functionality here
} );
‘ipress_before_best_selling_products’
– Action: Before best selling products html
Usage:
add_action( 'ipress_before_best_selling_products', function() {
// functionality here
} );
‘ipress_after_best_selling_products_title’
– Action: After best selling products title
Usage:
add_action( 'ipress_after_best_selling_products_title', function() {
// functionality here
} );
‘ipress_after_best_selling_products’
– Action: After best selling products html
Usage:
add_action( 'ipress_after_best_selling_products', function() {
// functionality here
} );
Product



The WooCommerce product-archive and single product templates contain a defined set of actions & filters that the iPress themes hook into to generate the default product archive and single product page as seen in the images above from the demo site. It’s also possible to create more radical changes through template overrides as detailed in the section below. The hooks that the iPress themes utilise are shown below:
- Convert archive & single listing to flex layout
- Enhanced custom ordering
- Enhanced single product image & styles
- Enhanced single product tabs
- Other minor modifications
Cart


WooCommerce includes a fully functional cart and checkout in addition to the product display. In some cases the cart, checkout & account solution is not required, and only the product display and filtering functionality is required, such as for affiliate or information sites. The iPress theme has the ability to turn off and hide the cart functionality when not required.
The WooCommerce cart page templates contain a defined set of actions & filters that the iPress themes hook into to generate the default cart page as seen in the images above from the demo site. It’s also possible to create more radical changes through template overrides as detailed in the section below. The iPress theme also implements a configurable header cart section when WooCommerce is active. The hooks that the iPress themes utilise are shown below:
- Optional cart, checkout & account functionality
- Convert cart listing to flex layout
- Fully functional and configurable ajax driven header cart solution
- Other minor modifications
Checkout

The WooCommerce checkout page template contains a defined set of actions & filters that the iPress themes hook into to generate the default checkout page as seen in the image above from the demo site. It’s also possible to create more radical changes through template overrides as detailed in the section below. The hooks that the iPress themes utilise are shown below:
- Convert checkout listing to flex layout
- Set default state & country
- Other minor modifications
My Account




The WooCommerce account page templates contain a defined set of actions & filters that the iPress themes hook into to generate the default account page as seen in the images above from the demo site. It’s also possible to create more radical changes through template overrides as detailed in the section below. The hooks that the iPress themes utilise are shown below:
- Convert account page to flex layout
- Enhanced navigation profile
- Other minor modifications
Template Overrides
The WooCommerce plugin includes a range of default template files containing the html markup for the product, cart, checkout, and account pages, as well as html emails. These can be overriden by WordPress. See here for a list of default WooCommerce template files.
This is done by creating an equivalent template file hierarchy in a dedicated /woocommerce directory of the currently active theme. These template files are then preferrentially loaded when the requested page is displayed. The iPress default instance of this is detailed below. It also includes custom files for iPress theme specific functionality such as the header cart:
Custom Page Templates
The iPress themes contain a number of custom page templates, including for cart, checkout, and account pages. These wrap core WooCommerce functionality into custom hooks and flex layouts. In addition the iPress themes generate custom sidebars for shop, category, and product pages as detailed below:
WooCommerce generates custom shop, cart, checkout, and account pages during installation. These may inject content, e.g. cart/basket via shortcodes. When editing these pages the page attributes > template can be changed to the custom page template, e.g. Cart Page.