{"id":376927,"date":"2026-10-08T14:52:49","date_gmt":"2026-10-08T14:52:49","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/mrseokar-inline-related-products-for-woocommerce\/"},"modified":"2026-10-08T16:28:20","modified_gmt":"2026-10-08T16:28:20","slug":"mrseokar-inline-products","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/mrseokar-inline-products\/","author":13607423,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"2.1.0","stable_tag":"2.1.0","tested":"7.1.3","requires":"5.2","requires_php":"7.2","requires_plugins":null,"header_name":"MrSeokar Inline Related Products for WooCommerce","header_author":"Ebrahim Hanafi (MrSeokar)","header_description":"Show related WooCommerce products inside your blog posts automatically, between headings, paragraphs or images. Ideal for online stores and affiliate sites.","assets_banners_color":"8b976c","last_updated":"2026-10-08 16:28:20","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/ehm.ir\/inline-products-in-blog\/","header_author_uri":"https:\/\/ehm.ir\/","rating":0,"author_block_rating":0,"active_installs":0,"downloads":80,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"2.0.1":{"tag":"2.0.1","author":"inmoon","date":"2026-10-08 15:06:11","revision":3734945},"2.1.0":{"tag":"2.1.0","author":"inmoon","date":"2026-10-08 16:28:20","revision":3735119}},"upgrade_notice":{"2.1.0":"<p>New exact category matching methods (by post title or by blog category) and a visual style picker.<\/p>","2.0.1":"<p>Major update: affiliate mode, zero-query cache, Elementor compatibility and many bug fixes. Settings are migrated automatically.<\/p>","2.0.0":"<p>Major update: affiliate mode, zero-query cache, Elementor compatibility and many bug fixes. Settings are migrated automatically.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3734945,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3734945,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3734945,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3734945,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["2.0.1","2.1.0"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3734945,"resolution":"1","location":"assets","locale":"","width":700,"height":1305},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3734945,"resolution":"2","location":"assets","locale":"","width":1100,"height":1080},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3735119,"resolution":"3","location":"assets","locale":"","width":1280,"height":1400},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3734945,"resolution":"4","location":"assets","locale":"","width":1000,"height":322}},"screenshots":{"1":"Related products shown inside a blog post.","2":"The four product box styles.","3":"Settings page with the explanation of each finding method.","4":"Choosing the products of a single post."}},"plugin_section":[],"plugin_tags":[369,285070,139790,6903,286],"plugin_category":[35,45],"plugin_contributors":[285071],"plugin_business_model":[],"class_list":["post-376927","plugin","type-plugin","status-publish","hentry","plugin_tags-affiliate","plugin_tags-inline-products","plugin_tags-product-recommendations","plugin_tags-related-products","plugin_tags-woocommerce","plugin_category-advertising","plugin_category-ecommerce","plugin_contributors-inmoon","plugin_committers-inmoon"],"banners":{"banner":"https:\/\/ps.w.org\/mrseokar-inline-products\/assets\/banner-772x250.png?rev=3734945","banner_2x":"https:\/\/ps.w.org\/mrseokar-inline-products\/assets\/banner-1544x500.png?rev=3734945","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/mrseokar-inline-products\/assets\/icon-128x128.png?rev=3734945","icon_2x":"https:\/\/ps.w.org\/mrseokar-inline-products\/assets\/icon-256x256.png?rev=3734945","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/mrseokar-inline-products\/assets\/screenshot-1.png?rev=3734945","caption":"Related products shown inside a blog post."},{"src":"https:\/\/ps.w.org\/mrseokar-inline-products\/assets\/screenshot-2.png?rev=3734945","caption":"The four product box styles."},{"src":"https:\/\/ps.w.org\/mrseokar-inline-products\/assets\/screenshot-3.png?rev=3735119","caption":"Settings page with the explanation of each finding method."},{"src":"https:\/\/ps.w.org\/mrseokar-inline-products\/assets\/screenshot-4.png?rev=3734945","caption":"Choosing the products of a single post."}],"raw_content":"<!--section=description-->\n<p>MrSeokar Inline Related Products for WooCommerce automatically shows <strong>related products inside your blog posts<\/strong>: between the headings, paragraphs or images of every article, exactly where readers are paying attention. No shortcodes, no snippets, no editing posts one by one.<\/p>\n\n<p>Activate the plugin, pick a style, and every post starts recommending matching products. Want full control over an important article? Choose its products by hand from the post editor.<\/p>\n\n<h4>Who is it for?<\/h4>\n\n<ul>\n<li><strong>Online stores with a blog<\/strong> \u2013 show your products right inside your articles.<\/li>\n<li><strong>Affiliate sites<\/strong> \u2013 list your affiliate offers as WooCommerce external\/affiliate products and show them automatically in every review, guide and comparison post. The buy button can go straight to the affiliate link with <code>rel=\"sponsored nofollow\"<\/code>.<\/li>\n<li><strong>Content sites<\/strong> \u2013 add product recommendations to existing articles without editing them.<\/li>\n<\/ul>\n\n<h4>Features<\/h4>\n\n<ul>\n<li><strong>Show related products in blog posts automatically<\/strong> \u2013 before every heading (H2 to H6), paragraph or image, or every other one.<\/li>\n<li><strong>Seven product matching methods<\/strong> \u2013 a product category named in the post title (checked from the first or the last word), a product category with the same name as the post's blog category (first or last match), product search with the title words (first or last words first) or with the Yoast SEO \/ Rank Math focus keyword. Every method is explained with an example on the settings page.<\/li>\n<li><strong>Works in any language<\/strong> \u2013 punctuation and small words (and, of, the, \u0648\u060c \u062f\u0631\u060c \u0628\u0647\u2026) are removed, letter case, half-spaces and Arabic\/Persian letter forms are ignored.<\/li>\n<li><strong>Per-post control from one simple box<\/strong> \u2013 search and pick products, choose a product category, or turn products off for a single post. No snippets needed, even with hundreds of posts.<\/li>\n<li><strong>Affiliate ready<\/strong> \u2013 external\/affiliate products link directly to the affiliate URL with the product's own button text.<\/li>\n<li><strong>Four responsive designs<\/strong> \u2013 vertical card, horizontal row, text over image, image beside details.<\/li>\n<li><strong>Simple, variable, grouped and external products<\/strong> \u2013 sale prices and price ranges use your WooCommerce currency and tax settings.<\/li>\n<li><strong>Fully customizable<\/strong> \u2013 button text, label text (\"You May Also Like\"), colors, product name tag, new-tab links.<\/li>\n<li><strong>Skips unavailable products<\/strong> \u2013 out-of-stock, hidden and zero-price products are not shown (optional).<\/li>\n<li><strong>Works with any theme and page builder<\/strong> \u2013 Elementor, Elementor Pro theme builder, the block editor (Gutenberg), Classic Editor, WPBakery, Divi, Beaver Builder, Bricks, Oxygen and block themes. Your article markup is read with the WordPress HTML API and never rebuilt.<\/li>\n<li><strong>Built for speed<\/strong> \u2013 the product boxes of each post are cached with the post, so after the first view the plugin adds <strong>zero database queries<\/strong>. The cache clears itself when products, prices, stock or settings change, and a \"Clear cache\" button is included.<\/li>\n<li><strong>SEO friendly<\/strong> \u2013 product names use a paragraph tag by default, so they never pollute your heading structure or table of contents.<\/li>\n<li><strong>RTL and multilingual<\/strong> \u2013 works in left-to-right and right-to-left languages; English and Persian included, translation ready.<\/li>\n<li><strong>Lightweight and private<\/strong> \u2013 no tracking, no external requests, no ads in your dashboard.<\/li>\n<\/ul>\n\n<h4>How related products are found<\/h4>\n\n<ol>\n<li>Products or a product category chosen in the post's <strong>Inline Products<\/strong> box always come first.<\/li>\n<li>Otherwise the method selected in the settings is used:\n\n<ul>\n<li><strong>Category named in the post title (from the first \/ last word)<\/strong> \u2013 the title is split into words, punctuation and small words are removed. Single words are compared with your product category names first, then pairs of neighbouring words, then groups of three; the first exact match wins. Example: \"Barbecue types compared: gas, charcoal, brick and electric\" \u2192 from the first word, the \"Barbecue\" category is used; from the last word, \"Charcoal\" (if it exists) is found first.<\/li>\n<li><strong>Blog category of the post (first \/ last match)<\/strong> \u2013 the title is not used. The post's blog categories are compared with your product category names; the first (or last) exact match wins, then their parent categories are checked.<\/li>\n<li><strong>Product search with the title words (first \/ last words first)<\/strong> \u2013 each title word is searched in product names and descriptions; categories are not used.<\/li>\n<li><strong>Product search with the focus keyword<\/strong> \u2013 the Yoast SEO or Rank Math focus keyword is searched.<\/li>\n<\/ul><\/li>\n<li>If the method finds nothing, the <strong>When nothing is found<\/strong> setting either searches product names with the title words or shows no products.<\/li>\n<li>Out-of-stock, hidden and zero-price products are skipped (unless you allow them).<\/li>\n<\/ol>\n\n<h4>Pro version (coming soon)<\/h4>\n\n<p>A separate Pro add-on is planned with: product order (cheapest, most expensive, best selling, most popular, most reviewed, most relevant), grid and slider layouts, AJAX add to cart, ratings and discount badges, shortcode and block, rules per blog category, global exclusions and click statistics. This free plugin is complete on its own and contains none of these features; they are only listed on the settings page for information.<\/p>\n\n<h4>Privacy<\/h4>\n\n<p>This plugin does not collect any data, does not set cookies and does not connect to any external service.<\/p>\n\n<h4>For developers<\/h4>\n\n<p>Filters: <code>mrseokar_ip_should_insert<\/code>, <code>mrseokar_ip_post_types<\/code>, <code>mrseokar_ip_product_ids<\/code>, <code>mrseokar_ip_keywords<\/code>, <code>mrseokar_ip_focus_keyword<\/code>, <code>mrseokar_ip_product_html<\/code>, <code>mrseokar_ip_cache_ttl<\/code>, <code>mrseokar_ip_content_priority<\/code>.<\/p>\n\n<p>Example \u2013 never show products in the \"news\" category:<\/p>\n\n<pre><code>add_filter( 'mrseokar_ip_should_insert', function ( $insert, $post_id ) { return has_category( 'news', $post_id ) ? false : $insert; }, 10, 2 );\n<\/code><\/pre>\n\n<h4>Author<\/h4>\n\n<p>Made by <a href=\"https:\/\/ehm.ir\/\">Ebrahim Hanafi (MrSeokar)<\/a>. Documentation: <a href=\"https:\/\/ehm.ir\/inline-products-in-blog\/\">Inline products in blog posts<\/a>.<\/p>\n\n<p>WooCommerce is a trademark of Automattic Inc. This plugin is not affiliated with or endorsed by Automattic.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Make sure WooCommerce is installed and active.<\/li>\n<li>Go to <strong>Plugins \u2192 Add New<\/strong>, search for \"MrSeokar Inline Related Products\", then install and activate it.<\/li>\n<li>Go to <strong>WooCommerce \u2192 Inline Products<\/strong>, choose where products appear and how they look, and save.<\/li>\n<li>Open any blog post \u2013 related products are already shown inside the content.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"how%20do%20i%20show%20related%20products%20in%20a%20wordpress%20blog%20post%3F\"><h3>How do I show related products in a WordPress blog post?<\/h3><\/dt>\n<dd><p>Install the plugin and activate it. Related WooCommerce products are added inside every blog post automatically, before the headings of the article by default. You can change the position, the number of products and the design in <strong>WooCommerce \u2192 Inline Products<\/strong>.<\/p><\/dd>\n<dt id=\"can%20i%20use%20it%20for%20an%20affiliate%20site%3F\"><h3>Can I use it for an affiliate site?<\/h3><\/dt>\n<dd><p>Yes. Add your offers as WooCommerce \"External\/Affiliate\" products. They are shown inside your articles like any other product, and the buy button can go straight to the affiliate link with <code>rel=\"sponsored nofollow\"<\/code>.<\/p><\/dd>\n<dt id=\"can%20i%20choose%20the%20products%20of%20a%20single%20post%3F\"><h3>Can I choose the products of a single post?<\/h3><\/dt>\n<dd><p>Yes. Edit the post and use the <strong>Inline Products<\/strong> box under the editor: search and pick products, choose a product category, or tick <strong>Do not show products in this post<\/strong>. There is no need to create snippets or shortcodes for each post.<\/p><\/dd>\n<dt id=\"does%20it%20work%20with%20elementor%3F\"><h3>Does it work with Elementor?<\/h3><\/dt>\n<dd><p>Yes. It works with posts built with Elementor and with single post templates made in Elementor Pro's theme builder (Post Content widget). Products are not added inside the Elementor editor, only on the live page.<\/p><\/dd>\n<dt id=\"does%20it%20slow%20down%20my%20site%3F\"><h3>Does it slow down my site?<\/h3><\/dt>\n<dd><p>No. Related products are searched only on the first view of a post. The finished boxes are stored with the post and reused without any extra database query until something changes (a product, its price or stock, a category, the post or the plugin settings) or the cache time you chose passes.<\/p><\/dd>\n<dt id=\"no%20products%20appear%20in%20my%20post.%20why%3F\"><h3>No products appear in my post. Why?<\/h3><\/dt>\n<dd><ul>\n<li>The post type is selected in <strong>Show products in<\/strong> (Posts by default).<\/li>\n<li>The article contains the tag chosen in <strong>Insert products before<\/strong> (for example Heading 2). If your sections use Heading 3, choose Heading 3.<\/li>\n<li>Matching products exist. If the title words match no product, choose products or a category in the post's <strong>Inline Products<\/strong> box.<\/li>\n<li>The products are in stock and have a price, or <strong>Out-of-stock products<\/strong> is enabled.<\/li>\n<li>You just changed products outside WooCommerce: click <strong>Clear cache<\/strong>.<\/li>\n<\/ul><\/dd>\n<dt id=\"does%20it%20change%20my%20posts%3F\"><h3>Does it change my posts?<\/h3><\/dt>\n<dd><p>No. Nothing is written into your post content. Products are added only when a post is displayed, so deactivating the plugin removes them everywhere.<\/p><\/dd>\n<dt id=\"products%20appear%20in%20my%20table%20of%20contents.\"><h3>Products appear in my table of contents.<\/h3><\/dt>\n<dd><p>Set <strong>HTML tag of the product name<\/strong> to \"p\" (the default). Heading tags make product names part of the article outline.<\/p><\/dd>\n<dt id=\"is%20it%20compatible%20with%20caching%20and%20seo%20plugins%3F\"><h3>Is it compatible with caching and SEO plugins?<\/h3><\/dt>\n<dd><p>Yes. The output is normal HTML that page caches store like the rest of the article, and it works alongside Yoast SEO, Rank Math and table-of-contents plugins.<\/p><\/dd>\n<dt id=\"where%20can%20i%20get%20help%3F\"><h3>Where can I get help?<\/h3><\/dt>\n<dd><p>Use the support forum of the plugin on WordPress.org or visit <a href=\"https:\/\/ehm.ir\/\">ehm.ir<\/a>.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>2.1.0<\/h4>\n\n<ul>\n<li>New: \"Category named in the post title\" methods \u2013 single words, then pairs, then groups of three, from the first or the last word, with exact name matching.<\/li>\n<li>New: \"Blog category of the post\" methods \u2013 use the product category that has the same name as the post's blog category (first or last match, parent categories as fallback).<\/li>\n<li>New: \"When nothing is found\" setting.<\/li>\n<li>New: visual style picker with a preview of every style.<\/li>\n<li>New: explanation and example for every finding method on the settings page.<\/li>\n<li>Improved: titles and category names are compared in any language (punctuation, small words, letter case, half-spaces and Arabic\/Persian letter forms are ignored).<\/li>\n<li>The old \"Smart\" method now uses the new \"Category named in the post title \u2013 from the first word\" method.<\/li>\n<\/ul>\n\n<h4>2.0.1<\/h4>\n\n<ul>\n<li>Main plugin file renamed to mrseokar-inline-products.php (sites updating from 1.x are switched automatically).<\/li>\n<li>Readme clarified.<\/li>\n<\/ul>\n\n<h4>2.0.0<\/h4>\n\n<ul>\n<li>Renamed to \"MrSeokar Inline Related Products for WooCommerce\" and prepared for WordPress.org.<\/li>\n<li>New: affiliate mode \u2013 external products link straight to the affiliate URL (rel=\"sponsored nofollow\").<\/li>\n<li>New: per-post cache of the product boxes with automatic invalidation and a \"Clear cache\" button: no extra database queries after the first view.<\/li>\n<li>New: the content is read with the WordPress HTML API (WordPress 6.2+), with a built-in fallback for older versions.<\/li>\n<li>New: choose products with WooCommerce's product search in the post editor.<\/li>\n<li>New: turn products off for a single post.<\/li>\n<li>New: choose the post types where products appear.<\/li>\n<li>New: open products in a new tab (optional).<\/li>\n<li>New: right-to-left and left-to-right layouts.<\/li>\n<li>New: compatible with WooCommerce High-Performance Order Storage.<\/li>\n<li>Fixed: fatal error on large pages, for example posts built with Elementor.<\/li>\n<li>Fixed: an empty post could be displayed when the content could not be processed.<\/li>\n<li>Fixed: fatal error with variable products.<\/li>\n<li>Fixed: fatal error when WooCommerce is not active.<\/li>\n<li>Fixed: products were inserted inside links, lists and tables.<\/li>\n<li>Fixed: products were added to related-post widgets and page-builder templates.<\/li>\n<li>Fixed: \"Every other\" position setting skipped half of the products.<\/li>\n<li>Fixed: hiding out-of-stock products did not work.<\/li>\n<li>Fixed: the regular price was shown crossed out even when the product was not on sale.<\/li>\n<li>Fixed: color picker not loading.<\/li>\n<li>Improved: all settings stored in one option; every input sanitized and every output escaped.<\/li>\n<li>Removed: the bundled HTML parser library, remote images and the dashboard-wide notice.<\/li>\n<li>Settings of version 1.x are migrated automatically.<\/li>\n<\/ul>\n\n<h4>1.2<\/h4>\n\n<ul>\n<li>Focus keyword and smart category detection methods.<\/li>\n<\/ul>","raw_excerpt":"Show related WooCommerce products inside your blog posts, between headings, paragraphs or images. For online stores and affiliate sites.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/376927","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=376927"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/inmoon"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=376927"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=376927"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=376927"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=376927"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=376927"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=376927"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}