{"id":364594,"date":"2026-09-06T20:16:48","date_gmt":"2026-09-06T20:16:48","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/pair-product-recommendations-for-woocommerce\/"},"modified":"2026-09-07T06:01:57","modified_gmt":"2026-09-07T06:01:57","slug":"plogins-pair","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/plogins-pair\/","author":108511,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.1.1","stable_tag":"1.1.1","tested":"7.1","requires":"6.5","requires_php":"8.1","requires_plugins":null,"header_name":"Pair - Product Recommendations for WooCommerce","header_author":"WPPoland.com","header_description":"Automatic product recommendations for WooCommerce: a \"You may also like\" block on the product page and cross-sell suggestions in the cart. No manual setup, no layout shift.","assets_banners_color":"efeeed","last_updated":"2026-09-07 06:01:57","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/plogins.com\/plogins-pair\/","header_author_uri":"https:\/\/wppoland.com","rating":0,"author_block_rating":0,"active_installs":0,"downloads":63,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.1.0":{"tag":"1.1.0","author":"motylanogha","date":"2026-09-06 20:16:30","revision":3683918},"1.1.1":{"tag":"1.1.1","author":"motylanogha","date":"2026-09-07 06:01:57","revision":3684242}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3683917,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3683917,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3684241,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3684241,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{"blueprint.json":{"filename":"blueprint.json","revision":3684242,"resolution":false,"location":"assets","locale":"","contents":"{\"$schema\":\"https:\\\/\\\/playground.wordpress.net\\\/blueprint-schema.json\",\"meta\":{\"title\":\"Plogins Pair - Product Recommendations for WooCommerce, Live Preview\",\"author\":\"WPPoland\"},\"landingPage\":\"\\\/wp-admin\\\/admin.php?page=pair-settings\",\"preferredVersions\":{\"php\":\"8.2\",\"wp\":\"latest\"},\"login\":true,\"steps\":[{\"step\":\"installPlugin\",\"pluginData\":{\"resource\":\"wordpress.org\\\/plugins\",\"slug\":\"woocommerce\"},\"options\":{\"activate\":true}},{\"step\":\"runPHP\",\"code\":\"<?php require '\\\/wordpress\\\/wp-load.php';\\ndelete_transient('_wc_activation_redirect');\\nupdate_option('woocommerce_onboarding_profile', array('skipped'=>true, 'completed'=>true));\\nif (function_exists('wc_get_product_id_by_sku') && class_exists('WC_Product_Simple')) {\\n  $demo = array('Trailwind Running Shoes'=>89, 'Harbor Leather Wallet'=>39, 'Amber Soy Candle'=>18, 'Coastal Pullover Hoodie'=>49, 'Field Canvas Backpack'=>59, 'Matte Ceramic Mug'=>14);\\n  foreach ($demo as $name=>$price) {\\n    $sku = 'demo-'.sanitize_title($name);\\n    if (wc_get_product_id_by_sku($sku)) { continue; }\\n    $p = new WC_Product_Simple();\\n    $p->set_name($name); $p->set_sku($sku); $p->set_regular_price((string)$price);\\n    $p->set_status('publish'); $p->set_catalog_visibility('visible');\\n    $p->save();\\n  }\\n}\"},{\"step\":\"installPlugin\",\"pluginData\":{\"resource\":\"wordpress.org\\\/plugins\",\"slug\":\"plogins-pair\"},\"options\":{\"activate\":true}}]}"}},"all_blocks":[],"tagged_versions":["1.1.0","1.1.1"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3683917,"resolution":"1","location":"assets","locale":"","width":1600,"height":1200},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3683917,"resolution":"2","location":"assets","locale":"","width":1600,"height":1200},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3683917,"resolution":"3","location":"assets","locale":"","width":1600,"height":1200}},"screenshots":{"1":"The \"You may also like\" block on a product page.","2":"Cross-sell suggestions under the cart.","3":"The sectioned Pair recommendations settings screen."}},"plugin_section":[],"plugin_tags":[13788,139790,7126,6903,286],"plugin_category":[45],"plugin_contributors":[264912],"plugin_business_model":[],"class_list":["post-364594","plugin","type-plugin","status-publish","hentry","plugin_tags-cross-sell","plugin_tags-product-recommendations","plugin_tags-recently-viewed","plugin_tags-related-products","plugin_tags-woocommerce","plugin_category-ecommerce","plugin_contributors-motylanogha","plugin_committers-motylanogha"],"banners":{"banner":"https:\/\/ps.w.org\/plogins-pair\/assets\/banner-772x250.png?rev=3684241","banner_2x":"https:\/\/ps.w.org\/plogins-pair\/assets\/banner-1544x500.png?rev=3684241","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/plogins-pair\/assets\/icon-128x128.png?rev=3683917","icon_2x":"https:\/\/ps.w.org\/plogins-pair\/assets\/icon-256x256.png?rev=3683917","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/plogins-pair\/assets\/screenshot-1.png?rev=3683917","caption":"The \"You may also like\" block on a product page."},{"src":"https:\/\/ps.w.org\/plogins-pair\/assets\/screenshot-2.png?rev=3683917","caption":"Cross-sell suggestions under the cart."},{"src":"https:\/\/ps.w.org\/plogins-pair\/assets\/screenshot-3.png?rev=3683917","caption":"The sectioned Pair recommendations settings screen."}],"raw_content":"<!--section=description-->\n<p>Plogins Pair adds automatic product recommendations to your WooCommerce store, with no manual setup. It helps shoppers discover more of your catalog while they browse and check out, which lifts average order value and keeps people moving toward the cart.<\/p>\n\n<p>Out of the box you get three blocks:<\/p>\n\n<ul>\n<li><strong>\"You may also like\"<\/strong> after the product summary, so a shopper always has a next step.<\/li>\n<li><strong>Cross-sell suggestions on the cart<\/strong>, based on what is already in it, to grow the order before checkout.<\/li>\n<li><strong>Recently viewed products<\/strong>, so returning shoppers pick up where they left off.<\/li>\n<\/ul>\n\n<p>Unlike WooCommerce's built-in upsells and cross-sells, which you have to pick by hand for every product, Pair generates recommendations for you and keeps them relevant as your catalog and sales change. You choose how products are picked with a simple strategy setting, and the grid is rendered with your theme's own product-card markup, so it matches the rest of your shop with no extra front-end JavaScript and no layout shift.<\/p>\n\n<h4>Recommendation strategies<\/h4>\n\n<p>For each block you pick how products are chosen:<\/p>\n\n<ul>\n<li><strong>Same category (by popularity)<\/strong> - the default; other products from the same categories, ordered by total sales.<\/li>\n<li><strong>Shared tags<\/strong> - products that share the item's tags.<\/li>\n<li><strong>Best sellers<\/strong> - your top sellers, optionally within the same categories.<\/li>\n<li><strong>Newest products<\/strong> - your most recent additions.<\/li>\n<li><strong>Recently viewed by the shopper<\/strong> - the products this visitor looked at.<\/li>\n<\/ul>\n\n<p>Every strategy falls back to recent products, so a block is never awkwardly empty.<\/p>\n\n<h4>Built to be fast and friendly<\/h4>\n\n<ul>\n<li>Rendered with the active theme's product cards, so it looks native.<\/li>\n<li>No front-end JavaScript; recently viewed is stored in a first-party cookie (product IDs only, nothing sent anywhere).<\/li>\n<li>Queries are bounded by the number of products you choose.<\/li>\n<li>A clean, sectioned settings screen with inline help.<\/li>\n<li>Fully translatable, accessible headings and labels.<\/li>\n<\/ul>\n\n<h4>Documentation and links<\/h4>\n\n<ul>\n<li><strong>Documentation<\/strong>: <a href=\"https:\/\/plogins.com\/plogins-pair\/docs\/\">plogins.com\/plogins-pair\/docs\/<\/a><\/li>\n<li><strong>Plugin page<\/strong>: <a href=\"https:\/\/plogins.com\/plogins-pair\/\">plogins.com\/plogins-pair\/<\/a><\/li>\n<li><strong>Source code<\/strong>: <a href=\"https:\/\/github.com\/wppoland\/plogins-pair\">github.com\/wppoland\/plogins-pair<\/a><\/li>\n<li><strong>Bug reports and feature requests<\/strong>: <a href=\"https:\/\/github.com\/wppoland\/plogins-pair\/issues\">github.com\/wppoland\/plogins-pair\/issues<\/a><\/li>\n<\/ul>\n\n<h4>Features<\/h4>\n\n<ul>\n<li>Automatic \"You may also like\" block after the single product summary.<\/li>\n<li>Automatic cross-sell suggestions under the cart, based on its contents.<\/li>\n<li>Recently viewed products block, on product pages and\/or the cart.<\/li>\n<li>Five selectable strategies per block (category, tags, best sellers, newest, recently viewed) with a recent-products fallback.<\/li>\n<li>Configurable number of products (1 to 12) and columns (1 to 6).<\/li>\n<li>Optional \"in stock only\" filter.<\/li>\n<li>Editable headings for every block.<\/li>\n<li>[pair_recommendations] and [pair_recently_viewed] shortcodes to place blocks anywhere, plus matching Elementor widgets when Elementor is active.<\/li>\n<li>Theme-styled product cards, no custom front-end JavaScript, no layout shift.<\/li>\n<\/ul>\n\n<h4>Shortcodes<\/h4>\n\n<ul>\n<li><code>[pair_recommendations strategy=\"related\" count=\"4\" columns=\"4\"]<\/code> - a recommendation block. On a product page it uses that product; elsewhere it uses the cart. <code>strategy<\/code> is optional (related, tags, bestsellers, newest, recently).<\/li>\n<li><code>[pair_recently_viewed count=\"4\" columns=\"4\"]<\/code> - the shopper's recently viewed products.<\/li>\n<\/ul>\n\n<h3>Plogins Pair PRO<\/h3>\n\n<p>The free plugin is complete for what it does: automatic recommendations from your\ncatalog, on the product page and the cart, with no curation and nothing\ntime-limited. <strong>Plogins Pair PRO<\/strong> is a separate add-on for stores that want\nrecommendations driven by what people actually bought together, and want to\nmeasure what the blocks earn.<\/p>\n\n<pre><code>                                            Free   PRO\n------------------------------------------------------\n\"You may also like\" on the product page      yes   yes\nCross-sell under the classic cart            yes   yes\nRecently viewed block                        yes   yes\nFive strategies, chosen per block            yes   yes\nShortcodes and Elementor widgets             yes   yes\nFrequently bought together, from orders        -   yes\nAdd all to cart in one button                  -   yes\nHand-pick what a product recommends            -   yes\nRules per product category                     -   yes\nBundle discount applied to the cart            -   yes\nBlocks on order-received and checkout          -   yes\nEditor block                                   -   yes\nA\/B test two strategies against each other     -   yes\nClick and conversion analytics                 -   yes\n<\/code><\/pre>\n\n<p><strong>What PRO adds.<\/strong> Frequently bought together, computed from your own completed\norders rather than from the catalog, with a single \"add all to cart\" button and\nan optional bundle discount applied as a cart fee. A per-product picker for the\ncases where the automatic choice is wrong, and rules per product category.\nPlacements on the order-received page and the classic checkout. A block for the\neditor. An A\/B test that splits visitors between two strategies. Click and\nconversion analytics, so the blocks stop being a guess. From 29 EUR per year.<\/p>\n\n<p>Pair PRO requires the free plugin and does not replace it. If the free plugin is\nmissing or disabled, PRO stays dormant and says so, rather than half-working.<\/p>\n\n<ul>\n<li><strong>Plogins Pair PRO<\/strong> - <a href=\"https:\/\/plogins.com\/plogins-pair-pro\/\">plogins.com\/plogins-pair-pro\/<\/a><\/li>\n<li><strong>Pricing<\/strong> - <a href=\"https:\/\/plogins.com\/plogins-pair-pro\/pricing\/\">plogins.com\/plogins-pair-pro\/pricing\/<\/a><\/li>\n<\/ul>\n\n<h3>External Services<\/h3>\n\n<p>This plugin does not connect to any external services. Recommendations are computed on your own site from your WooCommerce catalog, and recently viewed products are stored only in a first-party cookie on the visitor's device.<\/p>\n\n<h3>Translations<\/h3>\n\n<p>Plogins Pair is fully translatable and ships the <code>plogins-pair.pot<\/code> template. Translations are delivered by WordPress.org language packs from translate.wordpress.org, which is where Polish, German and Spanish are being contributed; the package itself carries no compiled translation files.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Install and activate WooCommerce.<\/li>\n<li>Install Plogins Pair and activate it.<\/li>\n<li>Open WooCommerce -&gt; Pair recommendations. Sensible defaults are set on activation; turn blocks on or off, pick a strategy, and set headings.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20this%20require%20woocommerce%3F\"><h3>Does this require WooCommerce?<\/h3><\/dt>\n<dd><p>Yes. The plugin works with WooCommerce products and shows nothing until WooCommerce is active.<\/p><\/dd>\n<dt id=\"how%20are%20recommendations%20chosen%3F\"><h3>How are recommendations chosen?<\/h3><\/dt>\n<dd><p>You pick a strategy per block: same category by popularity (default), shared tags, best sellers, newest, or the shopper's recently viewed products. If there are not enough matches, the block is topped up with recent products so it is never empty.<\/p><\/dd>\n<dt id=\"is%20this%20different%20from%20woocommerce%20upsells%20and%20cross-sells%3F\"><h3>Is this different from WooCommerce upsells and cross-sells?<\/h3><\/dt>\n<dd><p>Yes. WooCommerce upsells and cross-sells are chosen manually for each product. Pair generates recommendations automatically from your catalog, so you do not have to curate them product by product.<\/p><\/dd>\n<dt id=\"how%20does%20%22recently%20viewed%22%20work%2C%20and%20is%20it%20gdpr%20friendly%3F\"><h3>How does \"recently viewed\" work, and is it GDPR friendly?<\/h3><\/dt>\n<dd><p>When a visitor opens a product, Pair stores that product's ID in a first-party cookie on their own device. It keeps only product IDs, holds no personal data, and never sends anything to an external service. The block simply shows those products again.<\/p><\/dd>\n<dt id=\"will%20it%20slow%20down%20my%20store%20or%20shift%20the%20layout%3F\"><h3>Will it slow down my store or shift the layout?<\/h3><\/dt>\n<dd><p>No. Blocks render with your theme's product-card markup and a small stylesheet, with no front-end JavaScript. Queries are bounded by your chosen product count.<\/p><\/dd>\n<dt id=\"can%20i%20control%20where%20the%20blocks%20appear%3F\"><h3>Can I control where the blocks appear?<\/h3><\/dt>\n<dd><p>Yes. Turn the product-page, cart and recently-viewed blocks on or off independently, and use the shortcodes to place a block anywhere.<\/p><\/dd>\n<dt id=\"does%20the%20cart%20block%20work%20with%20the%20woocommerce%20cart%20block%3F\"><h3>Does the cart block work with the WooCommerce Cart block?<\/h3><\/dt>\n<dd><p>Not automatically. The cart placements attach to the classic cart template, which the WooCommerce Cart block does not use. If your cart page is built with the Cart block, the settings screen says so and you can add <code>[pair_recommendations]<\/code> or <code>[pair_recently_viewed]<\/code> to that page in a shortcode block instead. The product-page block is unaffected.<\/p><\/dd>\n<dt id=\"does%20this%20plugin%20work%20on%20wordpress%20multisite%3F\"><h3>Does this plugin work on WordPress Multisite?<\/h3><\/dt>\n<dd><p>Yes. This plugin is compatible with WordPress Multisite. Network activate it or activate it on individual sites; each site keeps its own settings and data.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.1.1<\/h4>\n\n<ul>\n<li>Added a \"Plogins Pair PRO\" section to this page, with a free-versus-PRO grid. Every row was checked against the add-on's source, not its marketing copy.<\/li>\n<li>The WordPress.org banner was redrawn. The old one was laid out taller than the 772x250 canvas it is cropped to, so the second feature line and the screenshot were sliced off at the edges.<\/li>\n<\/ul>\n\n<h4>1.1.0<\/h4>\n\n<ul>\n<li>Added: Elementor widgets for the recommendations block and the recently-viewed row, so both can be placed anywhere in an Elementor layout instead of only at their hooked positions. Elementor is optional; nothing loads without it.<\/li>\n<li>Added: the <code>pair\/recommendations<\/code> filter, so an add-on can curate or reorder the picks before they render.<\/li>\n<\/ul>\n\n<h4>1.0.9<\/h4>\n\n<ul>\n<li>Plugin Check: stop passing <code>exclude<\/code> into <code>wc_get_products()<\/code>. Seed and cart products are still omitted; they are dropped after the query instead.<\/li>\n<\/ul>\n\n<h4>1.0.8<\/h4>\n\n<ul>\n<li>Tested against WordPress 7.1. Verified by activating this build on a clean 7.1 install with WooCommerce 11.1, not by editing the header.<\/li>\n<\/ul>\n\n<h4>1.0.7<\/h4>\n\n<ul>\n<li>Fixed the PRO promo on the settings screen quoting a price in PLN. PRO is priced and charged in EUR, so an admin on a Polish site was shown a zloty amount and then billed in euro, and the zloty figure was a fixed conversion that drifted from the real charge as the rate moved. The promo now shows the euro price that is actually taken.<\/li>\n<\/ul>\n\n<h4>1.0.6<\/h4>\n\n<ul>\n<li>The settings screen now tells you when your cart page is built with the WooCommerce Cart block. The cart cross-sell and recently viewed placements need the classic cart, so instead of ticking a box and getting nothing on the front end, you see a note with the shortcode that does work on a block cart page.<\/li>\n<\/ul>\n\n<h4>1.0.5<\/h4>\n\n<ul>\n<li>The PRO notice in the admin now lists what Pair PRO actually ships. It had been stuck on the first four features while PRO grew to nine, so it never mentioned the bundle discount, manual curation, category rules, A\/B testing or the analytics screen.<\/li>\n<\/ul>\n\n<h4>1.0.3<\/h4>\n\n<ul>\n<li>Translations: completed Polish, German and Spanish for the PRO upgrade panel.<\/li>\n<\/ul>\n\n<h4>1.0.2<\/h4>\n\n<ul>\n<li>Added bundled Polish, German and Spanish translations for the plugin interface.<\/li>\n<\/ul>\n\n<h4>1.0.1<\/h4>\n\n<ul>\n<li>First stable release.<\/li>\n<\/ul>\n\n<h4>0.1.0<\/h4>\n\n<ul>\n<li>Initial release: automatic product-page, cart and recently-viewed blocks; five selectable strategies with a recent-products fallback; configurable count, columns, headings and in-stock filter; [pair_recommendations] and [pair_recently_viewed] shortcodes; sectioned settings screen with inline help.<\/li>\n<\/ul>","raw_excerpt":"Automatic WooCommerce product recommendations: &quot;You may also like&quot;, cart cross-sells and recently viewed. No manual setup, no layout shift.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/364594","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=364594"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/motylanogha"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=364594"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=364594"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=364594"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=364594"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=364594"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=364594"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}