Description
Tanuki Social Content Bridge connects WordPress to the Social To Posts service so site owners can choose Instagram posts and save them as editable WordPress draft content.
This plugin requires a connection to the external Social To Posts service. The service handles plugin accounts, plan limits, Instagram authorization, Instagram API communication, media cache, usage limits, and billing status. WordPress handles the local admin screen, import settings, draft creation, attachments, custom fields, and local display of imported content.
Features:
- Run a plain-language setup wizard with Google account or email/password setup, site registration, and connection-key storage from the WordPress admin screen.
- Check SaaS, subscription, and Instagram connection status.
- Start checkout, Instagram OAuth, and Instagram media sync from WordPress.
- List cached Instagram posts from the SaaS with checkboxes.
- Create WordPress draft posts only from selected Instagram media.
- Re-import previously imported Instagram media into the same WordPress post while preserving its post ID, publication status, and URL.
- Import into the standard post type or a new Social To Posts custom post type.
- Store Instagram metadata in
_stp9d_custom fields. - Show a polished white/navy plugin admin UI with media thumbnails and import status badges.
- Configure SEO-oriented title generation and optional before/after body text.
- Control noindex behavior for imported posts and the Social To Posts custom post type archive.
- Output JSON-LD structured data for imported posts.
- Display imported content with refined
[stp9d_gallery]and[stp9d_posts]cards. - Choose grid, carousel, slider, or horizontal layouts and preview them in the admin screen.
- Adjust image gap, image corner radius, and carousel/slider arrows and dots.
- Show diagnostics and local import logs.
- Provide a translation-ready admin interface through WordPress.org language packs.
- Open the public setup guide from a persistent help button on every plugin administration screen.
External services
This plugin connects to the Social To Posts service API at https://social-to-posts.plugin-parks.com. The production service endpoint is fixed in the plugin interface so administrators cannot accidentally redirect account or Instagram data to another destination. Developers may override it with the SOCIAL_TO_POSTS_SERVICE_BASE_URL constant in wp-config.php for controlled development or private testing.
Service terms, privacy, and data deletion information are available at:
- Terms: https://social-to-posts.plugin-parks.com/terms
- Seller information: https://social-to-posts.plugin-parks.com/legal
- Privacy: https://social-to-posts.plugin-parks.com/privacy
- Data deletion: https://social-to-posts.plugin-parks.com/data-deletion
- English terms: https://social-to-posts.plugin-parks.com/en/terms
- English seller information: https://social-to-posts.plugin-parks.com/en/legal
- English privacy: https://social-to-posts.plugin-parks.com/en/privacy
- English data deletion: https://social-to-posts.plugin-parks.com/en/data-deletion
- Setup guide: https://social-to-posts.plugin-parks.com/help
- English setup guide: https://social-to-posts.plugin-parks.com/en/help
The plugin sends the following data to the service when a site owner connects or uses the service:
- Site URL, site name, and plugin connection information.
- Plugin account email address and account details entered during setup. The plugin account password is sent to the service during setup but is not stored in WordPress by this plugin.
- When Google account setup is selected, the WordPress site name, site URL, and a short-lived callback token. Google returns the verified email address, account name, and provider account identifier to the service after consent. Google passwords and Google tokens are not stored in WordPress.
- Requests to check connection status, subscription status, plan limits, Instagram connection status, and cached Instagram posts.
- Selected Instagram media IDs when the site owner imports posts.
- Import result logs, including success or error status, imported Instagram media ID, and created WordPress post ID.
The plugin sends this data only when an administrator connects the site, checks the connection, starts Instagram authorization or synchronization, requests the cached media list, imports selected posts, opens billing/plan actions, or runs diagnostics.
The service may store the following data to provide the feature:
- Plugin account, organization, and connected WordPress site records.
- Hashed site API keys and connection status.
- Subscription and billing identifiers managed through the payment provider.
- Instagram OAuth state, encrypted Instagram access tokens, Instagram profile identifier, media cache, sync jobs, and API logs.
Instagram authorization and media retrieval are performed by the external service through Meta/Instagram APIs after the user authorizes the connection. The plugin does not contact Instagram directly for OAuth or media synchronization.
When an administrator explicitly selects “Continue with Google” during setup, the browser connects to Google OAuth 2.0/OpenID Connect. The authorization request sends the service’s Google client ID, redirect URI, requested openid email profile scopes, and short-lived state/nonce values. After consent, Google returns an authorization code to the Social To Posts service. The service validates the resulting ID token and may store the Google provider account identifier, verified email address, and account name so it can create or identify the plugin account. The plugin does not receive or store the Google password, Google access token, or Google ID token.
Google service information:
- Google Privacy Policy: https://policies.google.com/privacy
- Google Terms of Service: https://policies.google.com/terms
Privacy and data retention
Imported WordPress posts, attachments, and _stp9d_ custom fields are stored in this WordPress site. Deactivating the plugin does not delete imported posts, images, or custom fields.
The plugin stores only the local settings needed to connect this WordPress site to the service, display plan status, and create/import selected posts. The plugin does not store the plugin account password after setup. Site owners should review the service privacy policy and terms before connecting a production site.
When a paid plan ends, existing imported WordPress posts and images are not deleted by the plugin. Service-side limits may change according to the account plan.
Plans
Free and paid plans are managed by the external service. Plan limits are enforced by the service based on usage, processing limits, storage, connection status, and subscription state. The plugin displays the current plan status returned by the service.
Free can import up to 3 Instagram posts per month. Standard can import up to 100 Instagram posts per subscription period. All WordPress-side image layouts and display design controls included in this plugin are available with both plans; the plan difference is based on external service processing and storage limits.
If the service indicates that a public credit is available for the current plan, the credit is shown only when the site administrator explicitly enables it in the plugin display settings.
Uninstall
Deactivating this plugin does not remove settings or imported content. However, the plugin-managed custom post type is no longer registered while the plugin is inactive, so its admin menu and public pages remain unavailable until reactivation. The plugin can remain active on the Free plan at no charge. Uninstalling removes plugin-owned options such as connection settings, plan cache, display settings, and local import logs, and converts imported galleries to WordPress image blocks without changing post types. Uninstalling does not delete posts, images, or _stp9d_ custom fields created by previous imports.
Trademarks
Social To Posts and the associated mascot/brand identifiers are trademarks of 9D CREATIVE OFFICE. The GPL license grants rights in the plugin code and bundled copyrightable assets. Modified or redistributed versions must not falsely imply that they are official Social To Posts products or are endorsed by 9D CREATIVE OFFICE.
Screenshots





