{"id":287780,"date":"2026-03-16T11:25:18","date_gmt":"2026-03-16T11:25:18","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/og-pilot-dynamic-open-graph-images\/"},"modified":"2026-03-16T11:25:23","modified_gmt":"2026-03-16T11:25:23","slug":"og-pilot-dynamic-open-graph-images","status":"publish","type":"plugin","link":"https:\/\/ml.wordpress.org\/plugins\/og-pilot-dynamic-open-graph-images\/","author":23461292,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_crdt_document":"","version":"0.1.0","stable_tag":"0.1.0","tested":"6.9.4","requires":"6.5","requires_php":"8.0","requires_plugins":null,"header_name":"OG Pilot Dynamic Open Graph Images","header_author":"OG Pilot","header_description":"Generate dynamic Open Graph images and X\/Twitter cards for WordPress and WooCommerce with OAuth-powered OG Pilot templates and per-content overrides.","assets_banners_color":"faf3ee","last_updated":"2026-03-16 11:25:23","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/ogpilot.com\/wordpress-social-image","header_author_uri":"https:\/\/ogpilot.com","rating":0,"author_block_rating":0,"active_installs":0,"downloads":155,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"0.1.0":{"tag":"0.1.0","author":"raulonrails","date":"2026-03-16 11:25:23"}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon-128x128.gif":{"filename":"icon-128x128.gif","revision":3481052,"resolution":"128x128","location":"assets","locale":""},"icon-256x256.gif":{"filename":"icon-256x256.gif","revision":3481052,"resolution":"256x256","location":"assets","locale":""}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3481052,"resolution":"1544x500","location":"assets","locale":""},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3481052,"resolution":"772x250","location":"assets","locale":""}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["0.1.0"],"block_files":[],"assets_screenshots":[],"screenshots":[],"jetpack_post_was_ever_published":false},"plugin_section":[],"plugin_tags":[210422,186,257865,2992,286],"plugin_category":[45,55],"plugin_contributors":[257866],"plugin_business_model":[],"class_list":["post-287780","plugin","type-plugin","status-publish","hentry","plugin_tags-open-graph-images","plugin_tags-seo","plugin_tags-social-preview-images","plugin_tags-twitter-cards","plugin_tags-woocommerce","plugin_category-ecommerce","plugin_category-seo-and-marketing","plugin_contributors-raulonrails","plugin_committers-raulonrails"],"banners":{"banner":"https:\/\/ps.w.org\/og-pilot-dynamic-open-graph-images\/assets\/banner-772x250.png?rev=3481052","banner_2x":"https:\/\/ps.w.org\/og-pilot-dynamic-open-graph-images\/assets\/banner-1544x500.png?rev=3481052","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/og-pilot-dynamic-open-graph-images\/assets\/icon-128x128.gif?rev=3481052","icon_2x":"https:\/\/ps.w.org\/og-pilot-dynamic-open-graph-images\/assets\/icon-256x256.gif?rev=3481052","generated":false},"screenshots":[],"raw_content":"<!--section=description-->\n<p>OG Pilot Dynamic Open Graph Images helps you create branded social preview images for every URL on your site. Connect via OAuth, choose a template, and automatically generate Open Graph images for blog posts, landing pages, and WooCommerce products. Override per post when needed, output complete Open Graph + X\/Twitter meta tags, and keep existing images live even when generation is paused.<\/p>\n\n<p>Core capabilities:\n* 3-step setup wizard for faster onboarding after activation.\n* OAuth connection flow (PKCE) for secure account linking.\n* Site-wide defaults for template, title, description, logo URL, image URL, and colors.\n* Per-post\/page\/product overrides with dynamic placeholder support.\n* Rule-based template selection (post\/page\/product + taxonomy rules).\n* Outputs comprehensive Open Graph and X\/Twitter meta tags, including article-specific and WooCommerce product-specific fields.\n* Meta ownership mode to avoid duplicate tags with SEO plugins.\n* Live social preview UI in wp-admin (Facebook, LinkedIn, X\/Twitter).\n* Per-entry generated image preview in the editor sidebar.\n* Supports publicly available OG Pilot templates for WordPress: <code>page<\/code>, <code>blog_post<\/code>, <code>podcast<\/code>, <code>portfolio<\/code>, <code>book<\/code>, <code>event<\/code>, <code>product<\/code>, <code>company<\/code>, and <code>github<\/code>.\n* Optional auto-generation on content save.\n* Non-blocking background generation with processing fallback image + retry scheduling.\n* Optional cache busting toggle to force a daily image refresh cycle.\n* Bulk regenerate queue with in-admin progress updates.\n* One-click import of existing social fields from Yoast, Rank Math, and AIOSEO.\n* Diagnostics panel with endpoint health, token status, and latest API errors.\n* Role-aware UX: admins manage plugin settings; editors can override per-entry templates.\n* WooCommerce-aware placeholders (<code>{{product_price}}<\/code>, <code>{{product_short_description}}<\/code>, etc.).\n* Graceful subscription handling: when trial\/subscription is inactive, new image generation is paused while existing OG images keep working.<\/p>\n\n<p>Supported placeholders:\n* <code>{{post_title}}<\/code>\n* <code>{{excerpt}}<\/code>\n* <code>{{site_name}}<\/code>\n* <code>{{post_url}}<\/code>\n* <code>{{author_name}}<\/code>\n* <code>{{author_avatar_url}}<\/code>\n* <code>{{publish_date_iso}}<\/code>\n* <code>{{featured_image_url}}<\/code>\n* <code>{{product_price}}<\/code>\n* <code>{{product_short_description}}<\/code>\n* <code>{{episode_date}}<\/code>\n* <code>{{event_date}}<\/code>\n* <code>{{event_location}}<\/code>\n* <code>{{book_author}}<\/code>\n* <code>{{book_series_number}}<\/code>\n* <code>{{book_genre}}<\/code>\n* <code>{{company_logo_url}}<\/code>\n* <code>{{github_contributions}}<\/code><\/p>\n\n<p>Service details:\n* This plugin is a SaaS integration. OG image generation is provided by OG Pilot.\n* Terms of Service: https:\/\/ogpilot.com\/terms\n* Privacy Policy: https:\/\/ogpilot.com\/privacy<\/p>\n\n<p>No usage tracking is performed by this plugin beyond required OAuth and image-generation API calls.<\/p>\n\n<h3>External services<\/h3>\n\n<h4>OG Pilot API<\/h4>\n\n<p>This plugin connects to the OG Pilot API (https:\/\/ogpilot.com) to generate dynamic Open Graph images for your content.<\/p>\n\n<p><strong>What data is sent:<\/strong>\n* OAuth authorization data (account email, site URL) during the initial connection flow.\n* Image generation payloads containing template name and the fields you configured (e.g., post title, excerpt, author name, logo URL, colors) each time an image is generated or regenerated.\n* Token refresh requests to maintain the OAuth connection.<\/p>\n\n<p><strong>When data is sent:<\/strong>\n* When you connect your site to OG Pilot via OAuth.\n* When a post\/page\/product is saved with auto-generate enabled.\n* When you manually trigger image generation or force refresh.\n* When bulk regeneration is run.\n* When the plugin checks subscription status.<\/p>\n\n<p>This service is provided by OG Pilot: <a href=\"https:\/\/ogpilot.com\/terms\">Terms of Service<\/a> | <a href=\"https:\/\/ogpilot.com\/privacy\">Privacy Policy<\/a>.<\/p>\n\n<h4>Bunny Fonts<\/h4>\n\n<p>This plugin loads web fonts from Bunny Fonts (https:\/\/fonts.bunny.net) for the admin preview UI in the WordPress dashboard.<\/p>\n\n<p><strong>What data is sent:<\/strong>\n* Standard HTTP request data (IP address, user agent) is sent to the Bunny Fonts CDN when the admin settings\/preview page is loaded.<\/p>\n\n<p><strong>When data is sent:<\/strong>\n* When an admin user views the OG Pilot settings page or post editor metabox that includes the social image preview.<\/p>\n\n<p>No personal content or site data is transmitted to Bunny Fonts. Only standard browser request headers are sent to load font files.<\/p>\n\n<p>This service is provided by BunnyWay d.o.o.: <a href=\"https:\/\/bunny.net\/tos\">Terms of Service<\/a> | <a href=\"https:\/\/bunny.net\/privacy\">Privacy Policy<\/a>.<\/p>\n\n<h3>Dynamic OG Image Examples<\/h3>\n\n<p>The examples below mirror the payload style used in <code>og-pilot-plugins\/og_pilot_ruby\/README.md<\/code>, adapted to fields you set in this plugin.<\/p>\n\n<h4>Page<\/h4>\n\n<pre><code>{\n  \"template\": \"page\",\n  \"title\": \"Acme Robotics Product Updates\",\n  \"description\": \"See what shipped this week across the web app.\",\n  \"logo_url\": \"https:\/\/www.google.com\/s2\/favicons?sz=128&amp;domain_url=https%3A%2F%2Fwww.notion.so\",\n  \"image_url\": \"https:\/\/images.unsplash.com\/photo-1558655146-d09347e92766?w=1400&amp;q=80\",\n  \"bg_color\": \"#0B1220\",\n  \"text_color\": \"#F8FAFC\"\n}\n<\/code><\/pre>\n\n<h4>Blog Post<\/h4>\n\n<pre><code>{\n  \"template\": \"blog_post\",\n  \"title\": \"How Stripe Reduced Checkout Abandonment by 18%\",\n  \"logo_url\": \"https:\/\/www.google.com\/s2\/favicons?sz=128&amp;domain_url=https%3A%2F%2Fstripe.com\",\n  \"image_url\": \"https:\/\/images.unsplash.com\/photo-1460925895917-afdab827c52f?w=1400&amp;q=80\",\n  \"author_name\": \"Maya Patel\",\n  \"author_avatar_url\": \"https:\/\/api.dicebear.com\/7.x\/avataaars\/svg?seed=MayaPatel\",\n  \"publish_date\": \"2026-02-24\",\n  \"bg_color\": \"#0F172A\",\n  \"text_color\": \"#F8FAFC\"\n}\n<\/code><\/pre>\n\n<h4>Podcast<\/h4>\n\n<pre><code>{\n  \"template\": \"podcast\",\n  \"title\": \"Indie Hackers Podcast: Pricing Experiments That Worked\",\n  \"logo_url\": \"https:\/\/www.google.com\/s2\/favicons?sz=128&amp;domain_url=https%3A%2F%2Fwww.spotify.com\",\n  \"image_url\": \"https:\/\/images.unsplash.com\/photo-1478737270239-2f02b77fc618?w=1400&amp;q=80\",\n  \"episode_date\": \"2026-02-21\",\n  \"bg_color\": \"#18181B\",\n  \"text_color\": \"#FAFAFA\"\n}\n<\/code><\/pre>\n\n<h4>Product (WooCommerce-friendly)<\/h4>\n\n<pre><code>{\n  \"template\": \"product\",\n  \"title\": \"Allbirds Tree Dasher 3\",\n  \"logo_url\": \"https:\/\/www.google.com\/s2\/favicons?sz=128&amp;domain_url=https%3A%2F%2Fwww.allbirds.com\",\n  \"image_url\": \"https:\/\/images.unsplash.com\/photo-1542291026-7eec264c27ff?w=1400&amp;q=80\",\n  \"unique_selling_point\": \"Free shipping + 30-day returns\",\n  \"bg_color\": \"#F8FAFC\",\n  \"text_color\": \"#0F172A\"\n}\n<\/code><\/pre>\n\n<h4>Event<\/h4>\n\n<pre><code>{\n  \"template\": \"event\",\n  \"title\": \"Launch Week Berlin 2026\",\n  \"logo_url\": \"https:\/\/www.google.com\/s2\/favicons?sz=128&amp;domain_url=https%3A%2F%2Fwww.eventbrite.com\",\n  \"image_url\": \"https:\/\/images.unsplash.com\/photo-1540575467063-178a50c2df87?w=1400&amp;q=80\",\n  \"event_date\": \"2026-06-12\/2026-06-14\",\n  \"event_location\": \"Station Berlin\",\n  \"bg_color\": \"#1E1B4B\",\n  \"text_color\": \"#F5F3FF\"\n}\n<\/code><\/pre>\n\n<h4>Book<\/h4>\n\n<pre><code>{\n  \"template\": \"book\",\n  \"title\": \"Designing APIs for Humans\",\n  \"description\": \"A practical handbook for product-minded engineers.\",\n  \"logo_url\": \"https:\/\/www.google.com\/s2\/favicons?sz=128&amp;domain_url=https%3A%2F%2Fwww.oreilly.com\",\n  \"image_url\": \"https:\/\/images.unsplash.com\/photo-1512820790803-83ca734da794?w=1400&amp;q=80\",\n  \"book_author\": \"Alex Turner\",\n  \"book_series_number\": \"2\",\n  \"book_genre\": \"Technology\",\n  \"bg_color\": \"#172554\",\n  \"text_color\": \"#EFF6FF\"\n}\n<\/code><\/pre>\n\n<h4>Portfolio<\/h4>\n\n<pre><code>{\n  \"template\": \"portfolio\",\n  \"title\": \"Maya Chen \u2022 Product Designer\",\n  \"description\": \"Fintech UX, design systems, and prototyping.\",\n  \"logo_url\": \"https:\/\/api.dicebear.com\/7.x\/avataaars\/svg?seed=MayaChen&amp;size=64\",\n  \"image_url\": \"https:\/\/images.unsplash.com\/photo-1557672172-298e090bd0f1?w=1400&amp;q=80\",\n  \"bg_color\": \"#1F2937\",\n  \"text_color\": \"#F9FAFB\"\n}\n<\/code><\/pre>\n\n<h4>Company<\/h4>\n\n<pre><code>{\n  \"template\": \"company\",\n  \"title\": \"Notion\",\n  \"description\": \"4 job openings\",\n  \"logo_url\": \"https:\/\/www.google.com\/s2\/favicons?sz=128&amp;domain_url=https%3A%2F%2Fwww.notion.so\",\n  \"company_logo_url\": \"https:\/\/www.google.com\/s2\/favicons?sz=256&amp;domain_url=https%3A%2F%2Flinear.app\",\n  \"bg_color\": \"#111827\",\n  \"text_color\": \"#F9FAFB\"\n}\n<\/code><\/pre>\n\n<h4>GitHub Activity<\/h4>\n\n<pre><code>{\n  \"template\": \"github\",\n  \"title\": \"rails\/rails\",\n  \"description\": \"Recent merged PRs, reviews, and commit activity.\",\n  \"github_accent_color\": \"#22C55E\",\n  \"bg_color\": \"#0B1220\",\n  \"text_color\": \"#E5E7EB\",\n  \"github_contributions\": \"[{\\\"date\\\":\\\"2026-02-16\\\",\\\"count\\\":7},{\\\"date\\\":\\\"2026-02-20\\\",\\\"count\\\":12},{\\\"date\\\":\\\"2026-02-24\\\",\\\"count\\\":9}]\"\n}\n<\/code><\/pre>\n\n<p>For templates that support custom images, you can run both styles:\n* With custom image: set <code>image_url<\/code>.\n* Without custom image: leave <code>image_url<\/code> empty.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the plugin folder to <code>\/wp-content\/plugins\/<\/code> or install from the Plugins screen.<\/li>\n<li>Activate <strong>OG Pilot Dynamic Open Graph Images<\/strong>.<\/li>\n<li>Go to <strong>Settings \u2192 OG Pilot Open Graph Images<\/strong>.<\/li>\n<li>Run the <strong>Setup Wizard<\/strong> (recommended). After activation, admins are redirected there automatically.<\/li>\n<li>Configure template defaults, placeholder patterns, and optional template rules.<\/li>\n<li>Save settings and optionally enable auto-generate on save.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"do%20i%20need%20an%20og%20pilot%20account%3F\"><h3>Do I need an OG Pilot account?<\/h3><\/dt>\n<dd><p>You need an OG Pilot account for service usage, but you do not need to pre-register before installing the plugin.<br \/>\nWhen you click <strong>Connect with OG Pilot<\/strong>, OAuth can automatically create\/link your OG Pilot account using your site details.\nThe connect form pre-fills your current admin email, and you can edit it before starting OAuth.<\/p><\/dd>\n<dt id=\"which%20post%20types%20are%20supported%3F\"><h3>Which post types are supported?<\/h3><\/dt>\n<dd><p>By default: <code>post<\/code> and <code>page<\/code>. If WooCommerce is active, <code>product<\/code> is also available.<\/p><\/dd>\n<dt id=\"can%20i%20set%20site-wide%20defaults%20and%20then%20override%20per%20entry%3F\"><h3>Can I set site-wide defaults and then override per entry?<\/h3><\/dt>\n<dd><p>Yes. Set defaults in plugin settings, then use the <strong>OG Pilot Social Image<\/strong> meta box on each post\/page\/product for per-content overrides.<\/p><\/dd>\n<dt id=\"is%20there%20a%20guided%20onboarding%20flow%3F\"><h3>Is there a guided onboarding flow?<\/h3><\/dt>\n<dd><p>Yes. A 3-step setup wizard helps you connect OAuth, choose a default template, and select supported content types.<\/p><\/dd>\n<dt id=\"which%20templates%20are%20available%20in%20the%20plugin%3F\"><h3>Which templates are available in the plugin?<\/h3><\/dt>\n<dd><p>page, <code>blog_post<\/code>, <code>podcast<\/code>, <code>portfolio<\/code>, <code>book<\/code>, <code>event<\/code>, <code>product<\/code>, <code>company<\/code>, and <code>github<\/code>.<\/p><\/dd>\n<dt id=\"can%20i%20assign%20templates%20automatically%20by%20post%20type%20or%20taxonomy%3F\"><h3>Can I assign templates automatically by post type or taxonomy?<\/h3><\/dt>\n<dd><p>Yes. You can define rule-based template defaults for post\/page\/product and optional mappings for category\/tag\/product_type slugs.<\/p><\/dd>\n<dt id=\"how%20does%20image%20generation%20get%20triggered%3F\"><h3>How does image generation get triggered?<\/h3><\/dt>\n<dd><p>Two ways:\n* Auto-generation on save (if enabled and subscription is active).\n* Background generation queue when the stored OG image is missing\/outdated.<\/p><\/dd>\n<dt id=\"will%20page%20loads%20block%20while%20og%20pilot%20generates%20images%3F\"><h3>Will page loads block while OG Pilot generates images?<\/h3><\/dt>\n<dd><p>No. The plugin queues generation in the background and returns a temporary processing image until the final image is ready.<\/p><\/dd>\n<dt id=\"how%20long%20does%20generation%20take%3F\"><h3>How long does generation take?<\/h3><\/dt>\n<dd><p>Most images are ready within 5-10 minutes, depending on queue load and site traffic that triggers WP-Cron.<\/p><\/dd>\n<dt id=\"can%20i%20regenerate%20all%20images%20after%20changing%20defaults%3F\"><h3>Can I regenerate all images after changing defaults?<\/h3><\/dt>\n<dd><p>Yes. Use <strong>Bulk Regenerate Queue<\/strong> in settings to regenerate all supported content with progress feedback.<\/p><\/dd>\n<dt id=\"can%20i%20import%20existing%20seo%2Fopen%20graph%20fields%3F\"><h3>Can I import existing SEO\/Open Graph fields?<\/h3><\/dt>\n<dd><p>Yes. Use <strong>Import Existing Social Fields<\/strong> to pull title\/description\/image values from Yoast, Rank Math, and AIOSEO into OG Pilot overrides.<\/p><\/dd>\n<dt id=\"what%20does%20the%20cache%20busting%20setting%20do%3F\"><h3>What does the cache busting setting do?<\/h3><\/dt>\n<dd><p>When enabled, OG Pilot adds a daily (UTC) cache-busting token to generation payloads. This can refresh social cards once per day even if content fields did not change.<\/p><\/dd>\n<dt id=\"what%20happens%20after%20trial%2Fsubscription%20ends%3F\"><h3>What happens after trial\/subscription ends?<\/h3><\/dt>\n<dd><p>The plugin stays active. New OG generation pauses until subscription is active again. Existing generated OG image URLs continue to work.<\/p><\/dd>\n<dt id=\"does%20this%20plugin%20deactivate%20itself%20if%20payment%20fails%3F\"><h3>Does this plugin deactivate itself if payment fails?<\/h3><\/dt>\n<dd><p>No. It follows a graceful degraded mode: only new generation actions are blocked.<\/p><\/dd>\n<dt id=\"what%20happens%20to%20force%20refresh%20and%20bulk%20regenerate%20when%20subscription%20is%20inactive%3F\"><h3>What happens to force refresh and bulk regenerate when subscription is inactive?<\/h3><\/dt>\n<dd><p>Those generation actions are disabled\/blocked until subscription becomes active again, while existing generated image URLs continue to work.<\/p><\/dd>\n<dt id=\"how%20can%20i%20avoid%20duplicate%20social%20tags%20with%20another%20seo%20plugin%3F\"><h3>How can I avoid duplicate social tags with another SEO plugin?<\/h3><\/dt>\n<dd><p>Set <strong>Meta Ownership<\/strong> to External SEO plugin. OG Pilot will stop outputting social meta tags and let your SEO plugin own that output.<\/p><\/dd>\n<dt id=\"is%20there%20a%20diagnostics%20screen%20for%20troubleshooting%3F\"><h3>Is there a diagnostics screen for troubleshooting?<\/h3><\/dt>\n<dd><p>Yes. The Diagnostics panel shows endpoint health, token expiry data, latest generation timestamp, and most recent API error message.<\/p><\/dd>\n<dt id=\"do%20i%20need%20manual%20dns%2Fdomain%20verification%20for%20wordpress%20oauth%20installs%3F\"><h3>Do I need manual DNS\/domain verification for WordPress OAuth installs?<\/h3><\/dt>\n<dd><p>No manual DNS step is required in the WordPress OAuth flow.<\/p><\/dd>\n<dt id=\"what%20data%20is%20sent%20to%20og%20pilot%3F\"><h3>What data is sent to OG Pilot?<\/h3><\/dt>\n<dd><p>Only data needed for OAuth\/token lifecycle and image generation payloads (template + fields you configured).<\/p><\/dd>\n<dt id=\"does%20it%20support%20woocommerce%20metadata%20out%20of%20the%20box%3F\"><h3>Does it support WooCommerce metadata out of the box?<\/h3><\/dt>\n<dd><p>Yes. You can use placeholders such as <code>{{product_price}}<\/code> and <code>{{product_short_description}}<\/code>.<\/p><\/dd>\n<dt id=\"can%20i%20create%20and%20upload%20fully%20custom%20template%20definitions%20from%20this%20plugin%3F\"><h3>Can I create and upload fully custom template definitions from this plugin?<\/h3><\/dt>\n<dd><p>Not currently. The plugin uses OG Pilot\u2019s publicly supported template set.<\/p><\/dd>\n<dt id=\"which%20social%20platforms%20are%20covered%3F\"><h3>Which social platforms are covered?<\/h3><\/dt>\n<dd><p>The plugin outputs <code>og:image<\/code> and <code>twitter:image<\/code> tags, so previews work across platforms that consume those tags (including Facebook, LinkedIn, and X\/Twitter).<\/p><\/dd>\n<dt id=\"how%20do%20i%20force%20an%20updated%20image%20after%20changing%20content%3F\"><h3>How do I force an updated image after changing content?<\/h3><\/dt>\n<dd><p>Update any OG-related field (global defaults or per-post override) and save the content. The plugin queues regeneration based on payload changes.<\/p><\/dd>\n<dt id=\"is%20there%20an%20activation%20redirect%2C%20and%20does%20it%20work%20with%20wp-cli%3F\"><h3>Is there an activation redirect, and does it work with WP-CLI?<\/h3><\/dt>\n<dd><p>Yes. Web activations redirect admins to the setup wizard once. WP-CLI activations skip redirects.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>0.1.0<\/h4>\n\n<ul>\n<li>Improved plugin naming for marketplace search clarity.<\/li>\n<li>Added post-activation redirect to setup wizard (with WP-CLI-safe behavior).<\/li>\n<li>Added editable account email field before OAuth connect (prefilled from current admin).<\/li>\n<li>Switched front-end lazy generation to non-blocking background queue via WP-Cron.<\/li>\n<li>Added per-entry processing status and expectation messaging (5-10 minutes).<\/li>\n<li>Added real generated-image preview block in post\/page\/product editor sidebar.<\/li>\n<li>Force refresh now queues background regeneration instead of blocking editor requests.<\/li>\n<li>Added <code>og:image:url<\/code>, <code>twitter:image:src<\/code>, and <code>twitter:domain<\/code> tags.<\/li>\n<li>Updated release packaging to produce a WP.org-safe zip root slug: <code>og-pilot-dynamic-open-graph-images<\/code>.<\/li>\n<li>Added setup wizard (connect OAuth, choose template, select content types).<\/li>\n<li>Added side-by-side settings layout with sticky live social preview.<\/li>\n<li>Added template gallery cards and template-specific field visibility.<\/li>\n<li>Added rule-based template defaults for post type + taxonomy maps.<\/li>\n<li>Added meta ownership mode and granular meta output toggles.<\/li>\n<li>Added import tool for Yoast\/Rank Math\/AIOSEO social metadata.<\/li>\n<li>Added diagnostics panel (healthcheck, token status, API error visibility).<\/li>\n<li>Added bulk regenerate queue with AJAX progress.<\/li>\n<li>Added per-entry status chips, force-refresh notices, and clearer editor feedback.<\/li>\n<li>Added safer subscription gating: generation actions are blocked when inactive, existing images remain available.<\/li>\n<li>Added plugin list shortcuts: Settings + Setup Wizard.<\/li>\n<li>Added role-aware permissions for overrides (admin + editor capabilities).<\/li>\n<\/ul>","raw_excerpt":"Dynamic Open Graph images and X\/Twitter cards for WordPress and WooCommerce. Auto-generate social preview images for posts, pages, and products.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/ml.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/287780","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ml.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/ml.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/ml.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=287780"}],"author":[{"embeddable":true,"href":"https:\/\/ml.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/raulonrails"}],"wp:attachment":[{"href":"https:\/\/ml.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=287780"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/ml.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=287780"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/ml.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=287780"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/ml.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=287780"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/ml.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=287780"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/ml.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=287780"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}