PaddlePress PRO is a licensing and membership management plugin designed to integrate with the Paddle. It provides seamless handling of licenses, domains, memberships, and downloadable items. This documentation outlines its components and how they work together to manage subscriptions and provide a smooth user experience.
Database Structure #
PaddlePress uses 2 database tables {$wpdb->prefix}paddlepress_payments and {$wpdb->prefix}paddlepress_domains. Payments table keeps the latest information about the payment and domains table hold the licensed domains if the software licensing enabled.
Workflow #
Membership #
Memberships manage the connection between Paddle price IDs and user purchases. When you start using PaddlePress, the first step is to create membership plans corresponding to the relevant Paddle price IDs (for Paddle Billing) or product/plan IDs (if you are using Paddle Classic). These plans define the access and logic associated with your products.
- The membership status is determined by the payment status (
status
inwp_paddlepress_payments
). Active payments result in active memberships, while canceled or expired payments deactivate the memberships. - Recurring subscriptions are managed automatically using Paddle webhooks. When a payment renewal is processed or a subscription is canceled, the membership status is updated in real-time based on webhook notifications from Paddle.
By establishing membership plans linked to Paddle price IDs, PaddlePress ensures seamless management of licenses, domains, and downloadable items for your users.
Payment and License Creation #
- When a user completes a payment via Paddle or manually a new payment added for a user, a record is created in the
wp_paddlepress_payments
table. - A unique
license_key
is generated and stored in the table, linking the license to the payment.
Domain Management #
- Licensed domains are managed in the
wp_paddlepress_domains
table. - Each domain entry references a
payment_id
to connect it to the corresponding license and payment record. - Domains can be marked as development (
dev_domain = 1
) or production.
(Domains table only important when software licensing is enabled)
Downloadable Items #
Users can download items tied to their membership and license. This is managed through:
- Validating the
license_key
against the payment record. - Ensuring the user is in good standing (active status and valid expiry date).
Use Case Scenarios #
New Subscription: #
- User makes a payment via Paddle.
- A user account created and then payment record is added in
wp_paddlepress_payments
. - A license key is generated and activated.
- The user can associate licensed domains via the dashboard. (or API)
Domain Management: #
- Users add domains to their license via the dashboard.
- Domains are stored in the
wp_paddlepress_domains
table. - Development domains can be flagged to allow testing environments. (this is controlled with preferences)
Membership Renewal: #
- Paddle’s recurring payment system renews the membership.
status
andexpiry_date
inwp_paddlepress_payments
are updated accordingly.