Installation
- Upload
tanuki-social-content-bridge.zipfrom the WordPress Plugins screen. - Activate “Tanuki Social Content Bridge”.
- Open the Social To Posts menu.
- Use the WordPress-side setup wizard to connect or create a SaaS account.
- Start checkout, Instagram connection, and Instagram media sync from the plugin dashboard.
FAQ
-
Is an external service required?
-
Yes. Instagram authorization, Instagram API communication, media caching, usage limits, account management, and billing are provided by the Social To Posts service. The plugin explains the transmitted and stored data before connection.
-
Does the plugin send data automatically after activation?
-
No. An administrator must start setup and connect the WordPress site. Service requests are then made only for actions such as connection checks, Instagram authorization or synchronization, media listing, selected imports, billing, and diagnostics.
-
Existing WordPress posts, attachments, and custom fields remain available. A failed service request does not delete or overwrite previously imported content, and the administrator can retry after service recovery.
-
Are Instagram posts published automatically?
-
No. The administrator chooses cached Instagram posts with checkboxes. Selected posts are created as WordPress drafts by default so they can be reviewed and edited before publication.
-
Is Advanced Custom Fields required?
-
No. Imported Instagram information is stored in plugin-owned
_stp9d_custom fields. If ACF is installed, optional image-field mapping can also be used. -
Does WordPress store the plugin account password?
-
No. The password is sent to the Social To Posts service only during the requested setup or login operation and is not retained by this plugin.
-
What if I forget the plugin account password?
-
Choose the password-reset link in the WordPress setup wizard. The Social To Posts service sends a time-limited reset link to the registered email address. After setting a new password, return to WordPress and continue setup.
-
What happens when a paid plan ends or the plugin is uninstalled?
-
The service account moves to the applicable Free limits when the paid period ends. Previously imported WordPress posts and images are not deleted. If Social To Posts is deactivated or removed, its custom post type is no longer registered, so those posts are hidden from the admin menu and their public URLs are unavailable until the plugin is reactivated. You can keep the plugin active on the Free plan at no charge to retain access. On uninstall, plugin galleries are converted to WordPress image blocks without changing the original post type. Plugin-owned settings and logs are then removed, while posts, attachments, and
_stp9d_post metadata are preserved.
Reviews
There are no reviews for this plugin.
Contributors & Developers
“Tanuki Social Content Bridge” is open source software. The following people have contributed to this plugin.
ContributorsTranslate “Tanuki Social Content Bridge” into your language.
Interested in development?
Browse the code, check out the SVN repository, or subscribe to the development log by RSS.
Changelog
0.1.93
- Keep Instagram authorization in the current browser tab so the return to WordPress remains clear.
- Load admin-list thumbnails through short-lived, signed service preview URLs that refresh stale Instagram media links.
0.1.92
- Return users to the WordPress password step after completing the SaaS password-reset flow.
- Show an explicit password-change completion screen and collect the new password and confirmation together.
0.1.91
- Add password-reset links to the WordPress setup wizard and invalid-login notice.
0.1.90
- Restore the complete administration layout by loading plugin assets from the registered WordPress admin screen identifiers.
0.1.89
- Validate email onboarding callbacks against one-time state stored for the administrator who started setup.
- Validate the same callback state when the service exchanges the short-lived connection code.
- Update the author website to the official 9D CREATIVE OFFICE site.
- Clarify nonce and capability validation order when saving imported image settings.
0.1.88
- Adopt the distinctive Tanuki Social Content Bridge plugin name and requested WordPress.org slug.
- Replace short internal identifiers with the unique
stp9d_prefix. - Remove the activation redirect and full-screen welcome overlay; setup remains available through a dismissible notice and plugin action link.
- Use WordPress enqueue APIs for dynamic scripts and sanitize boolean settings with the WordPress REST boolean sanitizer.
- Prepare translations for WordPress.org language packs instead of bundling PO and MO files.
0.1.87
- Declare compatibility with WordPress 7.1 after clean-install and lifecycle testing.
- Clarify that the production service endpoint is fixed in the plugin interface.
- Refresh WordPress.org screenshots to match the current Free and Standard plan limits and features.
- Complete the strict WordPress coding-standards cleanup for the public package.
0.1.86
- Add separate New Import and Re-import modes to the Instagram post list.
- Re-import into the existing WordPress post while preserving its post ID, publication status, URL, and post type.
- Count successful re-imports toward the monthly service limit and refresh the existing SaaS media-cache record without creating duplicates.
0.1.85
- Warn before deactivation that plugin-managed custom posts become unavailable until reactivation, while confirming that their data is not deleted and the Free plan can remain active at no charge.
- Preserve the original post type on uninstall instead of converting imported custom posts to standard posts.
0.1.84
- Preserve imported content on uninstall by converting plugin galleries to core image blocks and plugin-managed custom-post-type entries to standard posts.
0.1.83
- Refresh WordPress rewrite rules once when custom-post-type routing settings change, preventing published imported posts from returning 404 pages.
0.1.82
- Complete site connection automatically after plugin-account email verification without asking for the password again.
0.1.81
- Show the Free plan limit of 3 monthly imports before the WordPress site is connected.
0.1.80
- Generate editable image alt-text drafts from imported Instagram captions.
- Expand the public setup guide with existing SEO assistance, Meta account requirements, service responsibilities, and video-storage behavior.
0.1.79
- Limit the WordPress payment history and Stripe invoice request to the 20 most recent invoices.
0.1.78
- Display the official service URL as a fixed read-only value in advanced settings.
- Prevent saved WordPress options and onboarding form data from changing the production service endpoint.
0.1.77
- Make all bundled image layouts and display design controls available with both Free and Standard.
- Set the external service import allowance to 3 posts per month for Free and keep 100 posts per subscription period for Standard.
- Update plan comparison screens and localized descriptions to match the service-based plan limits.
0.1.76
- Enforce grid-only display for Free accounts in settings, saved options, and public output.
- Refresh cached plan features when opening import settings and default safely to Free until a plan is confirmed.
0.1.75
- Add a 1×1 grid and configurable 2-5 image counts for carousel and side-by-side layouts.
- Add optional infinite fade switching for overflow images in grid and side-by-side layouts.
- Keep new image display blocks centered by default and improve responsive gallery sizing.
- Move ACF image field linkage below the display preview for a clearer settings flow.
0.1.74
- Show display formats as radio cards and clearly lock Standard-only layouts for Free accounts.
0.1.73
- Keep the first-activation thank-you message on one responsive line across supported languages.
0.1.72
- Require custom post type slugs to contain at least two characters to avoid single-character WordPress route conflicts.
0.1.71
- Validate custom post type slugs in the browser and on the server before saving.
- Explain the allowed slug characters and length in all supported admin languages.
0.1.70
- Make the first-activation thank-you message more compact.
- Show a human-readable import destination label together with its post type slug.
0.1.69
- Add a skippable, accessible thank-you animation shown once after the plugin is first activated.
- Document the GPL-compatible license provenance of bundled images and clarify the separate Social To Posts trademark notice.
- Extend release verification to require bundled-asset and trademark disclosures.
0.1.68
- Emphasize the selected-post counter with a pill treatment and larger numeric count.
0.1.67
- Limit each import operation to five Instagram posts to reduce timeout risk.
- Show the selected-post count and disable remaining checkboxes after five selections.
- Prevent duplicate processing when an individual import request is retried.
0.1.66
- Add detailed Japanese and English setup guides covering connection, Instagram authorization, imports, display settings, plans, billing, and troubleshooting.
- Add a persistent setup-guide launcher to every Social To Posts administration screen.
0.1.65
- Adopt the final
social-to-postsWordPress.org slug, plugin folder, package name, and text domain while preserving existingstp9d_settings and imported post metadata. - Add bundled admin translations for Japanese, Korean, Simplified Chinese, Traditional Chinese, Indonesian, Vietnamese, and Thai, with English as the source language.
- Import selected Instagram posts sequentially with visible progress, isolated batch results, retries for temporary network failures, and a synchronous fallback.
- Apply the production seller information to the Japanese and English legal pages.
0.1.64
- Combine diagnostics and import logs into a clearer support screen with on-demand checks, recent history, and secure log deletion.
0.1.63
- Remove the advanced shortcode reference from import settings while preserving existing shortcode compatibility.
0.1.62
- Keep carousel and slider controls aligned with each active image when original media ratios are used.
0.1.61
- Simplify import destinations to standard posts or a new Social To Posts custom post type.
- Show custom post type settings only when that destination is selected.
- Improve import-settings section hierarchy with clearly separated headings.
0.1.60
- Use the verified Social To Posts custom domain as the default service endpoint and public service URL.
- Migrate only sites that still use the previous default endpoint, preserving administrator-customized service URLs.
0.1.59
- Add shared authentication rate limits for service login, signup, password reset, and WordPress account connection.
- Show a plain-language retry message in WordPress when account setup is temporarily rate limited.
0.1.58
- Explain monthly import limits clearly, show the reset date, and guide Free users to the plan page.
- Disable additional imports after the monthly quota is reached and stop repeating quota errors for selected posts.
- Add regression coverage for Free calendar-month resets and Standard Stripe billing-period resets.
0.1.57
- Keep the loading screen visible across Instagram import navigation, then switch directly to the completion screen before revealing the post list.
0.1.56
- Reduce repeated service calls during plugin navigation with short-lived response caching and forced refresh after service mutations.
- Replace the generic spinner with branded loading and successful-import completion states.
0.1.55
- Replace development-stage terminology in the public readme with production-facing Social To Posts wording.
0.1.54
- Show subscription-management controls only while the Standard plan is active.
- Add the public seller-information URL to the external-service disclosure.
0.1.53
- Add a focused account-change guide before opening Meta’s Instagram authorization screen.
- Show the currently connected Instagram username and clearly explain where to switch accounts on the Meta-managed screen.
0.1.52
- Add optional Google account signup/login to the first-run WordPress setup flow using short-lived state, nonce, and a one-time site-bound exchange code.
- Link Google-verified emails to existing plugin accounts without storing Google passwords or tokens in WordPress.
0.1.51
- Display the paid access expiration consistently in YYYY/MM/DD format.
0.1.50
- Return to the plan screen after Stripe Checkout and refresh the plan status while the payment webhook is being applied.
- Show the current paid access expiration on the billing screen and update it from Stripe subscription renewals.
0.1.49
- Open the verified Stripe Checkout page immediately after selecting the Standard plan.
0.1.48
- Add service-managed notices for planned plugin updates and important operational announcements.
0.1.47
- Refined the onboarding wizard into a vertical progress column and focused form workspace.
0.1.46
- Show the Standard monthly price in JPY or USD based on the WordPress locale and timezone.
- Make the completed connection-status action return from plan and billing views to the dashboard.
0.1.45
- Rename all user-facing product and plugin branding to Social To Posts.
- Migrate legacy default custom post type labels while preserving slugs and customized labels.
0.1.44
- Set Standard pricing to JPY 880 per month in Japan and USD 5.99 per month elsewhere.
- Support a fixed two-currency Stripe Price and explicitly disable automatic adaptive currency conversion.
0.1.43
- Improved WordPress admin color contrast for buttons, guidance text, and status accents.
- Added automated browser, mobile layout, and accessibility regression coverage.
0.1.42
- Remove the translation loader that WordPress.org no longer requires.
- Document the intentional bounded meta queries used for duplicate detection and imported-post filtering.
0.1.41
- Stop rendering the stored site connection key into the settings page HTML.
- Preserve the current key when the masked replacement field is left empty.
- Extend release checks for secrets and required external-service disclosures.
0.1.40
- Show service-wide Instagram incidents and maintenance notices in WordPress.
- Keep imported content available while temporarily disabling only new Instagram connection and synchronization actions.
- Preserve the last safely validated service status for secondary plugin screens.
0.1.39
- Set the Standard plan launch price to JPY 880 per month including tax.
- Validate the JPY 880 monthly Stripe Price consistently across SaaS and WordPress checkout flows.
0.1.38
- Define Standard as one JPY 550 monthly auto-renewing subscription with no introductory trial.
- Validate the configured Stripe Price amount, currency, active state, and monthly interval before Checkout.
- Let administrators schedule cancellation at the end of the current paid period while retaining Standard access until then.
- Show up to 100 Stripe invoices in WordPress with secure invoice PDF links.
0.1.37
- Show plain-language billing errors for unavailable Checkout, missing customers, and existing subscriptions.
- Restrict new Stripe Checkout sessions to card payments in the external service.
- Prevent duplicate active subscriptions and repeated introductory trials in the external service.
- Allow failed or abandoned Stripe webhook events to be safely reclaimed without processing completed events twice.
0.1.36
- Run WordPress Coding Standards and translation catalog generation in continuous integration.
- Update CI defaults to the Instagram Login business permission scope.
- Verify release ZIP structure, required files, version consistency, and forbidden development files before publishing.
0.1.35
- Return users to the setup step that matches the validation or account error.
- Add a clear retry action beside setup errors and a direct link to service endpoint settings when needed.
- Add a reproducible WordPress translation catalog workflow and include the generated POT file in release packages.
0.1.34
- Validate setup mode, service URL, email address, and password length in WordPress before contacting the service.
- Save account identity settings only after local validation succeeds and continue to avoid storing passwords.
- Replace unknown service error codes with a plain-language retry message.
0.1.33
- Add a first-run admin notice that links directly to the focused onboarding screen.
- Add an Initial Setup action to the WordPress Plugins screen.
- Hide secondary ACF guidance until the site connection is configured.
- Remove the first-run notice automatically after a successful site connection.
0.1.32
- Move first-time connection into a focused onboarding screen.
- Guide users through account mode, email, password, site confirmation, and connection one step at a time.
- Reuse the saved plugin account identity across site and Instagram setup while never storing the account password in WordPress.
0.1.31
- Refresh the current plan limits before importing media from the WordPress media list.
- Make local WordPress smoke fixtures consistently use the seeded Standard plan limits.
0.1.30
- Add a clear WordPress-side action for changing the connected Instagram account.
- Preserve the current connection if account-change authorization is cancelled.
- Clear account-specific media caches and sync jobs only after a different Instagram account is successfully connected.
0.1.29
- Use WordPress safe HTTP validation for external service requests in production.
- Keep explicit localhost support limited to WordPress local development environments.
- Add the GPL license text to the plugin distribution and exclude translation-development notes from release ZIP files.
0.1.28
- Add WordPress.org readiness checks for plugin security, compatibility, and translation usage.
- Clarify the default external service endpoint and service policy links.
- Add GPL license metadata to the plugin header.
0.1.27
- Load frontend assets only when Social To Posts display shortcodes are present.
- Harden custom post type label handling before registration.
- Add WordPress privacy policy guide text for external service communication.
- Make the ACF recommendation notice dismissible per administrator.
0.1.26
- Clarified external service usage, privacy notes, plan handling, and distribution metadata.
0.1.0
- Initial plugin package.
