{"id":328201,"date":"2026-07-05T15:45:11","date_gmt":"2026-07-05T15:45:11","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/pat-product-tabs-for-woocommerce\/"},"modified":"2026-07-05T15:44:58","modified_gmt":"2026-07-05T15:44:58","slug":"pat-tab-studio-for-woocommerce","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/pat-tab-studio-for-woocommerce\/","author":9612061,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.2.1","stable_tag":"1.2.1","tested":"7.0","requires":"6.0","requires_php":"7.4","requires_plugins":null,"header_name":"PAT Tab Studio for WooCommerce","header_author":"Price Action Tools","header_description":"Add per-product custom tabs to WooCommerce with WYSIWYG content, ordering, and enable controls.","assets_banners_color":"aba5b6","last_updated":"2026-07-05 15:44:58","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/wordpress.org\/plugins\/pat-tab-studio-for-woocommerce\/","header_author_uri":"https:\/\/profiles.wordpress.org\/laith3\/","rating":0,"author_block_rating":0,"active_installs":0,"downloads":20,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","changelog"],"tags":{"1.2.1":{"tag":"1.2.1","author":"laith3","date":"2026-07-05 15:44:58"}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3596914,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3596914,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3596896,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3596896,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.2.1"],"block_files":[],"assets_screenshots":[],"screenshots":[]},"plugin_section":[],"plugin_tags":[48608,24101,16285,286],"plugin_category":[45],"plugin_contributors":[96323],"plugin_business_model":[],"class_list":["post-328201","plugin","type-plugin","status-publish","hentry","plugin_tags-per-product","plugin_tags-product-page","plugin_tags-product-tabs","plugin_tags-woocommerce","plugin_category-ecommerce","plugin_contributors-laith3","plugin_committers-laith3"],"banners":{"banner":"https:\/\/ps.w.org\/pat-tab-studio-for-woocommerce\/assets\/banner-772x250.png?rev=3596896","banner_2x":"https:\/\/ps.w.org\/pat-tab-studio-for-woocommerce\/assets\/banner-1544x500.png?rev=3596896","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/pat-tab-studio-for-woocommerce\/assets\/icon-128x128.png?rev=3596914","icon_2x":"https:\/\/ps.w.org\/pat-tab-studio-for-woocommerce\/assets\/icon-256x256.png?rev=3596914","generated":false},"screenshots":[],"raw_content":"<!--section=description-->\n<p>Add per-product custom tabs to WooCommerce with WYSIWYG content, ordering, and enable controls.<\/p>\n\n<p>Each product can define its own tab labels, tab content, order, and enabled state. The admin UI uses a repeater so you only add the tabs you want for that product. The plugin stores tab data in product post meta and renders only the tabs that contain content for that specific product.<\/p>\n\n<p>This is intentionally not a global tab plugin and does not assign tabs by category.<\/p>\n\n<h3>Usage<\/h3>\n\n<ol>\n<li>Open a WooCommerce product for editing.<\/li>\n<li>Click <code>Add Tab<\/code> for each tab you want to create.<\/li>\n<li>Enable the row.<\/li>\n<li>Enter the tab label.<\/li>\n<li>Enter rich WYSIWYG content, shortcodes, or embed HTML.<\/li>\n<li>Drag rows to sort them, or set the order number manually.<\/li>\n<li>Update the product.<\/li>\n<\/ol>\n\n<p>Tabs only appear on the frontend when they are enabled and have content.<\/p>\n\n<h3>Example<\/h3>\n\n<p>To add a product-specific <code>FAQ<\/code> tab:\n1. Edit the product.\n2. Click <code>Add Tab<\/code>.\n3. Change the label to <code>FAQ<\/code> or <code>Common Questions<\/code> if desired.\n4. Add your FAQ content.\n5. Set the order number to <code>90<\/code> or another value you prefer.<\/p>\n\n<h3>Extending<\/h3>\n\n<p>Developers can extend the repeater behavior with filters such as:<\/p>\n\n<ul>\n<li><code>pat_product_tabs_loaded_rows<\/code><\/li>\n<li><code>pat_product_tabs_sanitized_rows<\/code><\/li>\n<li><code>pat_product_tabs_frontend_tabs<\/code><\/li>\n<\/ul>\n\n<p>Example:<\/p>\n\n<pre><code>`php\n<\/code><\/pre>\n\n<p>add_filter('pat_product_tabs_frontend_tabs', function ($tabs, $product_id) {\n    $tabs['pat_product_tab_custom_note'] = [\n        'title' =&gt; 'Custom Note',\n        'priority' =&gt; 5,\n        'callback' =&gt; function () {\n            echo '<\/p>\n\n<p>Injected from a custom filter.<\/p>\n\n<p>';\n        },\n        'content' =&gt; '<\/p>\n\n<p>Injected from a custom filter.<\/p>\n\n<p>',\n    ];<\/p>\n\n<pre><code>return $tabs;\n<\/code><\/pre>\n\n<p>}, 10, 2);\n    `<\/p>\n\n<p>The stored product meta key is <code>_pat_product_tabs<\/code>.<\/p>\n\n<h3>Notes<\/h3>\n\n<ul>\n<li>If WooCommerce is inactive, the plugin degrades gracefully and shows an admin notice.<\/li>\n<li>Standard WooCommerce tabs remain available when no custom tabs are configured.<\/li>\n<li>Content uses a WYSIWYG editor, so HTML and shortcode-based layouts are supported.<\/li>\n<li>Video content can be provided as an embed URL, shortcode, or iframe embed.<\/li>\n<li>This package is prepared for the WordPress.org free plugin directory.<\/li>\n<\/ul>\n\n<!--section=installation-->\n<ol>\n<li>Copy the <code>pat-tab-studio-for-woocommerce<\/code> folder into <code>wp-content\/plugins\/<\/code>.<\/li>\n<li>Activate the plugin in WordPress.<\/li>\n<li>Make sure WooCommerce is active.<\/li>\n<li>Edit any product and open the <code>Product Tabs<\/code> metabox.<\/li>\n<\/ol>\n\n<!--section=changelog-->\n<h4>1.2.1<\/h4>\n\n<ul>\n<li>WYSIWYG editor initialization fix.<\/li>\n<li>Drag-and-drop fallback move buttons.<\/li>\n<\/ul>\n\n<h4>1.1.0<\/h4>\n\n<ul>\n<li>WYSIWYG editor for tab content.<\/li>\n<li>Drag-and-drop sorting for repeater rows.<\/li>\n<\/ul>","raw_excerpt":"Per-product WooCommerce tabs with WYSIWYG content, ordering, and enable controls.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/328201","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=328201"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/laith3"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=328201"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=328201"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=328201"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=328201"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=328201"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=328201"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}