Skip to content

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.

  • 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.

  1. Install WooCommerce and make sure it is active.
  2. Install Peek from the WordPress.org plugin directory or upload the plogins-peek folder to /wp-content/plugins/.
  3. Activate the plugin.

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).

  • Below product card (below): the button prints on woocommerce_after_shop_loop_item at priority 21, right after WooCommerce’s own add-to-cart button (priority 10).
  • On image (overlay): it prints on woocommerce_before_shop_loop_item at 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-button block through the render_block_woocommerce/product-button filter. 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.

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.

  1. 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).
  2. Click it: the modal opens, shows the loading text, then the product.
  3. 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.

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.