

Configure checkout pages for products and services.
PublishPress Cart turns your WordPress site into a complete checkout for digital products, online courses, coaching, memberships, events, and services.
Most eCommerce plugins are built for physical stores, with shipping fields, product catalogs, and long checkouts that get in the way when you are selling a course or a coaching package. PublishPress Cart is built for creators, coaches, and small businesses who sell their knowledge and time. Create a product, add a checkout form to any page, and start taking payments with Stripe and PayPal.
Everything stays inside WordPress: your products, checkout pages, orders, subscriptions, customers, and reports. There is no separate storefront to manage, no hosted cart platform, and no monthly fee to PublishPress for selling.
A PublishPress Cart checkout is a regular part of your WordPress site, so it uses your theme, your fonts, and your design.
Give each product as many payment plans as you need, and let buyers choose the option that works for them.
Each product can run its own automations. Choose what triggers them, such as a purchase, a refund, a new subscription, a renewal, a failed payment, a pause, or a cancellation, and limit them to specific payment plans.
PublishPress Cart Pro adds the tools that increase the value of each sale:
See the full Free vs Pro comparison.
PublishPress Cart is based on Studiocart 2.9.0 and is maintained by PublishPress.
PublishPress Cart can connect to third-party services when you enable and configure the related feature. These connections are optional unless you choose the related payment gateway, spam-protection feature, analytics feature, or marketing integration.
If you enter a Meta Pixel ID in the Facebook Ad Events integration, Cart loads Meta Pixel from https://connect.facebook.net on checkout and paid order confirmation pages. Meta receives PageView events and any Cart events you enable, which can include the product ID, price, currency, and an order event ID. Meta Pixel may collect browser and device data and use cookies. A Meta account and a Pixel ID are required for this optional setup. If your site already loads Meta Pixel, Cart can send enabled events to that installation.
Service: https://www.facebook.com/business/tools/meta-pixel
Terms: https://www.facebook.com/legal/technology_terms
Privacy: https://www.facebook.com/privacy/policy/
Stripe is used to process card payments when Stripe is enabled. During checkout, PublishPress Cart sends order, customer, amount, currency, and payment metadata needed to create and confirm Stripe payments. Stripe may return payment, charge, refund, subscription, and webhook event data to the site. When a Stripe publishable key is saved, checkout and product pages also load Stripe.js from https://js.stripe.com/v3/.
Service: Stripe, Inc. Terms: https://stripe.com/legal. Privacy: https://stripe.com/privacy.
The optional Stripe Connect button uses a PublishPress connection service at https://publishpress.com to complete Stripe OAuth. When you start Connect from plugin settings, the plugin sends the site URL, return URL, connection state, and an encrypted site credential needed to finish account linking. PublishPress returns Stripe account identifiers used to process payments. This happens only when you choose Connect Stripe.
When Stripe Connect is used without PublishPress Cart Pro, Stripe applies a 2% application fee on those connected payments. That fee is not applied when PublishPress Cart Pro is active.
Service: PublishPress LLC. Terms: https://publishpress.com/terms-of-service/. Privacy: https://publishpress.com/privacy-policy/.
PayPal is used to process PayPal payments and subscriptions when PayPal is enabled. During checkout and subscription management, PublishPress Cart sends order, customer, amount, currency, subscription, and transaction data needed to create, verify, refund, pause, resume, or cancel PayPal transactions.
Service: PayPal, Inc. Terms: https://www.paypal.com/legalhub/useragreement-full. Privacy: https://www.paypal.com/privacy.
Google reCAPTCHA is used to help validate checkout form submissions when reCAPTCHA is enabled. PublishPress Cart sends the reCAPTCHA response token and the visitor IP address to Google for verification. When a reCAPTCHA site key is saved, checkout forms also load https://www.google.com/recaptcha/api.js from Google.
Service: Google LLC. Terms: https://policies.google.com/terms. Privacy: https://policies.google.com/privacy.
SendFox is used to add buyers to configured mailing lists when the SendFox integration is enabled. PublishPress Cart sends subscriber and order-related data required by the configured integration, such as email address, name, and selected list information.
Service: SendFox / Sumo Group, Inc. Terms: https://sendfox.com/tos. Privacy: https://sendfox.com/privacy.
ActiveCampaign is used to sync buyers to configured lists and tags when the ActiveCampaign integration is enabled. PublishPress Cart sends subscriber and order-related data required by the configured integration, such as email address, name, and selected list or tag information.
Service: ActiveCampaign, LLC. Terms: https://www.activecampaign.com/legal/terms-of-service. Privacy: https://www.activecampaign.com/legal/privacy-policy.
Mailchimp is used to sync buyers to configured audiences, groups, or tags when the Mailchimp integration is enabled. PublishPress Cart sends subscriber and order-related data required by the configured integration, such as email address, name, audience, group, and tag information.
Service: The Rocket Science Group LLC d/b/a Mailchimp. Terms: https://mailchimp.com/legal/terms/. Privacy: https://www.intuit.com/privacy/statement/.
Kit is used to sync buyers to configured forms and tags when the Kit integration is enabled. PublishPress Cart sends subscriber and order-related data required by the configured integration, such as email address, name, selected form, selected tag, and mapped custom field information.
Service: ConvertKit LLC d/b/a Kit. Terms: https://kit.com/terms. Privacy: https://kit.com/privacy.
MemberVault is used to grant buyer access to configured products when the MemberVault integration is enabled. PublishPress Cart sends customer and product access data required by the configured integration, such as email address, name, and selected MemberVault product information.
Service: MemberVault. Terms: https://membervault.co/terms. Privacy: https://membervault.co/privacy.
When analytics or ads tracking integrations are enabled, PublishPress Cart can output the tracking data needed for purchase and lead events, such as order amount, currency, product information, and transaction identifiers. These services are only used when you configure the related tracking IDs or settings.
Google terms: https://policies.google.com/terms. Google privacy: https://policies.google.com/privacy.
Meta terms: https://www.facebook.com/legal/terms. Meta privacy: https://www.facebook.com/privacy/policy/.
Human-readable Gutenberg sources ship in this plugin. The files in includes/integrations/gutenberg/build/ are minified with npm and @wordpress/scripts 35.0.0, which runs webpack.
To rebuild them, use Node.js 20.19 or newer on the 20 line, or Node.js 22.13 or newer. From the plugin directory:
npm install @wordpress/[email protected]npx wp-scripts build includes/integrations/gutenberg/blocks/checkout-form/order-form.js includes/integrations/gutenberg/blocks/account-page-builder/account-blocks.js includes/integrations/gutenberg/blocks/account-page-builder/account-page-view.js --output-path=includes/integrations/gutenberg/buildA development checkout that includes package.json can run npm install and then npm run build:gutenberg for the same output. npm run start:gutenberg rebuilds those files while you edit.
includes/integrations/gutenberg/blocks/checkout-form/order-form.js builds includes/integrations/gutenberg/build/order-form.js.includes/integrations/gutenberg/blocks/account-page-builder/account-blocks.js builds includes/integrations/gutenberg/build/account-blocks.js.includes/integrations/gutenberg/blocks/account-page-builder/account-page-view.js builds includes/integrations/gutenberg/build/account-page-view.js.Shared helpers are under includes/integrations/gutenberg/blocks/_shared/.