Giter VIP home page Giter VIP logo

restrict-with-stripe's Introduction

WordPress Plugin Downloads Travis (.org) License

Welcome to the Restrict With Stripe GitHub Repository

Restrict With Stripe integrates your website with Stripe to sell access to restricted posts, pages, categories, and tags.

Restrict With Stripe is Open Source Software

Restrict With Stripe is distributed under the GPLv2 license. This means, among other things, that you may use the software on any site free of charge.

Installation

Download, Install and Activate!

  1. Go to Plugins > Add New to find and install Restrict With Stripe.
  2. Or, download the latest version of the plugin, then go to Plugins > Add New and click the "Upload Plugin" button to upload your .zip file.
  3. Activate the plugin.

Complete the Initial Plugin Setup

Go to Settings > Restrict With Stripe in the WordPress admin to begin setup.

  1. Connect to Stripe: Integrate your site with Stripe.
  2. Create Products in Stripe: Create a product for each post, page, category, or tag that you want to sell access to.
  3. Add Restrictions to Site Content: Restrict access to content you want to sell.
  4. Link to Stripe Customer Portal: Link users to their payment history and let them manage their subscriptions.
  5. Customize Advanced Settings: Customize the plugin to fit the needs of your specific site.

Bugs

If you find an issue/bug, let us know by creating a detailed GitHub issue.

Support

This is a developer's portal for Paid Memberships Pro. We do not offer support on this channel. Any support related questions should be directed to the WordPress support forum.

restrict-with-stripe's People

Contributors

dparker1005 avatar ideadude avatar kimcoleman avatar github-actions[bot] avatar

Stargazers

Singh avatar Niq Fury avatar

Watchers

James Cloos avatar  avatar  avatar

restrict-with-stripe's Issues

FEATURE: Integrate with reCAPTCHA

Eventually, spam user creation will become an issue. This would be our first step to combat it.

Down the line, integrating with a social login plugin instead of having an email/password signup form could be both a feature and decrease spam further.

Feature Request: Support "Customer chooses price" pricing model

In Stripe, products can be set up where customers choose the price that they pay. This would be a great feature for RWS to take advantage of, but we currently receive the following issue when trying to register for that kind of price:
Error creating checkout session. You can only specify 1 line item when specifying a price with "custom_unit_amount" configured. Specify a single line item with a quantity of 1.

The reason for this is that when we create a checkout session for a one-time payment price (which "customer chooses price" is considered), we also create a $0 subscription in the same Checkout session. This is because a user's access is determined by whether they have an active subscription for a product.

Until it is possible to have both a free subscription and a "customer chooses price" product in a single checkout session, supporting that pricing model would require a substantial shift in how RWS works.

TypeError: undefined is not an object (evaluating 'e.metaValue.includes')

On a completely new site with WP 6.6.1 and RWS 1.0.9, when visiting the post and page editor (for both new and existing posts), I'm getting the following error: "The editor has encountered an unexpected error." with the following JS error reported in the console:

TypeError: undefined is not an object (evaluating 'e.metaValue.includes')

error

which appears to be coming from this part of the editor sidebar component:

checked={ props.metaValue.includes( product.id ) }

which is probably due to the generated restricted_product_ids post meta not being an array for the current post.

Allow linking user to existing Stripe Customer

Some sites already have a Stripe account where they have been selling subscriptions and may want to link their existing Customers to WordPress users. Right now, this would involve updating metadata in the database directly.

It would be nice to:

  1. On the Add User page, allow setting a Customer ID
  2. Allow editing the Stripe Customer ID on the Edit User page

Upgrade path to PMPro

RWS works great for sites that just want to monetize their content, but what happens when such a site grows and needs other membership features? Ideally, those sites would have a way to "upgrade" to PMPro to have access to all of its add ons and integrations.

In order for this migration to work, the following steps would need to be taken:

  • Create a PMPro membership level for each Stripe product
  • For each user, check if they have subscriptions in Stripe. If so, give them the corresponding PMPro membership with an expiration date for the next payment date if the sub is not free. In the RWS Stripe account, pause collection so that they are not charged again
  • For each piece of content that is restricted by RWS, restrict it to the corresponding PMPro levels

From there, sites can simply deactivate RWS and complete setup for PMPro WITH A NEW STRIPE ACCOUNT. All RWS data (including Stripe subscriptions) will remain intact in case something goes wrong with the migration.

Drawbacks:

  • Users with paid RWS subscriptions would need to check out again in PMPro at the end of their current payment period
  • If users have multiple RWS subscriptions, MMPU would be needed on PMPro site

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.