{"id":359989,"date":"2026-09-05T10:51:48","date_gmt":"2026-09-05T10:51:48","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/themerex-ecommerce-extensions-for-elementor\/"},"modified":"2026-09-05T10:51:31","modified_gmt":"2026-09-05T10:51:31","slug":"trx-wcext","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/trx-wcext\/","author":15609801,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0","stable_tag":"1.0","tested":"7.0.4","requires":"6.5","requires_php":"7.4","requires_plugins":null,"header_name":"ThemeREX eCommerce Extensions for Elementor","header_author":"ThemeREX","header_description":"Adds custom page templates and many Elementor widgets for WooCommerce","assets_banners_color":"9b9271","last_updated":"2026-09-05 10:51:31","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/wooextension.themerex.net\/","header_author_uri":"https:\/\/themerex.net\/?utm_source=trx-wcext&utm_campaign=author-uri&utm_medium=wp-dash","rating":0,"author_block_rating":0,"active_installs":0,"downloads":30,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0":{"tag":"1.0","author":"themerex","date":"2026-09-05 10:51:31","revision":3682363}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon-256x256.png":{"filename":"icon-256x256.png","revision":3682363,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3682363,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3682363,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3682363,"resolution":"1","location":"assets","locale":"","width":1280,"height":900},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3682363,"resolution":"2","location":"assets","locale":"","width":1280,"height":900},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3682363,"resolution":"3","location":"assets","locale":"","width":1280,"height":900},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3682363,"resolution":"4","location":"assets","locale":"","width":1280,"height":900},"screenshot-5.png":{"filename":"screenshot-5.png","revision":3682363,"resolution":"5","location":"assets","locale":"","width":1280,"height":900},"screenshot-6.png":{"filename":"screenshot-6.png","revision":3682363,"resolution":"6","location":"assets","locale":"","width":1280,"height":900}},"screenshots":{"1":"Shop page \u2014 the Product Grid widget with the AJAX filter sidebar: a category tree with live search, attribute and colour filters with per-value counts, and the column-count switcher, all updating the grid over AJAX.","2":"Product Grid on a styled storefront \u2014 cards with sale and out-of-stock badges, attribute swatches and price, built entirely from Elementor widgets.","3":"The AJAX \"Filter &amp; Sort\" panel \u2014 categories, colour swatches and size filters refine the grid in place, with no page reload.","4":"Single product page assembled from the single-product widgets \u2014 gallery, rating, price, variation swatches, quantity and add-to-cart.","5":"Cart page built from a \"Cart\" template \u2014 line items with their chosen options, the coupon field and the order totals.","6":"Checkout page built from a \"Checkout\" template \u2014 billing fields alongside the live order summary and payment options."}},"plugin_section":[],"plugin_tags":[282,76538,6033,1242,286],"plugin_category":[45],"plugin_contributors":[165941],"plugin_business_model":[],"class_list":["post-359989","plugin","type-plugin","status-publish","hentry","plugin_tags-ecommerce","plugin_tags-elementor","plugin_tags-product-filter","plugin_tags-shop","plugin_tags-woocommerce","plugin_category-ecommerce","plugin_contributors-themerex","plugin_committers-themerex"],"banners":{"banner":"https:\/\/ps.w.org\/trx-wcext\/assets\/banner-772x250.png?rev=3682363","banner_2x":"https:\/\/ps.w.org\/trx-wcext\/assets\/banner-1544x500.png?rev=3682363","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/trx-wcext\/assets\/icon-256x256.png?rev=3682363","icon_2x":"https:\/\/ps.w.org\/trx-wcext\/assets\/icon-256x256.png?rev=3682363","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/trx-wcext\/assets\/screenshot-1.png?rev=3682363","caption":"Shop page \u2014 the Product Grid widget with the AJAX filter sidebar: a category tree with live search, attribute and colour filters with per-value counts, and the column-count switcher, all updating the grid over AJAX."},{"src":"https:\/\/ps.w.org\/trx-wcext\/assets\/screenshot-2.png?rev=3682363","caption":"Product Grid on a styled storefront \u2014 cards with sale and out-of-stock badges, attribute swatches and price, built entirely from Elementor widgets."},{"src":"https:\/\/ps.w.org\/trx-wcext\/assets\/screenshot-3.png?rev=3682363","caption":"The AJAX \"Filter &amp; Sort\" panel \u2014 categories, colour swatches and size filters refine the grid in place, with no page reload."},{"src":"https:\/\/ps.w.org\/trx-wcext\/assets\/screenshot-4.png?rev=3682363","caption":"Single product page assembled from the single-product widgets \u2014 gallery, rating, price, variation swatches, quantity and add-to-cart."},{"src":"https:\/\/ps.w.org\/trx-wcext\/assets\/screenshot-5.png?rev=3682363","caption":"Cart page built from a \"Cart\" template \u2014 line items with their chosen options, the coupon field and the order totals."},{"src":"https:\/\/ps.w.org\/trx-wcext\/assets\/screenshot-6.png?rev=3682363","caption":"Checkout page built from a \"Checkout\" template \u2014 billing fields alongside the live order summary and payment options."}],"raw_content":"<!--section=description-->\n<p><strong>See it in action:<\/strong> <strong><a href=\"https:\/\/fashion.elementra.themerex.net\/\">Live demo store<\/a><\/strong> \u00b7 <strong><a href=\"https:\/\/wooextension.themerex.net\/\">Features &amp; screenshots<\/a><\/strong> \u00b7 <strong><a href=\"https:\/\/doc.themerex.net\/trx-wcext\/\">Documentation<\/a><\/strong><\/p>\n\n<p><strong>ThemeREX eCommerce Extensions for Elementor<\/strong> lets you rebuild every WooCommerce page in the Elementor editor instead of overriding PHP templates in your theme.<\/p>\n\n<p>The plugin registers a <code>trx_wcext_template<\/code> custom post type. Each post of that type is a full Elementor layout assigned to one WooCommerce screen \u2014 Shop page, Single Product, Cart, Checkout, or My Account \u2014 and can be narrowed to particular products, categories, tags, or pages, so a single store can serve different layouts to different parts of its catalog. On top of the templates, the plugin ships a large set of Elementor widgets: the Product Grid with its AJAX filter family, the single-product widget set, and the Cart \/ Checkout \/ My Account widgets.<\/p>\n\n<h3>Free features<\/h3>\n\n<ul>\n<li><code>trx_wcext_template<\/code> custom post type \u2014 Elementor layouts for 5 WooCommerce screens: Shop Page, Single Product, Cart, Checkout, My Account<\/li>\n<li>Per-template assignment rules \u2014 Include \/ Exclude by product, category, tag, or page, with a resolver that picks the most specific match and falls back to the WooCommerce default when nothing matches<\/li>\n<li>33 Elementor widgets in the \"ThemeREX WCExt\" category<\/li>\n<li><strong>Product Grid<\/strong> \u2014 the catalog widget: Grid and Carousel layouts, three card styles (Default, Brief 1, Brief 2), configurable query source (current archive, category, tag, related, upsells, hand-picked IDs), hover actions panel, sale badges, out-of-stock badges, Load More or classic pagination<\/li>\n<li><strong>AJAX catalog filters<\/strong> that work together with the Product Grid on any page \u2014 Categories, Tag, Attribute, Price (a range slider bounded by the archive it stands on), Rating, Stock Status, Brand, Search, Active Filters chips, Filter Button, Sorting, Showing, Pagination, Breadcrumbs<\/li>\n<li>Filter widgets keep their product counters accurate per archive, support keyboard Tab \/ Enter navigation, offer a search field for long value lists, and cap the number of items rendered in the Elementor editor so large stores stay editable<\/li>\n<li><strong>Single product widgets<\/strong> \u2014 Title, Gallery, Price, Rating, Stock, Brand, Meta, Short Description, Add to Cart, Tabs (with reviews and review form), Sale Badge, Related, Upsells<\/li>\n<li><strong>Shop page widgets<\/strong> \u2014 Cart, Checkout, My Account, WooCommerce Notices, WooCommerce Coupon<\/li>\n<li><strong>Swatches<\/strong> module \u2014 turn a product attribute into color, image, or button swatches, in the catalog and on the product page<\/li>\n<li><strong>Use Attribute as Filter<\/strong> module \u2014 a per-attribute checkbox in the WooCommerce attribute settings that decides whether the attribute is offered by the filter widgets<\/li>\n<li>AJAX add-to-cart from the catalog with a spinner and a \"View Cart\" link<\/li>\n<li>Extended product search \u2014 find products by GTIN, UPC, EAN, or ISBN (the <code>_global_unique_id<\/code> field)<\/li>\n<li>Alphabetical sorting of the product categories checklist in the product editor and in Quick Edit<\/li>\n<li>Works with both classic and block (FSE) themes \u2014 the plugin's templates render with the theme header and footer in either case<\/li>\n<li>Optional scroll-to-grid after filtering, configurable per store<\/li>\n<li>Every module and every widget can be switched off individually on the plugin settings page, so only what you use is loaded<\/li>\n<li><code>wpml-config.xml<\/code> for WPML and Polylang \u2014 widget fields are exposed to the translation editor<\/li>\n<li>Translation-ready, text domain <code>trx-wcext<\/code><\/li>\n<\/ul>\n\n<h3>Pro Version<\/h3>\n\n<p><strong>ThemeREX eCommerce Extensions Pro<\/strong> is distributed from themerex.net and installs in place of this free plugin \u2014 same settings, same templates, no data migration. It adds:<\/p>\n\n<p><strong>Store features<\/strong><\/p>\n\n<ul>\n<li><strong>Wishlist<\/strong> \u2014 a wishlist for guests and logged-in customers, with its own page template, a \"Wishlist\" widget, a \"Wishlist Button\" counter widget for the header, and an add-to-wishlist widget for the product page<\/li>\n<li><strong>Compare<\/strong> \u2014 side-by-side product comparison with the same set: page template, \"Compare\" widget, header counter button, and a per-product add-to-compare widget<\/li>\n<li><strong>Size Guide<\/strong> \u2014 reusable size charts built in Elementor, attached to products by attribute or category, shown in a popup from the product page, the catalog card, and the Quick View<\/li>\n<li><strong>Custom Tabs<\/strong> \u2014 extra tabs on the single product page, built in Elementor and matched to products by category<\/li>\n<li><strong>Quick View<\/strong> \u2014 a product popup opened from the catalog, either the built-in layout or a \"Quick View\" Elementor template resolved per product, with AJAX add-to-cart inside the popup<\/li>\n<li><strong>Brand Enhancements<\/strong> \u2014 turns the WooCommerce \"Brands\" taxonomy into whatever your store actually sells by (Author, Designer, Manufacturer, Artist, or custom wording): renames the taxonomy in the admin area, in the archive URL with a 301 from the old address, and in widget defaults; adds a per-brand product tab and a \"Brand Archive\" template type with a \"Brand Info\" widget<\/li>\n<li><strong>Out of Stock Position<\/strong> \u2014 move out-of-stock products to the end of the catalog, or hide them<\/li>\n<li><strong>Masonry catalog layout<\/strong> \u2014 a third Product Grid layout next to Grid and Carousel: cards keep their own height and tile into columns of equal width, re-laid out after AJAX filtering, Load More, and in the Elementor editor<\/li>\n<\/ul>\n\n<p><strong>Additional widgets<\/strong><\/p>\n\n<ul>\n<li><strong>Cart Button<\/strong> \u2014 a header trigger with an item-count badge that slides a cart panel in from the side of the window: AJAX quantity editing and removal, subtotal, View Cart \/ Checkout buttons, and a configurable empty state; the counter stays correct on full-page-cached pages<\/li>\n<li><strong>Login<\/strong> \u2014 a header trigger with a slide-in panel holding three switchable AJAX forms: Login, Registration, Lost Password<\/li>\n<li><strong>WooCommerce Search<\/strong> \u2014 an expanding search field or popup with live results, product images, prices, and full styling control<\/li>\n<li><strong>WooCommerce Banner<\/strong> and <strong>WooCommerce Hook<\/strong> \u2014 a promo banner widget and a widget that renders any WooCommerce action hook at an arbitrary point of your layout<\/li>\n<li><strong>Product Grid Columns<\/strong>, <strong>Product Grid Count<\/strong>, and <strong>Product Filter: Attributes (Auto)<\/strong> \u2014 the auto filter detects which attributes the products of the current category actually use and renders a filter block for each<\/li>\n<\/ul>\n\n<p><strong>Template library and updates<\/strong><\/p>\n\n<ul>\n<li>Pre-made Elementor templates from the ThemeREX Templates Library for shop, product, cart, checkout, wishlist, compare, size guide, and custom tab layouts<\/li>\n<li>One-click plugin updates from the ThemeREX update server<\/li>\n<li>Priority support<\/li>\n<\/ul>\n\n<p>Full details, screenshots and the live demo store: <a href=\"https:\/\/wooextension.themerex.net\/\">wooextension.themerex.net<\/a> \u00b7 <a href=\"https:\/\/fashion.elementra.themerex.net\/\">fashion.elementra.themerex.net<\/a>.<\/p>\n\n<h3>Why a custom post type for templates?<\/h3>\n\n<p>Because the alternative is editing PHP. WooCommerce ships its page markup as template files, and changing them means copying <code>woocommerce\/templates\/*<\/code> into your theme and maintaining that copy through every WooCommerce release.<\/p>\n\n<p>Here each layout is an ordinary post you build with the Elementor editor. The plugin's template loader intercepts the WooCommerce screen, resolves which of your templates applies to the product or archive being viewed, and renders that layout instead. Templates are versioned like posts, exported and imported like posts, and survive theme switches \u2014 they belong to the plugin, not to the theme.<\/p>\n\n<p>Assignment is per template, so a \"Shop Page\" layout can be scoped to one category and a different one to the rest of the catalog. When no template matches, WooCommerce's own output is used \u2014 installing the plugin changes nothing until you build your first template.<\/p>\n\n<h3>Privacy<\/h3>\n\n<p>This plugin does not phone home. No telemetry, no remote analytics, no opt-in dialogs, and no outbound HTTP requests of any kind \u2014 the plugin contains no <code>wp_remote_*<\/code> calls at all.<\/p>\n\n<p>Nothing is sent anywhere: catalog filtering, template resolution, and cart operations all run on your own server through the WordPress AJAX endpoint. No cookies are set beyond the ones WooCommerce sets for the cart and the customer session.<\/p>\n\n<h3>Third-party assets and licenses<\/h3>\n\n<ul>\n<li><strong>Isotope<\/strong> 3.0.6 (GPLv3 \/ Commercial dual license; used here under GPLv3) \u2014 filtered and masonry layouts in the Product Grid widget. 3.0.6 is the latest stable upstream release.<\/li>\n<\/ul>\n\n<p>All other JavaScript, CSS and image files bundled with the plugin are our own creation and are licensed under the same license as this plugin.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>In your admin panel go to <code>Plugins - Add New<\/code> and click <code>Upload Plugin<\/code>.<\/li>\n<li>Choose the plugin's .zip file, click <code>Install Now<\/code>, then activate the plugin.<\/li>\n<li><strong>WooCommerce and Elementor must be installed and active<\/strong> \u2014 the plugin declares both as required plugins and will not activate without them.<\/li>\n<li>Open <code>WooCommerce - TRX Woo Extension<\/code> (or <code>Theme Panel - TRX Woo Extension<\/code> when the ThemeREX Addons plugin is active) and pick the modules and widgets you want to load.<\/li>\n<li>Go to <code>TRX Woo Templates - Add New<\/code>, choose a template type (Shop Page, Single Product, Cart, Checkout, or My Account), and build the layout in Elementor.<\/li>\n<li>In the template's settings, set the Include \/ Exclude rules that decide which products, categories, or pages it applies to. Publish \u2014 the template is live.<\/li>\n<\/ol>\n\n<p>Documentation: <a href=\"https:\/\/doc.themerex.net\/trx-wcext\/\">doc.themerex.net\/trx-wcext<\/a>.<\/p>\n\n<!--section=faq-->\n<dl>\n<dt id=\"do%20i%20need%20elementor%20pro%3F\"><h3>Do I need Elementor Pro?<\/h3><\/dt>\n<dd><p>No. All widgets and templates work with the free Elementor. Elementor Pro's theme builder is not used \u2014 the plugin has its own template system and its own assignment rules.<\/p><\/dd>\n<dt id=\"does%20this%20work%20with%20my%20theme%3F\"><h3>Does this work with my theme?<\/h3><\/dt>\n<dd><p>Yes, with classic and block (FSE) themes alike. The plugin renders its templates inside your theme's header and footer, and does not require <code>header.php<\/code> to exist, so block themes such as Twenty Twenty-Five are supported.<\/p><\/dd>\n<dt id=\"what%20happens%20to%20my%20store%20before%20i%20build%20any%20template%3F\"><h3>What happens to my store before I build any template?<\/h3><\/dt>\n<dd><p>Nothing changes. The template resolver takes over a WooCommerce screen only when a published template matches it. With no templates, WooCommerce renders its own pages exactly as before, and the widgets are simply available in the Elementor panel.<\/p><\/dd>\n<dt id=\"can%20i%20use%20the%20filter%20widgets%20on%20a%20regular%20page%2C%20not%20just%20the%20shop%3F\"><h3>Can I use the filter widgets on a regular page, not just the shop?<\/h3><\/dt>\n<dd><p>Yes. Put a Product Grid on any page and the filter widgets on the same page \u2014 they bind to that grid and filter it over AJAX. The grid's query source decides which products it starts from.<\/p><\/dd>\n<dt id=\"does%20filtering%20work%20with%20a%20caching%20plugin%3F\"><h3>Does filtering work with a caching plugin?<\/h3><\/dt>\n<dd><p>Yes. Filtering runs over AJAX, so a filtered result is never served from a cached HTML page. In the Pro edition, the Cart Button counter is fetched separately for the same reason, so it stays correct on full-page-cached pages.<\/p><\/dd>\n<dt id=\"will%20it%20slow%20down%20a%20large%20catalog%3F\"><h3>Will it slow down a large catalog?<\/h3><\/dt>\n<dd><p>The filter widgets' database queries were rewritten for stores with 20,000+ products and dozens of attributes per product. In the Elementor editor, filter widgets additionally cap how many values they render, so editing a page does not load a taxonomy of thousands of terms.<\/p><\/dd>\n<dt id=\"multilingual%20support%3F\"><h3>Multilingual support?<\/h3><\/dt>\n<dd><p>WPML and Polylang. The bundled <code>wpml-config.xml<\/code> describes which widget fields are translatable, so widget texts show up in the WPML translation editor; Polylang picks up the same fields.<\/p><\/dd>\n<dt id=\"where%20is%20the%20plugin%20menu%3F\"><h3>Where is the plugin menu?<\/h3><\/dt>\n<dd><p>Under <code>WooCommerce - TRX Woo Extension<\/code>, or under <code>Theme Panel - TRX Woo Extension<\/code> if the ThemeREX Addons plugin is active. The templates themselves live in their own top-level <code>TRX Woo Templates<\/code> menu.<\/p><\/dd>\n<dt id=\"i%20disabled%20a%20module%20and%20its%20settings%20disappeared.\"><h3>I disabled a module and its settings disappeared.<\/h3><\/dt>\n<dd><p>That is intended: disabling a module resets its settings to the defaults. Re-enable it and reconfigure, or leave the modules you use enabled. Templates and their content are posts and are never deleted by toggling modules.<\/p><\/dd>\n<dt id=\"where%20is%20support%3F\"><h3>Where is support?<\/h3><\/dt>\n<dd><ul>\n<li>Community support: the WordPress.org plugin forum.<\/li>\n<li>Priority support: included with the Pro edition from themerex.net.<\/li>\n<\/ul><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0<\/h4>\n\n<p>Initial release.<\/p>","raw_excerpt":"Elementor widgets and page templates for WooCommerce: shop, product, cart, checkout, my account, plus AJAX catalog filters.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/359989","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=359989"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/themerex"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=359989"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=359989"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=359989"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=359989"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=359989"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=359989"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}