{"id":209577,"date":"2024-11-12T05:36:58","date_gmt":"2024-11-12T05:36:58","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/login-for-stripe-customer-portal\/"},"modified":"2026-05-24T21:22:44","modified_gmt":"2026-05-24T21:22:44","slug":"login-stripe-customer-portal","status":"publish","type":"plugin","link":"https:\/\/sw.wordpress.org\/plugins\/login-stripe-customer-portal\/","author":16742394,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.6","stable_tag":"1.0.6","tested":"6.9.4","requires":"5.0","requires_php":"7.4","requires_plugins":null,"header_name":"Login for Stripe Customer Portal","header_author":"Gaucho Plugins","header_description":"Allow merchants to connect Stripe and provide a customer login endpoint for the Stripe Customer Portal.","assets_banners_color":"b8d9fb","last_updated":"2026-05-24 21:22:44","external_support_url":"","external_repository_url":"","donate_link":"https:\/\/gauchoplugins.com\/","header_plugin_uri":"","header_author_uri":"https:\/\/gauchoplugins.com\/","rating":5,"author_block_rating":0,"active_installs":10,"downloads":1429,"num_ratings":2,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0":{"tag":"1.0","author":"brandonfire","date":"2024-11-12 05:36:44"},"1.0.1":{"tag":"1.0.1","author":"brandonfire","date":"2024-11-17 06:40:34"},"1.0.2":{"tag":"1.0.2","author":"brandonfire","date":"2024-11-17 07:23:32"},"1.0.3":{"tag":"1.0.3","author":"brandonfire","date":"2025-04-21 22:21:03"},"1.0.4":{"tag":"1.0.4","author":"brandonfire","date":"2026-05-24 11:34:29"},"1.0.5":{"tag":"1.0.5","author":"brandonfire","date":"2026-05-24 13:34:27"},"1.0.6":{"tag":"1.0.6","author":"brandonfire","date":"2026-05-24 21:22:44"}},"upgrade_notice":[],"ratings":{"1":0,"2":0,"3":0,"4":0,"5":2},"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3190465,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3190465,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3190489,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3190489,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{"blueprint.json":{"filename":"blueprint.json","revision":3546625,"resolution":false,"location":"assets","locale":"","contents":"{\"$schema\":\"https:\\\/\\\/playground.wordpress.net\\\/blueprint-schema.json\",\"meta\":{\"title\":\"Login for Stripe Customer Portal \\u2014 Live Preview\",\"description\":\"Try Login for Stripe Customer Portal in your browser. Create a branded account login area for your Stripe customers with secure magic-link authentication.\",\"author\":\"Gaucho Plugins\",\"categories\":[\"Plugin\"]},\"landingPage\":\"\\\/wp-admin\\\/plugins.php\",\"preferredVersions\":{\"php\":\"8.2\",\"wp\":\"latest\"},\"phpExtensionBundles\":[\"kitchen-sink\"],\"features\":{\"networking\":true},\"steps\":[{\"step\":\"login\",\"username\":\"admin\",\"password\":\"password\"},{\"step\":\"installPlugin\",\"options\":{\"activate\":true},\"progress\":{\"weight\":3},\"pluginData\":{\"resource\":\"wordpress.org\\\/plugins\",\"slug\":\"login-stripe-customer-portal\"}}]}"}},"all_blocks":[],"tagged_versions":["1.0","1.0.1","1.0.2","1.0.3","1.0.4","1.0.5","1.0.6"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3190481,"resolution":"1","location":"assets","locale":"","width":1200,"height":700},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3190481,"resolution":"2","location":"assets","locale":"","width":1200,"height":700},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3190481,"resolution":"3","location":"assets","locale":"","width":1200,"height":700},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3190481,"resolution":"4","location":"assets","locale":"","width":1200,"height":700},"screenshot-5.png":{"filename":"screenshot-5.png","revision":3190481,"resolution":"5","location":"assets","locale":"","width":1200,"height":700}},"screenshots":{"1":"Settings page to configure Stripe API key, redirect URL, and customer portal slug","2":"Login form example - users can enter email and generate a login link","3":"Embeddable Stripe Customer Portal login form based on shortcode","4":"Confirmation message after submitting the email form","5":"Email including temporary login link for Stripe Customer Portal"}},"plugin_section":[],"plugin_tags":[2152,5593,602,4538,5349],"plugin_category":[38,45],"plugin_contributors":[168740,78154,183974],"plugin_business_model":[],"class_list":["post-209577","plugin","type-plugin","status-publish","hentry","plugin_tags-account","plugin_tags-customer","plugin_tags-login","plugin_tags-portal","plugin_tags-stripe","plugin_category-authentication","plugin_category-ecommerce","plugin_contributors-brandonfire","plugin_contributors-freemius","plugin_contributors-gauchoplugins","plugin_committers-brandonfire","plugin_support_reps-brandonfire","plugin_support_reps-gauchoplugins"],"banners":{"banner":"https:\/\/ps.w.org\/login-stripe-customer-portal\/assets\/banner-772x250.png?rev=3190489","banner_2x":"https:\/\/ps.w.org\/login-stripe-customer-portal\/assets\/banner-1544x500.png?rev=3190489","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/login-stripe-customer-portal\/assets\/icon-128x128.png?rev=3190465","icon_2x":"https:\/\/ps.w.org\/login-stripe-customer-portal\/assets\/icon-256x256.png?rev=3190465","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/login-stripe-customer-portal\/assets\/screenshot-1.png?rev=3190481","caption":"Settings page to configure Stripe API key, redirect URL, and customer portal slug"},{"src":"https:\/\/ps.w.org\/login-stripe-customer-portal\/assets\/screenshot-2.png?rev=3190481","caption":"Login form example - users can enter email and generate a login link"},{"src":"https:\/\/ps.w.org\/login-stripe-customer-portal\/assets\/screenshot-3.png?rev=3190481","caption":"Embeddable Stripe Customer Portal login form based on shortcode"},{"src":"https:\/\/ps.w.org\/login-stripe-customer-portal\/assets\/screenshot-4.png?rev=3190481","caption":"Confirmation message after submitting the email form"},{"src":"https:\/\/ps.w.org\/login-stripe-customer-portal\/assets\/screenshot-5.png?rev=3190481","caption":"Email including temporary login link for Stripe Customer Portal"}],"raw_content":"<!--section=description-->\n<p>Need a branded way for Stripe customers to access the Stripe Customer Portal from your WordPress site? <strong>Login for Stripe Customer Portal<\/strong> adds a secure login page on your domain, sends one-time magic links by email, and redirects customers to Stripe's hosted billing portal to manage subscriptions and payment methods.<\/p>\n\n<h3>\ud83d\udd10 STRIPE CUSTOMER PORTAL ON YOUR SITE<\/h3>\n\n<blockquote>\n  <p>Connect your Stripe account and give customers a login page on your WordPress site instead of sending them directly to Stripe.<\/p>\n<\/blockquote>\n\n<h3>\u2709\ufe0f MAGIC-LINK EMAIL AUTHENTICATION<\/h3>\n\n<blockquote>\n  <p>Customers enter their email address and receive a secure login link valid for 1 hour \u2014 no passwords to manage on your site.<\/p>\n<\/blockquote>\n\n<h3>\ud83e\udde9 CUSTOM LOGIN PAGE OR SHORTCODE<\/h3>\n\n<blockquote>\n  <p>Define a custom URL slug for your portal login page (e.g. <code>yourwebsite.com\/customer-portal\/<\/code>) or embed the form anywhere with <code>[login-stripe-customer-portal]<\/code>.<\/p>\n<\/blockquote>\n\n<h3>\ud83c\udf9b\ufe0f CONTROL WHO CAN LOG IN<\/h3>\n\n<blockquote>\n  <p>Optionally restrict access to existing Stripe customers only, or allow new customers to register through the flow.<\/p>\n<\/blockquote>\n\n<h3>\u21a9\ufe0f CUSTOM POST-LOGOUT REDIRECT<\/h3>\n\n<blockquote>\n  <p>After customers log out of the Stripe Customer Portal, redirect them back to a URL you configure in the plugin settings.<\/p>\n<\/blockquote>\n\n<h3>\u2705 PERFECT FOR:<\/h3>\n\n<ul>\n<li>SaaS and subscription businesses using Stripe Billing.<\/li>\n<li>Membership sites that use the Stripe Customer Portal for self-service billing.<\/li>\n<li>Agencies hosting client sites that need a branded Stripe portal login experience.<\/li>\n<li>WordPress stores that want customers to update payment methods without support tickets.<\/li>\n<\/ul>\n\n<p>\ud83d\udcd5 <a href=\"https:\/\/gauchoplugins.gitbook.io\/login-for-stripe-customer-portal-wordpress-plugin\">DOCUMENTATION<\/a> | \ud83c\udd98 <a href=\"https:\/\/wordpress.org\/support\/plugin\/login-stripe-customer-portal\/\">SUPPORT FORUM<\/a><\/p>\n\n<h3>Roadmap:<\/h3>\n\n<ul>\n<li>Built-in styling settings for the login form (use custom CSS today).<\/li>\n<li>Additional customization options for the login endpoint and emails.<\/li>\n<\/ul>\n\n<h3>GAUCHO PLUGINS PORTFOLIO<\/h3>\n\n<p><strong><a href=\"https:\/\/wordpress.org\/plugins\/payment-page\/\">Payment Page<\/a><\/strong>: Start accepting payments in a beautiful payment form in less than 60 seconds<\/p>\n\n<p><strong><a href=\"https:\/\/wordpress.org\/plugins\/bsd-woo-stripe-connect-split-pay\/\">Split Pay Plugin<\/a><\/strong>: Split WooCommerce payments across multiple connected Stripe accounts.<\/p>\n\n<p><strong><a href=\"https:\/\/wordpress.org\/plugins\/login-stripe-customer-portal\/\">Login for Stripe Customer Portal<\/a><\/strong>: Create an Account login area for your Stripe customers.<\/p>\n\n<p><strong><a href=\"https:\/\/wordpress.org\/plugins\/gyta-buyback\/\">Gyta Buyback<\/a><\/strong>: Create a trade-in \/ buyback business using WooCommerce.<\/p>\n\n<p><strong><a href=\"https:\/\/wordpress.org\/plugins\/version-info\/\">Version Info<\/a><\/strong>: Show WP, PHP, MySQL &amp; Web Server Versions in the WP-Admin Dashboard.<\/p>\n\n<p><strong><a href=\"https:\/\/wordpress.org\/plugins\/wp-stripe-global-payments\/\">China Payments Plugin<\/a><\/strong>: Accept WeChat Pay and Alipay payments from Chinese customers.<\/p>\n\n<p><strong><a href=\"https:\/\/wordpress.org\/plugins\/blocked-in-china\/\">Blocked in China<\/a><\/strong>: Check if your website is available in the Chinese mainland.<\/p>\n\n<p><strong><a href=\"https:\/\/wordpress.org\/plugins\/speed-in-china\/\">Speed in China<\/a><\/strong>: Check your website's speed in the Chinese mainland.<\/p>\n\n<h3>External Services<\/h3>\n\n<p>This plugin connects to the following external services.<\/p>\n\n<h4>Stripe (api.stripe.com)<\/h4>\n\n<p>This plugin uses your Stripe Secret API key to authenticate customers and generate secure links to the Stripe Customer Portal. Customer email addresses are sent to Stripe when a user requests a login link. Stripe hosts the Customer Portal where customers manage billing information.<\/p>\n\n<ul>\n<li><a href=\"https:\/\/stripe.com\/legal\/ssa\">Stripe Terms of Service<\/a><\/li>\n<li><a href=\"https:\/\/stripe.com\/privacy\">Stripe Privacy Policy<\/a><\/li>\n<\/ul>\n\n<h4>Freemius (api.freemius.com, freemius.com)<\/h4>\n\n<p>This plugin includes the Freemius SDK for license and update management. Data is sent to Freemius only when you opt in through the Freemius connect screen.<\/p>\n\n<ul>\n<li><a href=\"https:\/\/freemius.com\/terms\/\">Freemius Terms of Service<\/a><\/li>\n<li><a href=\"https:\/\/freemius.com\/privacy\/\">Freemius Privacy Policy<\/a><\/li>\n<\/ul>\n\n<!--section=installation-->\n<ol>\n<li>Upload the plugin files to the <code>\/wp-content\/plugins\/<\/code> directory or install the plugin through the WordPress plugins screen.<\/li>\n<li>Activate the plugin through the 'Plugins' screen in WordPress.<\/li>\n<li>Navigate to \"Stripe Portal\" in the WordPress admin menu to configure the plugin settings.<\/li>\n<li>Enter your Stripe Secret API Key, customize the endpoint slug, and set your desired redirect URL.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"what%20does%20this%20plugin%20do%3F\"><h3>What does this plugin do?<\/h3><\/dt>\n<dd><p>This plugin allows you to provide a customer login page for Stripe's Customer Portal directly from your WordPress site. It enables customers to access and manage their Stripe billing details securely.<\/p><\/dd>\n<dt id=\"how%20do%20i%20get%20my%20stripe%20secret%20api%20key%3F\"><h3>How do I get my Stripe Secret API key?<\/h3><\/dt>\n<dd><p>Log into your Stripe Dashboard, and under \"Developers\" &gt; \"API keys\", you will find the option to copy your Secret API key.<\/p><\/dd>\n<dt id=\"can%20i%20customize%20the%20login%20page%3F\"><h3>Can I customize the login page?<\/h3><\/dt>\n<dd><p>Yes, the plugin allows you to customize the endpoint URL for the login page. You can define this under the settings. Styling settings are coming soon, but for now you can use custom CSS.<\/p><\/dd>\n<dt id=\"is%20the%20stripe%20customer%20portal%20still%20hosted%20by%20stripe%3F\"><h3>Is the Stripe Customer Portal still hosted by Stripe?<\/h3><\/dt>\n<dd><p>Yes. This plugin provides the login page on your WordPress site. After authentication, customers are redirected to Stripe's hosted Customer Portal to manage billing, subscriptions, and payment methods.<\/p><\/dd>\n<dt id=\"how%20does%20the%20magic%20link%20login%20work%3F\"><h3>How does the magic link login work?<\/h3><\/dt>\n<dd><p>Customers enter their email address on your login page. The plugin uses the Stripe API to send a secure, time-limited login link to that email address. The link is valid for 1 hour.<\/p><\/dd>\n<dt id=\"can%20i%20embed%20the%20login%20form%20on%20any%20page%3F\"><h3>Can I embed the login form on any page?<\/h3><\/dt>\n<dd><p>Yes. Use the shortcode <code>[login-stripe-customer-portal]<\/code> to embed the login form on any page or post.<\/p><\/dd>\n<dt id=\"can%20i%20restrict%20login%20to%20existing%20stripe%20customers%20only%3F\"><h3>Can I restrict login to existing Stripe customers only?<\/h3><\/dt>\n<dd><p>Yes. You can optionally restrict access to existing customers or allow new customers to register through the login flow. Configure this in the plugin settings.<\/p><\/dd>\n<dt id=\"does%20this%20plugin%20replace%20stripe%20billing%20or%20woocommerce%3F\"><h3>Does this plugin replace Stripe Billing or WooCommerce?<\/h3><\/dt>\n<dd><p>No. It adds a WordPress login entry point for the Stripe Customer Portal. Your Stripe products, subscriptions, and billing logic remain in Stripe.<\/p><\/dd>\n<dt id=\"where%20can%20i%20find%20documentation%3F\"><h3>Where can I find documentation?<\/h3><\/dt>\n<dd><p>Setup guides and changelog notes are available in our <a href=\"https:\/\/gauchoplugins.gitbook.io\/login-for-stripe-customer-portal-wordpress-plugin\">documentation<\/a>.<\/p><\/dd>\n<dt id=\"where%20can%20i%20get%20support%3F\"><h3>Where can I get support?<\/h3><\/dt>\n<dd><p>Post in the <a href=\"https:\/\/wordpress.org\/support\/plugin\/login-stripe-customer-portal\/\">WordPress.org support forum<\/a> for help with the free plugin.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.6<\/h4>\n\n<p><strong>Security &amp; privacy<\/strong><\/p>\n\n<ul>\n<li>Fix: the Redirect URL setting is now persisted correctly. The 1.0.5 settings form emitted the input under a corrupted name attribute, so saving the Redirect URL silently failed and customers were always returned to the default endpoint.<\/li>\n<li>Fix: magic-link URLs now use the configured Customer Portal slug instead of a hardcoded <code>\/customer-portal<\/code> path. Renaming the endpoint no longer breaks outstanding login emails.<\/li>\n<li>Fix: namespaced <code>catch (Exception $e)<\/code> clauses around the Stripe SDK calls resolved to the nonexistent class <code>LSCP\\Exception<\/code> and never matched. Any Stripe failure now surfaces a graceful \"Please try again later\" message instead of a WSOD.<\/li>\n<li>Hardening: stored magic-link tokens are now SHA-256 hashed at rest. A database snapshot no longer exposes unredeemed login links.<\/li>\n<li>Hardening: per-email + per-IP rate limiter (5 requests \/ 10 minutes) on the magic-link form prevents the page from being abused as a mail relay or as an email-enumeration oracle against your Stripe customer list.<\/li>\n<li>Hardening: the form response is now constant for valid, invalid, and unknown email addresses, and the wording is mode-aware. When \"Only allow existing Stripe customers to login\" is unchecked (default) the message is \"A login link is on its way\" \u2014 no longer the misleading \"If your email address is registered\u2026\" wording, which implied gatekeeping that did not exist in that mode.<\/li>\n<li>Hardening: settings page now explicitly checks <code>manage_options<\/code> before rendering, and every <code>wp_die()<\/code> message is HTML-escaped.<\/li>\n<li>Hardening: Stripe Secret Key input renders a fixed-length mask. The field no longer leaks the real key length via \"view source\".<\/li>\n<li>Hardening: Customer Portal Slug is length-capped (max 64 chars) so a pasted megabyte string can't bloat the rewrite engine.<\/li>\n<li>Hardening: shortcode forms now render with per-instance unique <code>id<\/code> attributes. Embedding the shortcode multiple times on the same page no longer produces duplicate IDs that break <code>&lt;label for&gt;<\/code> binding, HTML5 validation, and screen-reader navigation.<\/li>\n<li>Privacy: plugin uninstall now cleans up every option and transient (registered via Freemius's <code>after_uninstall<\/code> hook so the uninstall feedback survey still fires). The Stripe Secret Key no longer lingers in <code>wp_options<\/code> after the plugin is uninstalled.<\/li>\n<li>Privacy: GDPR personal-data exporter and eraser are registered with WordPress Privacy Tools (Tools \u2192 Export Personal Data \/ Erase Personal Data).<\/li>\n<\/ul>\n\n<p><strong>UX<\/strong><\/p>\n\n<ul>\n<li>Settings page description for the \"Only allow existing Stripe customers to login\" toggle now explicitly notes that unchecking it (the default) auto-creates a Stripe customer the first time a magic link is redeemed for a new email.<\/li>\n<li>Magic-link form input now uses <code>&lt;label for&gt;<\/code>, <code>autocomplete=\"email\"<\/code>, and <code>required<\/code> attributes for screen-reader and password-manager compatibility.<\/li>\n<\/ul>\n\n<p><strong>Reliability &amp; ops<\/strong><\/p>\n\n<ul>\n<li>New daily WP-Cron sweep removes expired magic-link tokens and rate-limit counters. WordPress's built-in transient GC is lazy and can leave expired rows in <code>wp_options<\/code> indefinitely on low-traffic sites.<\/li>\n<li>New WP-CLI commands: <code>wp lscp purge-tokens<\/code>, <code>wp lscp limiter-reset &lt;email&gt;<\/code>, <code>wp lscp send &lt;email&gt;<\/code>, <code>wp lscp config<\/code>.<\/li>\n<li>Full payments-grade test suite \u2014 250 PHPUnit tests, 18,690 assertions, property-based fuzz on the token store, token-entropy distribution check, concurrent-redemption race test, slug path-traversal hardening, email-header injection hardening, multi-instance shortcode ID uniqueness, mode-aware confirmation message.<\/li>\n<\/ul>\n\n<p><strong>Compatibility &amp; internal<\/strong><\/p>\n\n<ul>\n<li>Bumps minimum PHP from 7.0 to 7.4 (PHP 7.0\/7.1\/7.2\/7.3 are end-of-life).<\/li>\n<li>Backwards-compatible public class surface \u2014 every public method on <code>LSCP\\Plugin<\/code> from 1.0.x is preserved.<\/li>\n<li>Plugin refactored into focused units (<code>Settings<\/code>, <code>TokenStore<\/code>, <code>TokenGC<\/code>, <code>StripeGateway<\/code>, <code>Mailer<\/code>, <code>RateLimiter<\/code>, <code>PortalController<\/code>, <code>FormRenderer<\/code>, <code>RewriteEndpoint<\/code>, <code>Shortcode<\/code>, <code>Privacy<\/code>, <code>Cli<\/code>, <code>Uninstall<\/code>, <code>DocsHelper<\/code>).<\/li>\n<\/ul>\n\n<h4>1.0.5<\/h4>\n\n<ul>\n<li>Added contextual documentation links on the Stripe Portal settings page.<\/li>\n<\/ul>\n\n<p>See our full changelog in our <a href=\"https:\/\/gauchoplugins.gitbook.io\/login-for-stripe-customer-portal-wordpress-plugin\">documentation<\/a>.<\/p>","raw_excerpt":"Stripe Customer Portal login for WordPress \u2014 magic-link email authentication, custom login page, and embeddable shortcode.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/sw.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/209577","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/sw.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/sw.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/sw.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=209577"}],"author":[{"embeddable":true,"href":"https:\/\/sw.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/brandonfire"}],"wp:attachment":[{"href":"https:\/\/sw.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=209577"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/sw.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=209577"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/sw.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=209577"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/sw.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=209577"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/sw.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=209577"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/sw.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=209577"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}