=== BabyLoveGrowth Integration === Contributors: tilensavnik, meetcpatel8850 Tags: rest api, headless, publishing, webhook Requires at least: 5.6 Tested up to: 7.0 Requires PHP: 7.4 Stable tag: 1.0.25 License: GPLv2 or later License URI: https://www.gnu.org/licenses/gpl-2.0.html Secure REST endpoint to publish posts from BabyLoveGrowth.ai backend via API key. == Description == BabyLoveGrowth Integration adds a secure REST API endpoint to your WordPress site so BabyLoveGrowth.ai can publish or update posts remotely. It uses an API key you control in WordPress settings, and supports featured images and HTML/Markdown content. - Improved Authorization - Endpoints: `GET /wp-json/babylovegrowth/v1/ping`, `POST /wp-json/babylovegrowth/v1/publish` - Accepts `title`, `slug`, `content_html` or `content_markdown`, optional `metaDescription`, `heroImageUrl`, `status` - Sets/updates posts by slug; supports `publish`, `draft`, `pending` == Installation == 1. Upload the plugin files to the `/wp-content/plugins/babylovegrowth-integration` directory, or upload the ZIP via Plugins → Add New → Upload Plugin. 2. Activate the plugin through the 'Plugins' screen in WordPress. 3. Go to Settings → BabyLoveGrowth Integration. Copy the API Key. 4. In BabyLoveGrowth, configure the Webhook Integration with the Bearer token. Endpoint base is your site URL, e.g. `https://example.com/wp-json/babylovegrowth/v1/publish`. == Frequently Asked Questions == = How do I regenerate the Integration Key? = On the Babylovegrowth settings page, click "Generate New Key". The previous key stops working immediately, so paste the new one into your BabyLoveGrowth dashboard to resume publishing. Do this whenever the key may have been exposed — after a security incident, a database leak, or when someone with access leaves. = Why can't I see my Integration Key any more? = The key is stored as a one-way fingerprint rather than in readable form, so a stolen copy of your database does not reveal a working key. It is shown once when generated, then hidden after your first article arrives (or after seven days if the plugin is never connected). If you no longer have it, generate a new one. = How do I check whether a post came from BabyLoveGrowth? = The settings page has a Recent Activity list showing every request this plugin received — accepted or rejected — with the time, the result and the article. No visitor IP addresses are recorded. = What is the endpoint URL? = `/wp-json/babylovegrowth/v1/publish` on your site. Test connectivity with `/wp-json/babylovegrowth/v1/ping`. = What permissions are required? = Requests are authorized with the API key only. No user login is required. == Screenshots == 1. How babylovegrowth works. 2. Content Plan. 3. Backlinks. == Changelog == = 1.0.25 = * Improved: Internal improvements to how published articles are kept in sync. = 1.0.24 = * Added: "Allow forms, quizzes and custom styling" — an optional setting that keeps forms, quizzes and booking widgets working in your articles instead of letting WordPress strip them out. Off by default. Only an administrator or editor can turn it on, and the author you publish as must be one too. Sites on a WordPress network, or using DISALLOW_UNFILTERED_HTML, are unaffected. = 1.0.23 = * Fixed: The "BabyLoveGrowth dashboard" link on the settings page now opens the integration settings page directly, instead of the dashboard home. = 1.0.22 = * Added: "Generate New Key" — you can now replace your Integration Key at any time. The old key is revoked immediately. Previously a key could only be changed by deleting and reinstalling the plugin. * Added: Integration Keys are now stored as a one-way fingerprint instead of readable text, so a copy of your database no longer reveals a working key. Existing keys keep working and move to the new storage the first time you generate a new key. * Added: Recent Activity log on the settings page, listing every request the publish endpoint received — accepted or rejected — with time, result and article. No IP addresses are recorded. * Security: Fixed an issue where structured data (JSON-LD) supplied with an article was written to the page without validation. A caller holding a valid Integration Key could have used it to place scripts on published articles. Stored data is now re-encoded and anything that is not valid structured data is discarded. * Security: The publish endpoint now authorises the request before it reaches any post-writing code, and repeated failed key attempts from one address are rate limited. = 1.0.21 = * Fixed: Posts could be published without their featured image on slower sites. The featured image is now imported before the rest of the article's images, publishing keeps running if the connection drops, and a background check sets the image if the request is cut short. = 1.0.20 = * Added: Inline content images (not just the featured image) are now imported into the WordPress media library and served from your own domain instead of being hotlinked from external storage. Images are deduplicated across re-publishes, and any image that cannot be imported keeps its original URL so posts never show a broken image. = 1.0.19 = * Fixed: Posts published through the integration now automatically refresh the Rank Math and Yoast sitemap cache, so new posts appear in the sitemap without needing a manual re-save. = 1.0.18 = * Compatibility: Tested and confirmed compatible with WordPress 7.0. = 1.0.17 = * Removed: Webhook URL field from plugin settings. = 1.0.16 = * Updated: Refreshed integration tutorial video in settings page. = 1.0.15 = * Removed: Webhook URL from plugin settings. = 1.0.14 = * Added: Alt text for hero image. = 1.0.13 = * Added: Default author selection in settings; published posts use the selected author (same as category). = 1.0.12 = * Improved: Improved Authorization = 1.0.11 = * Added: SEO Meta integration support for Yoast SEO, Rank Math, SEOPress, and All in One SEO * Improved: Automatically maps meta title, description, and keywords to installed SEO plugins = 1.0.10 = * Improved: Redesigned admin interface with clearer two-step setup process * Improved: Better visual separation between BLG Dashboard settings and WordPress settings * Improved: Simplified language throughout settings page for non-technical users * Fixed: Integration Key now properly preserved when saving other WordPress settings * Enhanced: Added helpful section headers and instructions to guide users through setup * Enhanced: Improved copy-to-clipboard functionality with clearer labels = 1.0.9 = * Fixed: YouTube/Vimeo embeds not rendering when HTML contained wrappers * Added: Allowlist for