Conversation
Third-party plugins get an Ultra price (Gold $70, Silver $35, Bronze $20) for buyers with an active Ultra subscription. The seller keeps all of what the buyer pays on those sales. Everyone else sees the Ultra price advertised on third-party plugin pages. Payouts on every plugin and bundle sale are now worked out from what the buyer actually paid after promotion codes and coupons, instead of the listed price. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What this does
Third-party plugins get a cheaper price for Ultra subscribers: $70 for Gold, $35 for Silver and $20 for Bronze. That's about 70% of the regular price. On those sales we take no platform fee, so the seller keeps everything the buyer pays.
Everyone else sees a card on third-party plugin pages: "Get this plugin for $70 with Ultra". It links to the Ultra page. Ultra subscribers see the regular price struck through and the Ultra price in the purchase box instead.
It also changes how payouts are worked out when a promotion code or coupon is used. Sellers are now paid their share of what the buyer actually paid, not of the listed price. That applies to every plugin and bundle sale, Ultra or not.
How it works
ultraprice tier. Ultra prices are rows inplugin_prices, created from the plugin's pricing tier the same way the regular price is. A migration adds them for existing third-party plugins that have a tier.hasActiveUltraSubscription()is true. Team members without their own subscription pay the regular price, which matches how team pricing already works.plugin_licenses.price_tiercolumn. A sale at the Ultra tier gets a 0% platform fee whatever the developer'spayout_percentageis.payouts:backfillfollows the same rule.HandleInvoicePaidJobworks out what was paid from the discount Stripe reports on each invoice line. It finds the line by name, so checkout now names plugin and bundle lines withCartItem::getItemName(). If it can't find the line (the webhook only carries the first 10) it shares the invoice discount in proportion and rounds down, so payouts for one invoice can't add up to more than the charge.price_paidon a plugin license is now the amount after discounts.Other changes
/ultraand the Ultra dashboard page.Things to check
hasActiveUltraSubscription()doesn't recognise the old Max price ID that is hard-coded inSubscription::fromStripePriceId(), thoughhasUltraAccess()does. Anyone still on that price won't get the Ultra price.HandleInvoicePaidJob, which the course checkout fix also changes.Tests
New tests cover who gets the Ultra price, the prices each tier creates, the cart and checkout, the payout split, promotion codes on Ultra, regular and bundle sales, the backfill command, the migration, the plugin page card and the admin screens. Full suite: 2055 passed, 1 skipped.
I also checked the pages in a browser as a guest and as an Ultra subscriber, and confirmed how Stripe reports per-line discounts with a read-only invoice preview in test mode.
🤖 Generated with Claude Code