Skip to main content
Answer

Disable Purchase for current plan

  • April 23, 2025
  • 3 replies
  • 67 views

James Grote
Forum|alt.badge.img+4

I have a Standard and Premium plan. If a user is sub’d to the Standard plan, how can I show the Standard plan as active and current without the purchase button? I want the user to see all plans, including their current plan. I’m trying to avoid hard-coding a current plan screen in the app.

Best answer by James Grote

Here is my SwiftUI solution. I’m using a TabView to show each available offering (e.g. Standard and Premium), and if the user has one of these offerings, I simply disable that tab and show an offering_copy that shows “Current Offering” text. 

TabView(selection: $currentTab) {
PaywallView(offering: offering1, displayCloseButton: entitlement != entitlement_content).tag(0)
.disabled(entitlement == entitlement_content)
.tabItem {
Label("Standard", systemImage: "star.fill")
}

PaywallView(offering: offering2, displayCloseButton: entitlement != entitlement_content_plus).tag(1)
.disabled(entitlement == entitlement_content_plus)
.tabItem {
Label("Premium", systemImage: "crown.fill")
}

 

This works for now.

 

Hope for something better in the future. Again, the requirement is to show all possible offerings, including the active one which is disabled. Like the CustomerCenter but with actual paywalls.

This post has been closed for comments

3 replies

joan-cardona
RevenueCat Staff
Forum|alt.badge.img+6
  • RevenueCat Staff
  • April 25, 2025

Hi ​@James Grote,

Do you mean to configure the paywall without the plans the user is already subscribed to?

This is something that’s in our roadmap but still not available yet. You can implement Customer Center for that, which the user has the option to change plans and has this behavior out of the box.

 

Best,


James Grote
Forum|alt.badge.img+4
  • Author
  • Helper
  • April 25, 2025

I will try the Customer Center! Thanks!


James Grote
Forum|alt.badge.img+4
  • Author
  • Helper
  • Answer
  • April 29, 2025

Here is my SwiftUI solution. I’m using a TabView to show each available offering (e.g. Standard and Premium), and if the user has one of these offerings, I simply disable that tab and show an offering_copy that shows “Current Offering” text. 

TabView(selection: $currentTab) {
PaywallView(offering: offering1, displayCloseButton: entitlement != entitlement_content).tag(0)
.disabled(entitlement == entitlement_content)
.tabItem {
Label("Standard", systemImage: "star.fill")
}

PaywallView(offering: offering2, displayCloseButton: entitlement != entitlement_content_plus).tag(1)
.disabled(entitlement == entitlement_content_plus)
.tabItem {
Label("Premium", systemImage: "crown.fill")
}

 

This works for now.

 

Hope for something better in the future. Again, the requirement is to show all possible offerings, including the active one which is disabled. Like the CustomerCenter but with actual paywalls.