Title: MonkeyDesign Product Grid for Elementor
Author: monkeydesign2026
Published: <strong>July 10, 2026</strong>
Last modified: July 10, 2026

---

Search plugins

![](https://ps.w.org/monkeydesign-product-grid-for-elementor/assets/banner-772x250.
png?rev=3602553)

![](https://ps.w.org/monkeydesign-product-grid-for-elementor/assets/icon-256x256.
png?rev=3602553)

# MonkeyDesign Product Grid for Elementor

 By [monkeydesign2026](https://profiles.wordpress.org/monkeydesign2026/)

[Download](https://downloads.wordpress.org/plugin/monkeydesign-product-grid-for-elementor.1.5.20.zip)

 * [Details](https://wordpress.org/plugins/monkeydesign-product-grid-for-elementor/#description)
 * [Reviews](https://wordpress.org/plugins/monkeydesign-product-grid-for-elementor/#reviews)
 *  [Installation](https://wordpress.org/plugins/monkeydesign-product-grid-for-elementor/#installation)
 * [Development](https://wordpress.org/plugins/monkeydesign-product-grid-for-elementor/#developers)

 [Support](https://wordpress.org/support/plugin/monkeydesign-product-grid-for-elementor/)

## Description

MonkeyDesign Product Grid is a lightweight Elementor widget that displays WooCommerce
products in a responsive grid — no Elementor Pro required.

**Product selection**

 * Latest, Featured, Sale, Best Selling, Top Rated, Category, or Manual Selection
 * Sort by date, title, price, rating, popularity, or random order

**Layout**

 * Responsive columns (separate desktop/tablet/mobile control)
 * Adjustable grid gap
 * Equal height cards toggle
 * Pagination: none, numbered, or Load More

**Design**

 * Product card background, border, corner radius, and shadow controls
 * Typography and color controls for the title and price
 * Add to Cart button color controls
 * Load More button color controls and a customizable button label
 * Automatically adopts your active theme’s WooCommerce styling (fonts, colors, 
   button look) by default — only overrides what you explicitly customize

**Under the hood**

 * Cached product queries for fast repeat page loads
 * Admin settings page for global defaults (product limit, columns, ordering, caching,
   display options)

This is currently a development build. Pro features (AJAX Load More, Infinite Scroll,
Quick View, Wishlist, Compare) are planned but not yet available.

## Screenshots

[⌊The Product Grid widget's Query Controls in the Elementor editor⌉⌊The Product 
Grid widget's Query Controls in the Elementor editor⌉[

The Product Grid widget’s Query Controls in the Elementor editor

[⌊A rendered product grid on the frontend, using the active theme's own styling⌉⌊
A rendered product grid on the frontend, using the active theme's own styling⌉[

A rendered product grid on the frontend, using the active theme’s own styling

[⌊Layout and Style controls with live preview⌉⌊Layout and Style controls with live
preview⌉[

Layout and Style controls with live preview

[⌊The plugin's admin settings page⌉⌊The plugin's admin settings page⌉[

The plugin’s admin settings page

## Installation

 1. Upload to `/wp-content/plugins/`
 2. Activate the plugin
 3. Edit a page with Elementor and drag in the “Product Grid” widget

## FAQ

### Does this require Elementor Pro?

No. This widget works entirely with Elementor Free.

### Does this require WooCommerce?

Yes, WooCommerce must be installed and active — this widget displays WooCommerce
products.

### Will the grid match my theme’s design?

Yes, by default. Product titles, prices, and the Add to Cart button pick up your
active theme’s own WooCommerce styling automatically. You can still override colors,
typography, and card shape from the widget’s Style tab if you want a custom look.

### Where do I configure global defaults?

Under the “Product Grid” admin menu item (product limit, default ordering, caching,
and display options). Per-widget settings in Elementor always take priority over
these.

## Reviews

There are no reviews for this plugin.

## Contributors & Developers

“MonkeyDesign Product Grid for Elementor” is open source software. The following
people have contributed to this plugin.

Contributors

 *   [ monkeydesign2026 ](https://profiles.wordpress.org/monkeydesign2026/)

[Translate “MonkeyDesign Product Grid for Elementor” into your language.](https://translate.wordpress.org/projects/wp-plugins/monkeydesign-product-grid-for-elementor)

### Interested in development?

[Browse the code](https://plugins.trac.wordpress.org/browser/monkeydesign-product-grid-for-elementor/),
check out the [SVN repository](https://plugins.svn.wordpress.org/monkeydesign-product-grid-for-elementor/),
or subscribe to the [development log](https://plugins.trac.wordpress.org/log/monkeydesign-product-grid-for-elementor/)
by [RSS](https://plugins.trac.wordpress.org/log/monkeydesign-product-grid-for-elementor/?limit=100&mode=stop_on_copy&format=rss).

## Changelog

#### 1.5.20

 * Clarified in the admin “Display Defaults” card that “Show ratings” and “Show 
   Add to Cart button” can be overridden per grid with the PRO add-on (via the widget’s
   own “Card Fields” section), while “Show out of stock products” always stays a
   site-wide setting since it affects which products are queried in the first place.

#### 1.5.19

 * Grid Gap is now a proper row/column gap control (matching Elementor’s own native
   containers), instead of a single slider controlling both directions at once.

#### 1.5.18

 * Fixed the Price Color control not affecting the actual price digits — WooCommerce
   wraps the price in its own inner element, which most themes color directly, so
   only styling the outer wrapper had no visible effect.
 * Fixed row spacing in the grid being larger than the configured Grid Gap value—
   some themes (e.g. Astra) add their own margin to WooCommerce product list items,
   left over from float-based grid layouts, which added on top of this plugin’s 
   own Grid Gap control.

#### 1.5.17

 * Fixed a phpcs:ignore comment that lost its association with the code line it 
   was meant to cover, causing Plugin Check to report a false-positive nonce-verification
   warning.

#### 1.5.16

 * Security hardening per WP.org review feedback: raw client-submitted data (the
   AJAX Load More query, and the Settings page form) is now sanitized immediately
   at the point it enters the plugin, before it reaches any internal extensibility
   hook — previously a hooked callback could have received unsanitized input.

#### 1.5.15

 * Renamed the PRO add-on’s folder/text domain to `monkeydesign-product-grid-for-
   elementor-pro` to match the FREE plugin’s new slug, and updated the Freemius `
   premium_slug` reference accordingly. No functional changes.

#### 1.5.14

 * Renamed the plugin’s text domain and folder to `monkeydesign-product-grid-for-
   elementor` to match the slug assigned by the WordPress.org plugin review team(
   the originally requested `monkeydesign-product-grid` was already taken). No functional
   changes.
 * Added self as a listed contributor.

#### 1.5.13

 * Fixed the previous height fix not actually taking effect: a stronger min-height
   rule elsewhere was still winning, so the Compare table’s text field and color
   pickers still rendered a few pixels apart. Now pinned with !important so it holds.

#### 1.5.12

 * Gave the Compare table’s color pickers an explicit height matching the text field
   beside them — native color inputs render shorter than text inputs by default,
   which threw off the row’s alignment.

#### 1.5.11

 * Fixed the Compare table’s button settings layout: the text field and its three
   color pickers now share a single row (text field fills the remaining space, colors
   keep their compact native size), instead of the text field sitting on its own
   row above them.

#### 1.5.10

 * Tidied up the Compare table’s admin appearance settings: the three color pickers
   for each button (View Product / Remove) now sit side by side in one row, and 
   each button’s text field spans the full width.

#### 1.5.9

 * Split the Compare table’s “Button Background/Text/Hover Color” admin settings
   into separate “View Product Button” and “Remove Button” groups — the existing
   controls only ever styled the “View product” button, so the “Remove” button had
   no configurable color at all until now.
 * Added a custom button text field for both the “View Product” and “Remove” buttons
   in the Compare table (previously hardcoded).

#### 1.5.8

 * Restyled the Card Actions shortcode note: 6px spacing between lines, and each
   shortcode now shown as a dark badge with white text so it stays legible in both
   the light and dark Elementor panel themes (plain white text would have disappeared
   against a light panel).

#### 1.5.7

 * Replaced the sort dropdown’s solid triangle arrow with a subtler, thin outlined
   chevron.

#### 1.5.6

 * Fixed the PRO Result Bar’s result count not sitting on the same vertical center
   line as the sort dropdown — a theme-level paragraph margin (e.g. Astra’s content-
   area spacing) was pushing it down; a more specific selector now overrides it.
 * Added a custom dropdown arrow to the sort dropdown, consistent across browsers(
   replaces each browser’s own native arrow) without widening the field.

#### 1.5.5

 * Fixed the PRO Result Bar’s sort dropdown wrapping onto its own line below the
   result count instead of sitting beside it (like WooCommerce’s own shop toolbar)—
   some themes apply a blanket `select { width: 100% }` rule that the dropdown had
   no explicit width to override.

#### 1.5.4

 * Split the combined “Wishlist, Compare & Quick View Buttons” Style-tab section
   into three independent sections (one per button), each only appearing when its
   own button is actually available on the grid — fixes a usability regression from
   1.5.3 where all three were bundled together regardless of which were enabled.

#### 1.5.3

 * Added Style-tab color and border-radius controls for the PRO add-on’s Wishlist,
   Compare, and Quick View card icon buttons, matching the customization already
   available for the Add to Cart and Load More buttons.
 * Added a PRO “Result Bar” feature: an optional result count (“Showing 1–8 of 24
   results”) and sort dropdown shown above a paginated grid, each with its own master
   switch and per-grid Show/Hide control. Sorting reloads the page with the new 
   order, the same way WordPress core’s own shop sorting works, so it behaves correctly
   regardless of pagination type.

#### 1.5.2

 * Moved the PRO add-on’s Quick View modal styling (background, border, radius, 
   padding, shadow, and now its own Add to Cart button colors) from the admin Settings
   page into a native “Quick View” section on the Product Grid widget’s own Style
   tab, matching where every other style control already lives. It still targets
   the shared modal element directly (not per-widget-scoped), since the modal itself
   is one DOM node shared by the whole page.

#### 1.5.1

 * Fixed a bug found during hands-on testing: adding/removing a product from a Wishlist
   or Compare page didn’t update an already-rendered `[monkeydesign_wishlist]`/`[
   monkeydesign_compare]` shortcode elsewhere on the same page without a manual 
   refresh. Root cause: PHP’s `setcookie()` doesn’t update the current request’s
   cookie data, so the shortcode was re-rendered from the pre-toggle state. The 
   PRO add-on’s toggle response now carries the freshly rendered list, refreshed
   on the page immediately.
 * Added Quick View modal padding control and Compare table button color controls(
   background, text, hover) to the admin settings.

#### 1.5.0

 * Added color controls and a customizable label for the “Load More” pagination 
   button (Style and Content tabs).
 * Fixed several PRO add-on issues found during hands-on testing: its CSS/JS now
   loads reliably in the Elementor editor preview and on the wishlist/compare shortcode
   pages (previously only loaded if triggered by a product grid elsewhere on the
   page); un-wishlisting/un-comparing a product now updates the visible list immediately
   instead of requiring a manual page refresh; the Quick View button no longer overlaps
   the Sale badge.
 * Replaced the “Enable Infinite Scroll” master switch with a per-grid “Load More
   Behavior” choice in Elementor — having two independent site-wide switches let
   both be turned on at once even though they’re mutually exclusive per grid.
 * Added a `ProductDTO::$shortDescription` field and supporting template markup,
   used by the PRO add-on’s new per-grid Card Fields controls.

#### 1.4.1

 * Extended the `monkeydesign_product_card_data` filter to receive the current display
   options as a third argument, so a PRO add-on’s card-level features can be controlled
   per grid instance, not only site-wide. No behavior change for sites without the
   PRO add-on.

#### 1.4.0

 * Added internal extensibility needed for the upcoming PRO add-on: a `monkeydesign_settings_sanitize`
   filter so PRO’s own settings persist correctly, a `ProductRendererService::renderCards()`
   method for rendering product batches without a full page reload, and pagination
   markup that a PRO AJAX/infinite-scroll layer can hook into. No behavior change
   for sites without the PRO add-on.

#### 1.3.1

 * The “Get PRO” link now points to the correct language version of the product 
   page (Hungarian or English) based on the site’s locale.

#### 1.3.0

 * Moved the admin settings page to its own top-level menu item (was nested under
   WooCommerce).
 * Wired up two settings that were previously saved but ignored: “Lazy Load Images”
   now adds `loading="lazy"` to product images, and “Requires Plugins” is now declared
   in the plugin header for automatic dependency prompts.
 * Added the documented extension hooks/filters (`monkeydesign_before_product_query`,`
   monkeydesign_product_query_args`, `monkeydesign_product_card_data`, and others)
   so Pro features can hook in without modifying core files.
 * Added widget search keywords in the Elementor panel.
 * Various documentation/code consistency fixes found during a full pre-submission
   review.

#### 1.2.3

 * Security hardening pass: fixed missing output escaping and input unslashing, 
   added uninstall cleanup, added a missing-dependency admin notice.
 * Prepared Freemius licensing wiring (inactive until real credentials are configured).
 * Generated the .pot translation template.
 * Fixed a Pro Settings label mismatch (“AJAX Load More” vs “AJAX Filtering”).

#### 1.2.0

 * Initial development build: Elementor widget, full query engine, layout/style 
   controls, admin settings, query caching.

## Meta

 *  Version **1.5.20**
 *  Last updated **11 hours ago**
 *  Active installations **Fewer than 10**
 *  WordPress version ** 6.0 or higher **
 *  Tested up to **7.0.1**
 *  PHP version ** 8.1 or higher **
 * Tags
 * [ecommerce](https://wordpress.org/plugins/tags/ecommerce/)[elementor](https://wordpress.org/plugins/tags/elementor/)
   [product display](https://wordpress.org/plugins/tags/product-display/)[Product Grid](https://wordpress.org/plugins/tags/product-grid/)
   [woocommerce](https://wordpress.org/plugins/tags/woocommerce/)
 *  [Advanced View](https://wordpress.org/plugins/monkeydesign-product-grid-for-elementor/advanced/)

## Ratings

No reviews have been submitted yet.

[Your review](https://wordpress.org/support/plugin/monkeydesign-product-grid-for-elementor/reviews/#new-post)

[See all reviews](https://wordpress.org/support/plugin/monkeydesign-product-grid-for-elementor/reviews/)

## Contributors

 *   [ monkeydesign2026 ](https://profiles.wordpress.org/monkeydesign2026/)

## Support

Got something to say? Need help?

 [View support forum](https://wordpress.org/support/plugin/monkeydesign-product-grid-for-elementor/)