Getting started
Peek ships enabled. After activation the quick-view button appears on the next shop page load, with no wizard and no permalink flush. This page lists what you start with, so you know which defaults are already in effect before you change anything. The day-to-day flow is in Usage.
Before you start
Section titled “Before you start”- WordPress 6.5 or newer
- WooCommerce 8.0 or newer (HPOS and Cart/Checkout Blocks supported)
- PHP 8.1 or newer
Peek declares Requires Plugins: woocommerce. Without WooCommerce active it shows an admin notice and registers nothing on the storefront.
Install
Section titled “Install”- Install WooCommerce and make sure it is active.
- Install Peek from the WordPress.org plugin directory or upload the
plogins-peekfolder to/wp-content/plugins/. - Activate the plugin.
Settings you start with
Section titled “Settings you start with”Every setting is stored in one array option, peek_settings, edited on the top-level Peek menu in wp-admin. The menu and the save both require manage_woocommerce, so shop managers can change it. Stored values are merged over the packaged defaults, so a fresh install behaves as below.
Trigger button
| Setting | Key | Default |
|---|---|---|
| Enable quick view | enabled |
on |
| Button label | button_text |
empty, shows the translated Quick view |
| Button style | button_style |
text (also icon, icon_text) |
| Button placement | loop_button_placement |
below (also overlay) |
| Where to load | display_scope |
shop (also shop_single) |
Modal chrome
| Setting | Key | Default |
|---|---|---|
| Modal title | modal_title |
empty, shows Product quick view |
| Close button label | close_label |
empty, shows Close |
| Loading text | loading_text |
empty, shows Loading product… |
| Error text | error_text |
empty, shows Failed to load the product preview. |
| View product link text | view_product_text |
empty, shows View full product |
| SKU label | sku_label |
empty, shows SKU |
| Modal heading | show_modal_label |
on |
| Close button | show_close_button |
on |
| Close on backdrop click | show_backdrop_close |
on |
Modal content: show_image, show_gallery, show_title, show_sku, show_price, show_stock, show_short_description, show_add_to_cart and show_view_product_link are all on, and gallery_limit (Gallery thumbnail count) is 4. The count is clamped to 0 to 12 on save; 0 shows the main image only.
An unknown value for button_style, loop_button_placement or display_scope falls back to its default on save. Empty text fields stay empty in the option, so the storefront always shows the default in the site language. Add-ons can adjust the cleaned array with the peek_sanitize_settings filter (array $sanitized, array $raw).
Where the button attaches
Section titled “Where the button attaches”- Below product card (
below): the button prints onwoocommerce_after_shop_loop_itemat priority 21, right after WooCommerce’s own add-to-cart button (priority 10). - On image (
overlay): it prints onwoocommerce_before_shop_loop_itemat priority 8, before the product link opens, and is revealed on hover and:focus-within. - Product Collection blocks: on a page built with the block (a homepage, a landing page), WooCommerce does not fire the classic loop hooks, so Peek appends the button after each card’s
woocommerce/product-buttonblock through therender_block_woocommerce/product-buttonfilter. On shop and taxonomy archives where the block inherits the query, the classic hooks already cover it and no second button is added.
The button and the modal shell (printed on wp_footer) only load where they can work: shop, product category, tag and taxonomy archives, and singular pages containing a Product Collection or product button block. Single product pages are included only when Where to load is shop_single, which covers their related and up-sell loops. The single product’s own template never gets a button.
The modal content is fetched over admin-ajax.php with the action peek_quick_view, for guests and logged-in shoppers alike, and the script loads in the footer with defer.
Shortcode triggers
Section titled “Shortcode triggers”Two shortcode names render the same trigger: [peek] and [peek_quick_view].
[peek id="123"][peek id="123" text="Preview" style="icon_text"]| Attribute | Default | Accepted values |
|---|---|---|
id |
0 |
A product ID. Required: 0, a missing ID or one that is not a WooCommerce product renders nothing. |
text |
empty | Button label for this trigger only; empty uses the Button label setting. |
style |
empty | text, icon or icon_text; any other value uses the Button style setting. |
The shortcode renders nothing while Enable quick view is off. When it does render, Peek prints the modal shell and enqueues its assets on that request even if the page is outside the normal shop context, including when the shortcode runs after wp_enqueue_scripts.
Quick check
Section titled “Quick check”- Open Shop or a category archive and confirm each card has a Quick view button (below the card, or on the image on hover or focus).
- Click it: the modal opens, shows the loading text, then the product.
- Close it with Escape or the backdrop and confirm focus returns to the button.
If no button appears, check that Enable quick view is on and that you are on an archive, not the single product page itself.
Free vs PRO
Section titled “Free vs PRO”The free edition covers the AJAX modal, variation-aware add-to-cart, overlay/below placement, shortcodes and full settings.
Peek Pro adds variation swatches in the modal, a related-products carousel, custom modal sections and quick-view analytics, not basic modal access.
Need help?
Section titled “Need help?”- Peek overview, features and Polski overlap
- GitHub issues
- Peek on plogins.com