514 produtos atualizados nos últimos 7 dias

Changelog do Paid Memberships Pro

O que mudou em cada versão, da mais recente para a mais antiga. As notas são as publicadas pelo desenvolvedor, no idioma original.

  • Mais recente 3.9.1 · 10 nov 2026
  • 292 versões
  • Desde abr 2017

2026

20 versões

Versão 3.9.1

Mais recente
5 melhorias 10 correções 1 reforço de segurança Assinar para baixar a versão 3.9.1

Melhoria

  • Added the pmpro_send_email and pmpro_send_email_{template} filters to stop specific emails from sending, and the order_id variable to the Billing Failure emails. #3932 (@kimcoleman)
  • CSV exports now start with a UTF-8 byte order mark so Excel on Windows shows accented characters correctly. Use the pmpro_csv_export_include_bom filter to turn it off. #3947 (@andrewlimaza)
  • Site Health now shows each level's subscription delay and set expiration date settings. #3953 (@dparker1005)
  • The Default Value setting for date user fields now notes that dates use the YYYY-MM-DD format. #3934 (@flintfromthebasement)
  • The deprecated gateway migration tool now links to its own documentation page. #3927 (@kimcoleman)

Correção

  • Checkout is now blocked with an error when a level's or discount code's set expiration date or subscription delay is a fixed date that has already passed. An admin notice on PMPro admin pages lists the affected levels. #3948 (@dparker1005)
  • WooCommerce's "Retain inactive accounts" setting no longer deletes users with any membership history, and a note under the setting explains this. #3939 (@andrewlimaza)
  • Upgrading from a version before 3.9 now deletes settings left behind by the Subscription Delays and Set Expiration Dates Add Ons when the site is no longer using them, so old delays and expiration dates do not return at checkout. A copy is kept in the pmpro_upgrade_3_9_retired_date_settings option. #3952 (@dparker1005)
  • Fixed duplicate rows in large Members and Orders CSV exports when a batch was written twice, such as after a timeout or when two requests processed it at once. #3938 (@flintfromthebasement)
  • Fixed the Logins report CSV export repeating rows and failing with a database error on sites with more users than fit in one batch. #3945 (@theluckystrike)
  • Fixed the Export to CSV button not responding after an export failed to start. The error message is now shown on the button. #3930 (@dparker1005)
  • Fixed the Export to CSV button offering or returning an export started with different filters than the current Members List or Orders page. #3931 (@dparker1005)
  • Cancelling a Stripe Checkout payment now returns to checkout with the checkout link's arguments, such as a discount code, still applied. #3940 (@dparker1005)
  • Fixed the pmpro_updated_subscription action never running. Saving an existing subscription fired pmpro_added_subscription instead, which now only runs when a subscription is created. #3944 (@dparker1005)
  • Fixed a typo in the deprecated pmpro_paypalexpress_session_vars_for_user_fields function that PHP compatibility scanners flagged. #3925 (@dparker1005)

Segurança

  • Users who cannot edit users can no longer save a working [pmpro_member] shortcode by adding HTML that is removed on save or by nesting the shortcode inside its own name. #3951 (@dparker1005, @kta1kri)

Versão 3.9

7 novidades 29 melhorias 19 correções 10 reforços de segurança Assinar para baixar a versão 3.9

Novidade

  • Merged the Subscription Delays Add On into core. The new First Recurring Payment setting on levels and custom pricing discount codes can delay the first recurring payment by a number of days or until a date set with a date pattern. #3630 (@dparker1005, @kimcoleman)
  • Merged the Set Expiration Dates Add On into core. Levels and custom pricing discount codes can expire memberships on a date set with a date pattern. #3630 (@dparker1005, @kimcoleman)
  • Added percentage and fixed amount discount code types alongside the existing per-level custom pricing. The discount is calculated from each level's current pricing and can apply to the initial payment, recurring payments, or both, while the billing cycle, trial, and expiration come from the level. #3727 (@dparker1005)
  • Added a migration tool for deprecated gateways, opened from the "Migrate Subscriptions Off This Gateway" button on the gateway's Payment Settings page. It recreates active subscriptions at Stripe (or sets the memberships to expire), can email members, cancels the old gateway subscriptions, and supports a dry run. A final step deletes the gateway's stored API credentials and stops loading the gateway; orders and subscriptions are kept. #3700 (@dparker1005)
  • Added WordPress Abilities API support (WordPress 6.9+) for querying membership levels, orders, subscriptions, and PMPro search results, and for viewing, changing, and cancelling a member's memberships. Abilities are available over the REST API and to MCP clients through an MCP adapter plugin. #3736, #3757 (@mircobabini, @dparker1005)
  • Added a wp pmpro WP-CLI command set for memberships, members, levels, orders, and subscriptions, and the pmpro_cli_init action for Add Ons to register their own commands. #3740, #3757 (@flintfromthebasement, @dparker1005)
  • Added /pmpro/v1/memberships, /pmpro/v1/orders, and /pmpro/v1/subscriptions REST API collection endpoints with filtering, sorting, and pagination. #3740, #3757 (@flintfromthebasement, @dparker1005)

Melhoria

  • The Subscription Delays and Set Expiration Dates Add Ons are now automatically deactivated and can no longer be activated. Their saved settings are used as-is, their filters still run, and their helper functions remain as deprecated wrappers. Custom code that removed the Add Ons' own hook callbacks no longer has any effect. #3630 (@dparker1005)
  • Added an "Awaiting Payment Method" filter and tag on the Subscriptions list, an admin notice, and a Membership Account page notice for subscriptions migrated to Stripe that have no payment method on file. The default Recurring Payment Reminder email now asks these members to add a payment method. #3700 (@dparker1005)
  • Added the "Deprecated Gateway Stripe Migration" and "Deprecated Gateway Checkout Required" email templates, shown on sites that still use a deprecated gateway. #3700 (@dparker1005)
  • The "Update Billing Info" links on the Membership Account and Billing pages no longer require the subscription to have an order. The Billing page link now only shows for subscriptions on the active gateway when that gateway supports payment method updates, matching the Membership Account page. #3700 (@dparker1005)
  • Added the pmpro_deprecated_gateway_batch_size filter to set how many subscriptions the deprecated gateway migration processes per batch. #3700 (@dparker1005)
  • Added a captcha to the login and lost password forms, including wp-login.php, when reCAPTCHA or Cloudflare Turnstile is enabled. The captcha is only shown after a failed login or other suspicious activity from the visitor's IP address in the last 15 minutes. #3765 (@dparker1005)
  • Replaced the separate reCAPTCHA and Cloudflare Turnstile settings with a single Captcha setting on the Security Settings page, so only one captcha runs at a time. Existing settings carry over, and sites that had both enabled now use reCAPTCHA. Added the pmpro_captcha_services filter for registering other captcha services. #3765 (@dparker1005)
  • Added the pmpro_login_form_before_submit_button action and the pmpro_authenticate_login_checks, pmpro_login_forms_handler_message, and pmpro_login_forms_handler_msgt filters to the login flow. #3765 (@dparker1005)
  • A failed payment at checkout or on the Update Billing page now requires a new reCAPTCHA or Cloudflare Turnstile check before the next attempt. Thanks to Freelance Studio for the report. #3885, #3887 (@dparker1005)
  • Membership Account page now shows when a membership's latest payment is past due and shows a card for memberships with a pending checkout that is waiting on payment. #3714 (@kimcoleman, @dparker1005)
  • Added the pmpro_membership_account_after_pending_level_card_content action for adding content to a pending membership card on the Membership Account page. #3714 (@kimcoleman, @dparker1005)
  • Added an optional Advanced Setting to automatically delete abandoned checkout users (Potential Spam Checkouts) after 30 days. Users with any membership history, users who can edit posts, and users who have written posts are never deleted. Added the pmpro_abandoned_signup_deletion_days filter to change the retention period. #3737, #3901 (@dparker1005)
  • Added Status, Usage and Level filters to the Discount Codes admin page. #3896 (@dparker1005)
  • Added a date filter (All Time, Last 7 Days, Last 30 Days, Last 12 Months, or a custom range) to the Email Log report. #3692 (@dwanjuki)
  • The Email Log now records the file names of email attachments and shows them in the log details and the personal data exporter. #3773 (@faisalahammad)
  • Added the {{ billing_update_url }} email template variable to the Payment Failure email and linked to the Billing page in its default body. #3892 (@dparker1005)
  • The Admin Activity Email now reports active members and active memberships as separate numbers when they differ. #3768 (@flintfromthebasement, @dparker1005)
  • Added Product/Offer JSON-LD structured data for membership levels on the levels page, the checkout page, and pages using the Single Membership Level block. It can be turned off with the Structured Data setting on the Advanced Settings page, and developers can customize it with the new pmpro_structured_data_* filters. #3735 (@flintfromthebasement, @dparker1005)
  • Added an optional Level Image setting on the edit level page, used as the product image in membership level structured data. #3735, #3906 (@flintfromthebasement, @dparker1005)
  • Added Elementor v4 (atomic elements) support to PMPro content restriction controls. Added the pmpro_elementor_atomic_element_types filter to change which atomic elements support restriction. #3709 (@dparker1005)
  • Added a new pmpro_view_as capability so the "View As" toolbar in the admin bar can be granted to roles that should not have manage_options. #3786 (@faisalahammad)
  • Added the pmpro_memberslist_sortable_columns and pmpro_memberslist_sql_join filters and made the First Name and Last Name columns sortable in the Members List. #3805, #3902 (@faisalahammad, @dparker1005)
  • Improved Members List performance for the default and single-level views by no longer grouping rows when each row is already one member and level. Added the pmpro_members_list_group_rows filter so custom code that adds joins through pmpro_members_list_sql can turn grouping back on. #3833 (@flintfromthebasement)
  • Added the pmpro_is_page function to safely check PMPro pages, with optional shortcode and block detection for custom pages. #3810 (@faisalahammad, @dparker1005)
  • Added screen reader announcements to the Liquid autocomplete in the email template editor. #3819 (@kimcoleman, @RachelRVasquez, @dparker1005)
  • Reworded checkbox labels on the Edit Membership Level and Edit Discount Code screens to describe what each setting does. #3874 (@dparker1005)
  • Added pmpro_build_settings_fields and related helpers for building admin settings screens from field arrays, and converted most core settings screens to use them. #3721 (@dparker1005)
  • Added the pmpro_get_memberships function, an offset argument for MemberOrder::get_orders, and offset and return_count arguments for PMPro_Subscription::get_subscriptions. #3736, #3740 (@mircobabini, @flintfromthebasement)
  • Settings screens built with the new field helpers show and hide dependent rows with a data-pmpro-depends attribute instead of inline scripts. The Advanced Settings Hide Ads setting's ID changed from pmpro-hideads to hideads, the pmpro_updateHideAdsTRs JavaScript function was removed, and the Recurring Subscription, Custom Trial, Membership Expiration, and Disable New Signups checkboxes on the Edit Membership Level screen now submit 1 instead of yes. #3721 (@dparker1005)

Correção

  • Date patterns now resolve consistently for subscription delays and set expiration dates. Day 29-31 patterns use the last day of shorter months, a pattern that lands on today moves to its next occurrence instead of a year later, and monthly expiration patterns use the current month when the day has not passed yet, as in Set Expiration Dates 0.7 and earlier. #3630 (@dparker1005)
  • Fixed the frontend Change Password form changing passwords that contain certain characters (such as "<", a "%" code like "%41", or repeated spaces) before saving them, which locked the member out. #3857 (@dparker1005)
  • Fixed the frontend Edit Profile form removing backslashes from saved names. #3858 (@dparker1005)
  • Fixed values containing quotes being saved or sent with extra backslashes on the frontend Update Billing page, the Payment Settings page, and the Edit Order screen. #3829 (@dparker1005)
  • Fixed the User Fields settings page deleting all saved fields when the submitted settings could not be read. #3829 (@dparker1005)
  • Fixed a fatal error when the reCAPTCHA verification request to Google fails with a network error. #3765 (@dparker1005)
  • Fixed the Billing page losing the selected subscription when redirecting a logged-out member to log in. #3892 (@dparker1005)
  • Fixed the Admin Activity Email counting memberships that belong to deleted users and merging membership levels that share the same name. #3768 (@flintfromthebasement, @dparker1005)
  • Fixed the Members per Level report counting a member more than once when they had duplicate active rows for the same level, and showing outdated counts after a user was deleted. #3768 (@flintfromthebasement, @dparker1005)
  • Fixed Members List pages repeating or skipping members who share the same registration date. #3833 (@flintfromthebasement)
  • The Stripe webhook now answers 503 instead of 200 when it can't retrieve an event because of a connection error, rate limit, Stripe server error, or an authentication or permission error (such as a revoked API key), so Stripe sends the event again and the failure shows in the Stripe dashboard. #3890 (@terminalstate)
  • With async Stripe webhook processing on, a scheduled run that can't retrieve the event from Stripe now tries again up to five times instead of dropping the event. #3898 (@terminalstate)
  • Fixed an issue where a Stripe payment that failed or needed authentication and was later paid could create a duplicate order and send the "Payment Failure" or "Payment Action Required" emails. This was most likely when Stripe webhooks are processed asynchronously. #3897 (@dparker1005)
  • Fixed an issue where the email greeting used the original recipient's name when an email template had a custom To address. #3854 (@faisalahammad)
  • Fixed a fatal error when calling the deprecated pmpror_recurring_emails or pmpror_recurring_emails_legacy functions. They now queue reminder emails via Action Scheduler. #3900 (@dparker1005)
  • Usage tracking no longer treats production sites whose hostnames start with "stage" or "localhost" followed by other letters (such as stagecoach.com) as development sites, and now treats hostnames that start with dev, stage, test, or testing followed by a dash or number (such as dev-2.example.com) as development sites. #3894 (@flintfromthebasement)
  • Fixed MemberOrder::get_order returning the site's newest order instead of the matching order when passed an order code. MemberOrder::get_orders now supports a code argument. #3908 (@dparker1005)
  • Fixed PUT and PATCH requests to the discount_code REST API endpoint not updating existing discount codes, and fixed the billing_limit and expiration values sent for levels being saved incorrectly. #3910 (@dparker1005)
  • Stripe subscription cancellation errors are now recorded in the notes on the subscription's most recent order, and an error while looking up open invoices no longer leaves the Stripe subscription active without notifying the admin. #3923 (@dparker1005, @ashwaniarya)

Segurança

  • Improved escaping and SQL query preparation throughout the plugin. #3827 (@dparker1005)
  • Added direct file access protection to plugin files. #3828 (@dparker1005)
  • Improved request input handling and redirect safety throughout the plugin. #3829 (@dparker1005)
  • The Authorize.net gateway now verifies TLS certificates when connecting to Authorize.net. #3916 (@dparker1005)
  • The 2Checkout gateway now verifies TLS certificates when sending API requests. #3917 (@dparker1005)
  • The [pmpro_member] shortcode is now also removed from newly added post meta saved by users who cannot edit users. #3921 (@dparker1005)
  • The REST API order endpoint now only includes order notes for users with the pmpro_orders capability. #3918 (@dparker1005)
  • Values in the members, orders, and logins report CSV exports that start with a spreadsheet formula character are now prefixed with a single quote so they are not run as formulas. #3922 (@dparker1005)
  • The admin redirect for missing members, orders, subscriptions, discount codes, and levels now only runs for users who can access the Memberships menu. #3920 (@dparker1005)
  • The Billing page now redirects to the Membership Account page when the requested subscription does not exist. #3919 (@dparker1005)

Versão 3.8.9

4 melhorias 23 correções 1 reforço de segurança Assinar para baixar a versão 3.8.9

Melhoria

  • Added the pmpro_account_profile_list_items filter to customize the profile items on the Membership Account page. The Username and Email items now also have their own CSS classes. #3870 (@dparker1005)
  • Added edit and view page buttons to the Terms of Service setting. #3881 (@dparker1005)
  • Applying an empty discount code at checkout now shows an error message. #3866 (@dparker1005)
  • When an admin refund fails, the notice now includes the payment gateway's error message. #3883 (@dparker1005)

Correção

  • Fixed the membership required message showing twice on restricted content when Elementor and Yoast SEO are both active. #3879 (@dparker1005)
  • Restricted Elementor widgets are no longer rendered as empty styled containers for users without access. #3875 (@dparker1005)
  • Fixed the level confirmation message losing its paragraph formatting in checkout emails. #3861 (@dparker1005)
  • Fixed the default "More Information" heading not showing for the checkout_boxes field group, and the pmpro_default_field_group_label filter being ignored. #3859 (@dparker1005)
  • Fixed a deprecation notice when using the pmpro_default_field_group_label filter. The legacy pmprorh_section_header filter is now the one flagged as deprecated. #3888 (@dparker1005)
  • Textarea user field values now keep their line breaks when displayed. #3878 (@dparker1005)
  • Fixed [pmpro_account] shortcode attributes being ignored when the same page also has a [pmpro_account] shortcode or Membership Account block without attributes. #3877 (@dparker1005)
  • PMPro page settings are now cleared when the assigned page is trashed or deleted, and restored if the page is restored from the trash. #3872 (@dparker1005)
  • Page Settings no longer shows edit and view buttons for an assigned page that isn't published. #3886 (@dparker1005)
  • Renew links and the redirect for already-submitted orders now use the pmpro_level URL parameter instead of level. #3876 (@dparker1005)
  • Gateway cancellations now cancel memberships for members whose level is hidden by the pmpro_has_membership_level filter, such as unconfirmed Email Confirmation members. #3867 (@dparker1005)
  • Gateway cancellations for deleted users are no longer logged as errors. #3882 (@dparker1005)
  • Fixed fatal errors when checkout email or password fields were submitted as arrays. #3855 (@dwanjuki)
  • Recurring levels now save a billing cycle number of at least 1. #3865 (@dparker1005)
  • Deleting an order now also deletes its order meta. #3869 (@dparker1005)
  • Deleting an order now keeps all Orders list filters, sorting and the current page. #3868 (@dparker1005)
  • Paginating or sorting after deleting a discount code or order no longer repeats the delete request. #3863 (@dparker1005)
  • The personal data exporter now shows array user meta as readable text instead of serialized data. #3860 (@dparker1005)
  • Fixed a PHP warning in pmpro_has_membership_access when the post doesn't exist. #3862 (@dparker1005)
  • Failed AJAX and REST API logins no longer redirect to the login page. #3864 (@dparker1005)
  • The Logins report now tracks visits after a member logs in or out. #3871 (@dparker1005)
  • The membership section and Edit Member link are now hidden on Network Admin user profiles. #3880 (@dparker1005)
  • Updated the GPL license link on the License page. #3856 (@dparker1005)

Segurança

  • Fixed an issue where a failed Cloudflare Turnstile check allowed later checkout and billing update submissions in the same session to skip the security check. #3884 (@dparker1005, Freelance Studio)

Versão 3.8.8

1 melhoria 7 correções 4 reforços de segurança Assinar para baixar a versão 3.8.8

Melhoria

  • Pending checkout uploads are now deleted when their order is deleted. #3847 (@dparker1005)

Correção

  • Fixed a fatal error when changing membership levels while WP Fusion Lite is active but not connected to a CRM. #3834 (@andrewlimaza)
  • Checkout now stops with an error when the chosen username could not be used to log in, instead of silently saving a different username. #3837 (@faisalahammad)
  • Fixed the file field Delete button showing to all users when allow_delete was set to admins. #3847 (@dparker1005)
  • Fixed user field file uploads being rejected when the file extension's case did not match the field's allowed file types. #3850 (@dparker1005)
  • Fixed a PHP warning and a missing file extension on temporary upload files for checkouts that are completed later, such as Stripe Checkout and PayPal Express. #3851 (@dparker1005)
  • Fixed export downloads failing when a plugin filters random_password to add special characters to generated passwords. #3849 (@dparker1005)
  • Stripe webhooks no longer try to update a subscription's application fee on sites using API keys, which logged failed requests in Stripe. #3852 (@flintfromthebasement)

Segurança

  • Files uploaded through user fields are now stored in uniquely named folders, and are deleted when the user is deleted. #3847 (@dparker1005, @GrayOM)
  • Fixed restricted post excerpts showing in RSS feeds, embeds, and the Post Excerpt block when "Show Excerpts to Non-Members" is off. #3853 (@dparker1005, @Feldspar-AI-Agent)
  • The member edit screen's User Info panel now requires permission to edit the specific user being edited, and only accepts a password when creating a new user. #3835 (@dparker1005)
  • User fields can no longer save to the user meta key that stores roles and capabilities. #3848 (@dparker1005)

Versão 3.8.7

4 melhorias 12 correções 7 reforços de segurança Assinar para baixar a versão 3.8.7

Melhoria

  • Added a Stripe connection test to the payment settings page that checks daily and on demand whether Stripe and the Paid Memberships Pro Connect server can be reached and whether Stripe accepts the saved keys, with an admin notice when a key is rejected. #3792 (@dparker1005)
  • Added additional PHP file extensions to the default extension blocklist for the getfile script. #3798 (@dparker1005, @kta1kri)
  • Members List username row actions now use the same markup as the other PMPro list tables. #3817 (@kimcoleman)
  • Deprecated PMPro_AddOns::http_request_args_for_addons, which no longer changes request arguments. #3831 (@dparker1005)

Correção

  • Connecting to Stripe now refuses to overwrite an existing connection with a different Stripe account. #3792 (@dparker1005)
  • The Stripe webhook notice no longer reports a missing webhook when Stripe is actually rejecting the saved credentials. #3792 (@dparker1005)
  • Refunding an order whose charge was already refunded in the Stripe dashboard now marks the order as refunded instead of failing. #3811 (@dparker1005)
  • Fixed Stripe webhook errors for charge.failed and charge.refunded events when another plugin loads an older version of the Stripe library. #3796 (@faisalahammad)
  • Guest comments no longer show the post author's PMPro avatar. #3822 (@flintfromthebasement)
  • Membership managers can now print order invoices. #3807 (@faisalahammad)
  • The Pay by Check gateway description now reflects that orders are marked as paid at checkout, and links to the Pay by Check Add On for manual payment approval. #3802 (@faisalahammad)
  • Fixed quotes in email template variable descriptions showing as HTML entities in the editor autocomplete. #3818 (@dparker1005)
  • The required asterisk is now shown only once on radio user fields. #3795 (@faisalahammad)
  • Fixed the styling of the Export to CSV button on admin list pages when it is rendered as a button. #3824 (@kimcoleman)
  • Expanded rows in the Orders, Members, Subscriptions, and Discount Codes list tables now take the full table width on mobile. #3816 (@faisalahammad, @kimcoleman)
  • The PMPro admin banner no longer overlaps the Screen Options and Help tabs on small screens, and list table row actions are tidied on mobile. #3815 (@kimcoleman)

Segurança

  • Fixed a REST API authorization bypass where route capability checks were case-sensitive while WordPress routes are not. #3823 (@andrewlimaza, @kta1kri)
  • PayPal Express, Website Payments Pro, Payflow Pro, and PayPal Standard API requests now verify PayPal's SSL certificate. #3830 (@dparker1005, @kta1kri)
  • PayPal gateway error messages for invalid API responses no longer include the API request, which contained the merchant's API credentials. #3830 (@dparker1005, @kta1kri)
  • Add On downloads from the license server no longer skip SSL verification and are now always requested over HTTPS. #3831 (@dparker1005, @kta1kri)
  • Fixed an issue where the Orders admin search could be used to modify the database query. #3825 (@dparker1005)
  • Added nonce checks to the license key form, usage tracking opt-in links, Stripe Connect fee acknowledgement, and several admin notice links. #3826 (@dparker1005)
  • Added a missing capability check to the Setup Wizard save handler so it only runs for users with the pmpro_wizard capability. #3784 (@faisalahammad)

Versão 3.8.6

3 melhorias 5 correções Assinar para baixar a versão 3.8.6

Melhoria

  • Changed the "Edit Membership" button on the Edit Member memberships panel to "Update Membership" to make it clear that it saves the level change. #3781 (@flintfromthebasement)
  • The password visibility toggle now shows only the eye icon in the log in widget and on narrow screens so the field label and the toggle no longer wrap into each other. #3769 (@kimcoleman)
  • Wisdom tracking data now reports whether the site is running on PMPro Hosting. #3770 (@dparker1005)

Correção

  • Stripe Connect sites now refresh the platform publishable key from Paid Memberships Pro instead of using the key saved during the initial connection forever, so onsite checkout keeps working after the platform key is rotated. #3791 (@flintfromthebasement)
  • Liquid tags that the visual email template editor wrapped in paragraph tags no longer produce empty or unbalanced paragraphs in sent emails. #3782 (@dparker1005)
  • The 3.8.4 upgrade script no longer fires order update hooks (e.g. Zapier) for every order whose Stripe transaction IDs were recovered. #3790 (@dparker1005)
  • Fixed the Stripe Connect environment lookup in has_connect_credentials so that Site Health checks the credentials for the active gateway environment, and avoided a PHP notice after a failed Stripe Connect disconnect response. #3777 (@flintfromthebasement)
  • The "Error:" prefix in Stripe Connect failure notices now renders in bold instead of as literal HTML. #3774 (@flintfromthebasement)

Versão 3.8.5

1 melhoria 1 correção 3 reforços de segurança Assinar para baixar a versão 3.8.5

Melhoria

  • Removed the notices on the Stripe payment settings recommending the deprecated Add PayPal Express Add On. #3751 (@flintfromthebasement)

Correção

  • Guarded the pmpro_setMessage calls in PMPro_AddOns so that activating Paid Memberships Pro while the Update Manager Add On is active no longer causes a fatal error. #3763 (@dparker1005)

Segurança

  • Fixed an issue where the payment amount was not re-verified after Strong Customer Authentication (3D Secure) in the Stripe on-site checkout. #3767 (@proxydom)
  • Fixed an access check bypass in the getfile service that could allow protected files to be served through admin-ajax.php without a membership access check. #3762 (@dparker1005)
  • Added missing capability and nonce checks to several admin AJAX and service handlers. #3758 (@flintfromthebasement)

Versão 3.8.4

1 melhoria 3 correções Assinar para baixar a versão 3.8.4

Melhoria

  • Added new --pmpro--btn--border-radius, --pmpro--btn--top-bottom-padding, and --pmpro--btn--left-right-padding CSS variables so that button styles can be customized separately from other elements that share the base variables. #3747 (@RachelRVasquez)

Correção

  • Fixed an issue where Stripe Checkout orders paid with delayed notification payment methods such as SEPA Direct Debit could be completed without their subscription and payment transaction IDs, which prevented membership cancellations from being sent to Stripe. An upgrade script now recovers the missing IDs for previously affected orders. #3745 (@dparker1005)
  • Fixed an issue where a user field could be shown at checkout even though its field group was hidden from checkout if the field overrode the group's profile visibility setting. #3744 (@dparker1005)
  • Fixed an issue where duplicate recurring scheduled tasks, such as those inherited from a cloned or migrated database, would run simultaneously indefinitely. Duplicate chains are now cancelled automatically, keeping the earliest scheduled task. #3746 (@dalemugford)

Versão 3.8.3

3 melhorias 6 correções Assinar para baixar a versão 3.8.3

Melhoria

  • Site Health now detects the PMPro SMTP Add On as the site's email sending service when a connector is configured. #3729 (@dparker1005)
  • Added translator comments to localized strings containing placeholders so translators have context for each variable. #3730 (@jahidhasan018)
  • The discount code lookup in PMPro_Discount_Code::save now uses $wpdb->prepare. #3734 (@andrewlimaza)

Correção

  • Multi-value user fields (multiselect, select2, and grouped checkboxes) now display correctly when their values were imported from a CSV file as a comma-separated string. #3742 (@flintfromthebasement)
  • Fixed a fatal error that could occur when returning from an offsite gateway if the checkout data was missing from the order meta. #3741 (@dparker1005)
  • Fixed PMPro core and Add Ons never auto-updating in the background because the update hooks were only registered on admin_init, which does not fire during WP-Cron where automatic updates run. #3738 (@dalemugford)
  • Set new_version on no_update entries so up-to-date Add Ons no longer trigger an undefined property warning in WP-CLI and other consumers of the plugin update transient. #3738 (@dalemugford)
  • The bulk user delete confirmation screen now counts membership history for every selected user instead of only the first. #3733 (@jahidhasan018)
  • The level group selection message is no longer shown on the Membership Levels page for groups that contain only one level. #3731 (@jahidhasan018)

Versão 3.8.2

4 correções 2 reforços de segurança Assinar para baixar a versão 3.8.2

Correção

  • Read-only user fields are no longer saved on form submission and are now escaped when displayed. This also fixes read-only checkbox and select field values being erased on profile update. #3726 (@dparker1005)
  • Fixed broken CSV exports when an exported value contained a quotation mark. #3716 (@dwanjuki)
  • Fixed checkout failures that could occur when the matching Stripe price had been archived in the Stripe dashboard. #3717 (@flintfromthebasement)
  • Fixed an issue where users with the pmpro_reports capability could not view email content in the Email Log popup. #3718 (@dwanjuki)

Segurança

  • Restored sanitization of user field values on save, which had been inactive since v3.4. #3726 (@dparker1005)
  • The Authorize.net Silent Post handler now requires Authorize.net API credentials to be configured on the site. #3724 (@dparker1005)

Versão 3.8.1

3 melhorias 6 correções Assinar para baixar a versão 3.8.1

Melhoria

  • Added a new style attribute to the [pmpro_checkout_button] shortcode to render it as a link or a button, and improved its styling. #3708 (@kimcoleman)
  • Improved the HTML validity and accessibility of frontend forms and pages, including fixing duplicate id attributes and invalid fieldset/legend markup. #3707 (@kimcoleman)
  • Added a new pmpro_restrictable_taxonomies filter, allowing Add Ons to register custom taxonomies whose terms can be restricted by membership level from the term edit screen. #3704 (@kimcoleman)

Correção

  • Fixed a fatal error on the Membership Billing page when a subscription's gateway object could not be loaded. #3706 (@kimcoleman)
  • Fixed the Members List CSV export so the exporting admin is no longer incorrectly included when exporting filtered or searched results. #3711 (@andrewlimaza)
  • Fixed a 404 error when viewing email log details in the modal on sites using Plain permalinks. #3712 (@dwanjuki)
  • Fixed select fields overflowing the viewport on small screens. #3705 (@kimcoleman)
  • Saving a membership level no longer clears term restrictions, such as tag restrictions, that were set from the term edit screen. #3704 (@kimcoleman)
  • Restricted posts are now correctly hidden from searches and archives when a term's ID and term taxonomy ID differ. #3704 (@kimcoleman)

Versão 3.8

2 novidades 9 melhorias 7 correções

Novidade

  • Upgraded the email template editor to the standard WordPress visual/text editor with built-in Liquid syntax autocomplete for variables, tags, and filters. #3695 (@dparker1005)
  • Added a new [pmpro_membership_level] shortcode for displaying membership level details. #3087 (@kimcoleman)

Melhoria

  • Added Divi 5 compatibility for PMPro module-level restrictions and no-access message handling. #3620 (@JarrydLong)
  • Added a new level_group_id email template variable to every email template class that exposes membership_id. #3684 (@kimcoleman)
  • Allowed shortcodes in the account page message. #3682 (@kimcoleman)
  • Removed the misleading "Advanced Settings" hint from the no-access message controls. #3699 (@dparker1005)
  • Clarified the user field meta key hint on the user field settings page. #3698 (@kimwhite)
  • Added an Add On icon for the MemberPress Migration Toolkit. (@kimcoleman)
  • Removed unused pmpro_userfields_get_group and pmpro_userfields_get_field AJAX handlers. #3672 (@dparker1005)
  • Deprecated the credit card expiring email template. #3688 (@dparker1005)
  • The Membership Billing page no longer writes pmpro_b* user meta on save, and the email field has been removed from that page. #3668 (@dparker1005)

Correção

  • Now hiding the recurring trial settings on membership level and discount code edit pages when the active gateway doesn't support recurring trials. #3628 (@dparker1005)
  • Added a fallback for email logging when SMTP plugins (e.g. Gravity SMTP) bypass the wp_mail_succeeded and wp_mail_failed actions. #3697 (@andrewlimaza)
  • Cleaned up orphaned membership level relationships when a level is deleted. #3693 (@dparker1005)
  • No longer shows the membership confirmation message when the order has not been confirmed. #3682 (@kimcoleman)
  • Fixed a fatal error on the Membership Billing page for logged-out requests. #3694 (@flintfromthebasement)
  • Fixed the Orders list table appearing blank on mobile by setting the order code as the default primary column. #3696 (@dparker1005)
  • Cleared stale card information when a recovered Stripe payment uses a non-card payment method. #3703 (@dparker1005)

Versão 3.7.4

4 correções Assinar para baixar a versão 3.7.4

Correção

  • Skip the pmpro_visit cookie when WP_CACHE is active so page caches like Surge, Cloudflare, Varnish, and WP Super Cache aren't bypassed on anonymous front-end requests. Added a new pmpro_set_visit_cookie filter to override the default behavior. #3690 (@flintfromthebasement)
  • Fixed Stripe recurring orders silently saving tax = 0 after the Stripe API version bump by deriving tax from invoice->total_excluding_tax instead of the deprecated invoice->tax. #3685 (@dwanjuki)
  • Fixed Site Health reporting a false-positive Action Scheduler library conflict on Windows hosts by normalizing the library path before the conflict check. #3687 (@dparker1005)
  • Fixed button icons no longer being inline in the WordPress 7.0 admin and the "Show" label floating to the right of the levels dropdown on the Members List screen. #3689 (@RachelRVasquez)

Versão 3.7.3

4 melhorias 6 correções 2 reforços de segurança

Melhoria

  • Added new action hooks to the subscriptions panel of the Edit Member screen and the single subscription view. #3666 (@kimcoleman)
  • Added nonce checks to read-only admin AJAX handlers (pmpro_orders_print_view, pmpro_get_order_json, login_report_csv, sales_report_csv, membership_stats_csv) for consistency with other admin AJAX endpoints. #3673 (@dparker1005)
  • Added the new pmpro_use_advisory_locks filter as a system-wide escape hatch to disable MySQL advisory locking on hosts where persistent MySQL sessions or other environment quirks cause stuck locks. #3649 (@dparker1005)
  • Replaced the vague "Stripe dashboard settings" wording with a direct link to the Stripe Radar rules page in the billing address field description. #3677 (@dparker1005)

Correção

  • Prevented concurrent Stripe webhook deliveries from racing on the same order by introducing a MySQL advisory lock around webhook processing. This fixes cases where "at least once" Stripe delivery from multiple infrastructure nodes could create duplicate membership rows or cancel a freshly-created subscription. #3649 (@dparker1005)
  • Fixed the Old Members CSV export to exclude users who currently have any active membership, matching the logic already used by the expired and cancelled filters. #3680 (@dwanjuki)
  • Fixed a PHP warning and a missing payment transaction ID when Stripe checkout sessions complete asynchronously (e.g. Bank Transfer), where the PaymentIntent has no latest_charge at completion time. #3655 (@dwanjuki)
  • Honored the configured currency decimals in pmpro_get_price_info 's amount_string so zero-decimal currencies (JPY, KRW, VND, UAH, ALL) no longer produce strings like "25.00" that PayPal billing rejects. Also fixed pmpro_get_currency so it actually honors the $currency parameter it advertises. #3676 (@dparker1005)
  • Allowed updating billing for subscriptions without a successful order on file, so manually-linked subscriptions in the admin no longer redirect users away from the billing page. #3667 (@dparker1005)
  • Fixed the Restricted Files protection self-test reporting "Unable to determine" on sites with no member uploads, by writing a non-dotfile marker (pmpro-protection-test.txt) alongside the existing .htaccess. #3675 (@dalemugford)

Segurança

  • Added a nonce check to the Update Billing Information page to prevent CSRF, and tightened the gate so enforcement only skips on sites explicitly opted into a pre-3.7.3 custom billing template. The billing template version has been bumped to 3.7.3. #3671 (@dparker1005)
  • Tightened the checkout page nonce enforcement gate so it only skips on sites explicitly opted into a pre-3.0 custom checkout template, closing a gap where sites with a pre-3.0 custom checkout.php in their theme could bypass nonce checks without opting in. #3674 (@dparker1005)

Versão 3.7.2

6 melhorias 6 correções 3 reforços de segurança Assinar para baixar a versão 3.7.2

Melhoria

  • Reworked the Email Settings and Security Settings admin pages to detect the active email sending method and security provider, surface that information in Site Health, recognize PMPro Max as a provider, and remove the legacy built-in SendWP integration. #3656 (@kimcoleman)
  • Renamed the Builder and Plus Add Ons to Max throughout the admin and labeled all paid Add Ons under the new Premium license tier. #3650 (@dparker1005)
  • Added the new PayPal Gateway Add On to the Payment Gateway settings page, surfacing it as "Enabled (via Add On)" when active as a secondary gateway. #3657 (@dparker1005)
  • Added new filters for avatar upload location and render location to support multisite installations. #3648 (@kimcoleman)
  • Updated the Design Settings page link to a direct URL so tracking parameters work without a redirect. #3625 (@kimwhite)
  • Added/updated Add On icons including a new MailerLite icon for an upcoming Add On. #3627, #3652 (@kimcoleman)

Correção

  • Fixed three bugs that caused member CSV export downloads to return 403/404: deferred export record cleanup until after the file is served, extended download token TTL to 7 days and hardened the URL builder when no token is available, and prevented zero-record exports from creating a ghost "complete" state. Introduced the pmpro_restricted_file_served action and buffered handler output to avoid corrupting the response. #3637 (@dalemugford)
  • Fixed a deprecated pmpro_changeMembershipLevel call when deleting a WP user. #3660 (@kimwhite)
  • Fixed deprecation notices in pmpro_cleanPhone when the phone value is null. #3654 (@dwanjuki)
  • Fixed the All Levels member export producing duplicate rows and omitting members with higher user IDs in large exports. #3632 (@flintfromthebasement)
  • Fixed the checkbox_grouped field input not receiving the correct CSS selectors. #3646 (@kimcoleman)
  • Skipped content visibility controls for unsupported blocks in widget editors to prevent JS errors. #3653 (@dwanjuki)

Segurança

  • Tightened ownership check in the /pmpro/v1/order REST permission callback to bail early for anonymous requests, require a non-empty order ID, and use a strict integer comparison. #3643 (@flintfromthebasement)
  • Scoped the /pmpro/v1/quick_search users meta lookups to custom profile fields by skipping internal WP/plugin meta keys. Added the pmpro_rest_api_quick_search_meta_key_blocklist filter so sites can extend the blocklist. #3644 (@flintfromthebasement)
  • Fixed a non-functional capability guard in PMPro_Field_Group::save_fields where a literal string comparison made the current_user_can( 'edit_user' ) check unreachable. #3645 (@flintfromthebasement)

Versão 3.7.1

2 melhorias 2 correções Assinar para baixar a versão 3.7.1

Melhoria

  • Deprecated the PayPal Express gateway. PayPal is retiring the NVP/SOAP API that PayPal Express relies on. A new PayPal integration is coming soon. #3622 (@dparker1005)
  • Renamed the Website Payments Pro gateway slug from paypal to paypalwpp to free the paypal slug for the upcoming PayPal REST API Add On. #3622 (@dparker1005)

Correção

  • Fixed some admin pages not saving due to POST redirect in list table referer cleanup. #3624 (@kimcoleman)
  • Fixed PHP 8.1 deprecation warnings in restricted files functions on Windows servers with misconfigured upload directories. #3623 (@flintfromthebasement)

Versão 3.7

4 novidades 21 melhorias 6 correções Assinar para baixar a versão 3.7

Novidade

  • Added native profile picture (avatar) support, allowing members to upload custom avatars managed entirely within PMPro instead of relying on Gravatar. #3597 (@ideadude)
  • Added a Quick Search feature for navigating Memberships admin pages. #3563 (@dparker1005)
  • Added Liquid-style template rendering for email bodies with support for variables, filters, and conditionals. #3584 (@dparker1005)
  • Added email logging for all emails sent by PMPro. The new pmpro_should_log_email filter can be used to enable email logging for non-PMPro emails as well. #3573, #3581 (@dparker1005)

Melhoria

  • Added sidebar filter panels for the orders and subscriptions admin pages with support for level, status, date range, discount code, gateway, and total filters. #3602 (@dparker1005)
  • Added To, CC, and BCC settings to the Email Templates editor. #3588 (@kimcoleman)
  • Members and orders CSV exports now use Action Scheduler for improved reliability on large datasets. #3543 (@dalemugford)
  • Added optional Action Scheduler support for deferrable webhook events. #3589 (@dparker1005)
  • Added Site Health critical issue notification when plugins are using incorrect folder names. #3553 (@andrewlimaza)
  • Added a restricted directory check to detect and report issues with the protected files directory. #3557 (@dalemugford)
  • Improved support for reCAPTCHA v3 with score validation, defaulting to 0.5 and customizable via the pmpro_recaptcha_v3_min_score filter. #3564 (@andrewlimaza)
  • Adjusted the Update Billing page to no longer automatically redirect away to the account page. #3566 (@andrewlimaza)
  • Updated the Subscriptions admin screens to match the orders admin screens for view, edit, and link styling. #3568 (@kimcoleman)
  • Removed use of the deprecated SQL_CALC_FOUND_ROWS modifier across all queries. #3571 (@dparker1005)
  • Consolidated membership signup and cancellation queries for improved performance on dashboard reports. #3574 (@dparker1005)
  • Now caching the Members Per Level report for improved dashboard performance. #3580 (@dparker1005)
  • Added membership_id as a default column in the Members List CSV export. #3604 (@andrewlimaza)
  • Now supporting light-dark values for contextual message CSS custom properties. #3606 (@kimcoleman)
  • Added PMPro icon to the admin menu and updated the top menu bar to use an icon with screen reader text. #3607 (@kimcoleman)
  • Refactored the Stripe webhook handler into a new PMPro_Stripe_Webhook_Handler class. #3589 (@dparker1005)
  • Removed unused test scripts. #3600 (@dparker1005)
  • Marked the Subscription Check Add On as deprecated on the Add Ons page. #3601 (@dwanjuki)
  • Reading webhook status via pmpro_doing_webhook is now deprecated. Use pmpro_doing_webhook( $gateway, true ) for write mode only. #3603 (@dparker1005)
  • The pmpro_before_members_list_csv_export and pmpro_after_members_list_csv_export actions are deprecated and no longer fired. #3543 (@dalemugford)
  • Removed bundled core translation files to reduce the shipped plugin package size. #3605 (@dparker1005)

Correção

  • Updated the checkout form submit handler to improve reliability of payment processing. #3545 (@dwanjuki)
  • Updated the capability check for viewing admin user fields to use pmpro_edit_members. #3561 (@dparker1005)
  • Fixed dependencies for the content visibility block component to prevent enqueue issues. #3538 (@dparker1005)
  • Fixed a default height prop warning in block editor components. #3540 (@dwanjuki)
  • Fixed a console warning in WordPress 6.3+ by moving block asset enqueuing to the enqueue_block_assets hook. #3549 (@andrewlimaza)
  • Fixed slashed level names displaying with backslashes in the setup wizard. #3617 (@dparker1005)

Versão 3.6.6

2 correções 2 reforços de segurança Assinar para baixar a versão 3.6.6

Correção

  • Fixed an operator precedence bug causing corechart.js to load on all report pages. #3609 (@flintfromthebasement)
  • Fixed an "Attempt to read property ID on null" warning in display post states. #3599 (@dwanjuki)

Segurança

  • Added capability and nonce checks to Stripe webhook AJAX management endpoints. #3615 (@dparker1005)
  • Added shared-secret token validation for the deprecated Authorize.net ARB Silent Posts integration with a configurable pmpro_authnet_silent_post_token option in gateway settings. #3598 (@dparker1005)

Versão 3.6.5

5 melhorias 6 correções 1 reforço de segurança Assinar para baixar a versão 3.6.5

Melhoria

  • Updated links to the Member Directory and Podcasting Use Case landing pages and hubs. #3593 (@kimcoleman)
  • Added a new pmpro_memberships_widget_periods filter to allow customizing the time periods shown in the Memberships Report widget. (@kimcoleman)
  • Added a new icon for the PMPro Kit Add On. #3575 (@kimcoleman)
  • Now clearing the object cache when user fields are created, updated, or deleted to ensure changes show immediately when using persistent object caching. #3565 (@dalemugford)
  • Updated the WP Fusion Lite integration through v3.47.6. #3583 (@dparker1005)

Correção

  • Now ignoring PayPal error code 11556 when cancelling a subscription that is already inactive to avoid unnecessary admin notifications. #3572 (@dparker1005)
  • Fixed an issue where the field group description was not showing due to an incorrect variable reference. #3591 (@mircobabini)
  • Fixed an issue where failed Stripe recurring payment orders were missing card info and billing address data. #3590 (@dparker1005)
  • Fixed an issue where the membership level billing amount could be recalculated incorrectly when processing checkout via webhook, potentially losing discount code pricing. #3585 (@dparker1005)
  • Fixed an issue where the timestamp for new orders created in the admin could default to 1970 when the site timezone is not UTC. #3582 (@dparker1005)
  • Resolved PHP 8.5+ deprecation warnings for non-canonical cast names. #3560 (@dwanjuki)

Segurança

  • Gated the unverified Stripe webhook event fallback behind a new pmpro_stripe_webhook_allow_unverified_post_event filter, which defaults to false. #3592 (@dparker1005)

Versão 3.6.4

3 melhorias 2 correções Assinar para baixar a versão 3.6.4

Melhoria

  • Adding a new !!order_url!! email template variable to checkout email templates. #3555 (@kimcoleman)
  • Now limiting failed payment emails to be sent a maximum of once daily per subscription. #3552 (@dparker1005)
  • Now cleaning up library conflict records that are older than 7 days. #3554 (@dalemugford)

Correção

  • Discount codes now expire at the end of the date set as the "Expiration Date" instead of at the start of that date. #3559 (@dparker1005)
  • Now ignoring Stripe charge.failed webhook events for subscriptions that have already been cancelled in Stripe which could interfere with processing the subsequent customer.subscription.deleted webhook event. #3556 (@dparker1005)

2025

20 versões

Versão 3.6.3

4 correções 1 reforço de segurança Assinar para baixar a versão 3.6.3

Correção

  • Updated membership actions to run more frequently to improve support for hourly memberships. #3547 (@andrewlimaza)
  • Improved the styling for nested .pmpro_card elements. #3539 (@kimcoleman)
  • Fixed the HTML structure when displaying image-type file fields to improve appearance. #3537 (@kimcoleman)
  • Corrected the links shown for the Stripe Tax setting. #3546 (@dwanjuki)

Segurança

  • No longer prepopulating the password field on the checkout page after a failed checkout attempt. #3551 (@dparker1005)

Versão 3.6.2

3 melhorias 3 correções Assinar para baixar a versão 3.6.2

Melhoria

  • Stripe subscriptions will no longer be created with an application fee or will have the fee immediately removed when the initial payment is complete. Application fees will then be added per-invoice during the invoice.created webhook to ensure that fees are only charged when PMPro is actively managing the subscription. #3535 (@dparker1005)
  • Updated the Stripe webhook handler to remove application fees from existing subscriptions over time during the invoice.upcoming webhook event. This helps to ensure that websites that have stopped using Stripe Connect will not be charged the 2% application fee. #3535 (@dparker1005)
  • Updated the PayPal IPN handler to use the add_order_note method when adding the IPN ID to an order. #3534 (@dparker1005)

Correção

  • Restored fallback logic for pulling billing addresses from Stripe customer objects and previous PMPro orders when a Stripe recurring payment is received without a billing address set on the payment method. #3533 (@dparker1005)
  • Fixed an issue where correcting data in fields with validation errors did not clear the error border from the input. #3531 (@andrewlimaza)
  • Fixed an issue where the Edit Member sidebar may not show the correct user field panels after changing a user's membership level. #3532 (@dparker1005)

Versão 3.6.1

3 melhorias 5 correções Assinar para baixar a versão 3.6.1

Melhoria

  • Now showing TOS Consent information on the admin "View Order" page. #3520 (@kimcoleman)
  • Added a new helper method add_order_note to the MemberOrder class. #3524 (@dparker1005)
  • Added icons for WP Activity Log and WP Fusion Lite. #3521 (@andrewlimaza)

Correção

  • Now updating the next payment date for subscriptions when there is a failed payment. #3526 (@dparker1005)
  • Fixed an issue where post restrictions could not be removed when using the classic editor. #3530 (@dparker1005)
  • Fixed an issue where page contents would not load in the Beaver Builder editor if the post is restricted. #3529 (@dparker1005)
  • Fixed an issue where plus characters in usernames may be converted into spaces when shown in login page error messages. #3519 (@andrewlimaza)
  • Fixed a deprecation warning when installing Add Ons from the Membership > Add Ons screen. #3525 (@andrewlimaza)

Versão 3.6

1 novidade 16 melhorias 9 correções Assinar para baixar a versão 3.6

Novidade

  • Added compatibility with WP Fusion Lite. #3461 (@jarrydlong)

Melhoria

  • Added a new admin “view order” page before the “edit” step. #3467 (@kimcoleman)
  • Now saving orders in pending status when a Stripe or PayPal recurring payment fails. #3491 (@dparker1005)
  • Now updating the email address for customers in Stripe when the corresponding user is updated in WordPress. #3454 (@dparker1005)
  • General improvements to the Add Ons page including filters for active and inactive Add Ons. #3488 (@dalemugford)
  • Now automatically adjusting the content-disposition header for restricted files based on the file type. #3473 (@andrewlimaza)
  • Added a new filter pmpro_restricted_file_content_disposition to dynamically adjust the content-disposition header for restricted files. #3473 (@andrewlimaza)
  • Added a new filter pmpro_order_action_links to allow modifying the action links when viewing an order on the frontend. #3465 (@dparker1005)
  • Added a new action pmpro_after_updating_post_level_restrictions to run code after the level restrictions for a post is updated. #3462 (@dparker1005)
  • Now repairing membership-based course enrollments when LifterLMS courses are saved while streamline is enabled. #3462 (@dparker1005)
  • Now removing membership-related LifterLMS engagement triggers when streamline is enabled. #3439 (@kimcoleman)
  • Updated Stripe API version to 2025-09-30.clover. #3459 (@dparker1005)
  • Improved styling of “file” type user fields. #3498 (@kimcoleman)
  • Added a new function pmpro_get_gateway_nicename to retrieve a gateway's nicename by its slug. #3508 (@andrewlimaza)
  • Added abstracted functions for processing recurring successful and failed payments during webhook/IPN handlers. #3491 (@dparker1005)
  • Created a new class PMPro_AddOns for managing Add Ons. #3488, #3497 (@dalemugford)
  • Added an abstracted function pmpro_update_post_level_restrictions for setting the level restrictions for a post. #3462 (@dparker1005)

Correção

  • Fixes member list exports including “expired” in the file name when exporting “old members”. #3500 (@andrewlimaza)
  • Added Brazil to the list of countries that do not allow Stripe Connect application fees. #3490 (@dparker1005)
  • Optimized queries when showing “old members” on the Members List. #3494 (@dparker1005)
  • Now hiding links from the Account page if the linked page is not set. #3516 (@dparker1005)
  • Now saving the Stripe invoice ID as the PMPro order’s payment transaction ID whenever an invoice is generated in Stripe. #3464 (@dparker1005)
  • Fixed an issue where incorrect tax values may be set on orders when using Stripe Checkout. #3489 (@dparker1005)
  • Adding back the !!membership_id!! email template variable to the “admin_cancel” email template. #3503 (@kimcoleman)
  • Fixed localization in the email header and footer templates. #3492 (@dwanjuki)
  • Fixed an issue where LifterLMS access plans meta boxes may still show when streamline is enabled. #3439 (@kimcoleman)

Versão 3.5.6

1 melhoria 4 correções Assinar para baixar a versão 3.5.6

Melhoria

  • Added styles for frontend tables with data filter options. #3482 (@kimcoleman)

Correção

  • Fixed an issue where a generic error message may be shown at checkout instead of the intended error message. #3483 (@JarrydLong)
  • Fixed an issue where recurring PayPal Express payments would not be recorded in PMPro if the associated subscription did not already have orders present on the site. #3484 (@dparker1005)
  • Fixed an issue where PayPal subscriptions may remain in "paused" status after being marked as cancelled in PMPro. #3485 (@dparker1005)
  • Fixed an issue where Stripe application fees could be updated for invoices that did not originate from PMPro subscriptions. #3487 (@dparker1005)

Versão 3.5.5

4 melhorias 4 correções Assinar para baixar a versão 3.5.5

Melhoria

  • Improved readability of order notes by adding line breaks before appending data via automated processes. #3480 (@kimcoleman)
  • Added formatting for the Polish zloty currency. #3478 (@warnaa)
  • Updated the Gocodebox_Banner_Notifier library and prefixed the class with PMPro_ to avoid plugin conflicts. #3474 (@dparker1005)
  • Moved some compatibility code from the PMPro_Action_Scheduler class to separate compatibility files. #3475 (@dalemugford)

Correção

  • Fixed performance issues that may occur when the plugin is in "pause mode". #3476 (@dparker1005)
  • Fixed an issue where some admin banners could not be dismissed. #3472 (@dparker1005)
  • Resolving a PHP warning that may show when deactivating the plugin. #3475 (@dalemugford)
  • Corrected the description for the Credit Card Expiring email template. #3471 (@kimwhite)

Versão 3.5.4

7 correções Assinar para baixar a versão 3.5.4

Correção

  • Now marking restricted Elementor content as "dynamic content" to prevent it from being cached by Elementor. #3469 (@andrewlimaza)
  • Fixed an issue where "Payment Reminder" emails may go out daily depending on the site's set timezone. #3463 (@dalemugford)
  • Fixed an issue where some restricted Elementor data may not have successfully migrated after the PMPro v3.5 update. #3466 (@dparker1005)
  • Fixed an issue where the "Rebuild Webhook" button on the Stripe Payment Settings page would not create a new webhook. #3457 (@dparker1005)
  • Fixed an issue where PMPro checkouts would not complete if the Stripe Checkout session was set to "no_payment_required" status. #3458 (@johnorourke)
  • Fixed an issue where PayPal subscriptions may be set to "paused" status instead of "cancelled" after recurring payments are suspended due to failed payments. #3468 (@dparker1005)
  • Fixed a PHP deprecation warning that may show when updating billing information. #3460 (@dparker1005)

Versão 3.5.3

6 melhorias 7 correções Assinar para baixar a versão 3.5.3

Melhoria

  • Added a new !!renew_url!! email template variable to expiration and cancellation email templates. #3448 (@kimcoleman)
  • Extended the checkout spam protection setting to also protect the login form. #3450 (@ideadude)
  • Added a startdate column to the Members List CSV export. #3443 (@dparker1005)
  • Changed the name of the "Membership Recurring" email template to "Recurring Payment Reminder". #3451 (@kimwhite)
  • Added an "Action Scheduler Health" section to the PMPro Site Health report. #3453 (@dalemugford)
  • Now cleaning up PMPro Action Scheduler scheduled tasks when the plugin is deactivated or uninstalled. #3440 (@dalemugford)

Correção

  • Now avoiding cases where duplicate PMPro Action Scheduler scheduled tasks may be created. #3444 (@dalemugford)
  • Fixed an issue where the Admin Activity Email would not be sent. #3441 (@dalemugford)
  • Fixed an issue where "Recent Members" metabox may not show correctly on websites using custom database table prefixes. #3442 (@dparker1005)
  • Fixed an issue where an incorrect level name may be sent in renewal emails when level for the associated subscription had changed. #3449 (@dparker1005)
  • Fixed an issue where sorting columns on the Subscriptions List Table would not work when a search term was set. #3447 (@dparker1005)
  • Fixed a rare plugin conflict that could prevent Elementor data from completing the migration included in PMPro v3.5. #3445 (@dparker1005)
  • Fixed an issue where Wisdom data would only ever be sent on the first day of each month. #3446 (@dparker1005)

Versão 3.5.2

5 correções

Correção

  • Fixed an issue where members may receive multiple recurring payment reminder emails for the same payment. #3437 (@mircobabini)
  • Fixed an issue where gateway settings may not show for some gateways. #3436 (@dparker1005)
  • Fixed an issue where "Recent Members" metabox may not show correctly on websites using custom database table prefixes. #3434 (@jeiseman)
  • Fixed a PHP error that would occur when the postnot_in parameter of WP_Query is not an array. #3438 (@dparker1005)
  • Added back a missing argument for the deprecated pmpro_email_template filter. #3432 (@dparker1005)

Versão 3.5.1

2 melhorias 2 correções

Melhoria

  • Added caching to the pmpro_getMembershipCategories function to improve performance. #3421 (@dalemugford)
  • Optimized the query used to retrieve the list of members to show in the Members List table. #3413 (@dalemugford, @dparker1005)

Correção

  • Removed code added in 3.5 that would slow down the query to retrieve the list of members to show in the Members List table. #3430 (@dparker1005)
  • Fixed an issue where the subscription ID may not be shown in some Stripe webhook log messages. #3429 (@dwanjuki)

Versão 3.5

3 novidades 17 melhorias 9 correções

Novidade

  • Now using Action Scheduler to handle scheduled tasks. #3393 (@dalemugford)
  • Now allowing files to be restricted using the new pmpro_can_access_restricted_file filter. This is currently used to ensure that log files generated during gateway webhook handlers can only be viewed by administrators. #3308 (@dparker1005)
  • Added content restriction settings when using Bricks Builder. #3342 (@MaximilianoRicoTabo)

Melhoria

  • Added additional widgets to the Memberships > Dashboard page and updated the layout to be more customizable. #3412 (@dalemugford)
  • Updated the Memberships > Settings > Payments settings page UI to have a separate page for each gateway. #3398 (@dparker1005, @kimcoleman)
  • Updated orders search to support searching by specific properties using [property]:[value]. #3382 (@kimcoleman)
  • Now adding the option to automatically install the Update Manager during the setup wizard. #3411 (@dalemugford)
  • Updated the content restrictions in Elementor to match how restrictions are set in the block editor. #3144 (@MaximilianoRicoTabo)
  • Now encoding the pmpro_last_known_url option to improve compatibility between "pause mode" and site migrations. #3400 (@mircobabini)
  • Now allowing linking to a filtered result via URL parameters on the Memberships > Add Ons page. #3377 (@kimcoleman)
  • Now supporting showing information from level meta when using the [pmpro_member] shortcode. #3276 (@kimcoleman)
  • Added new functions pmpro_get_countries and pmpro_get_default_country to avoid relying on global variables. #3353 (@dparker1005)
  • Added new hooks pmpro_added_subscription and pmpro_updated_subscription. #3357 (@mircobabini)
  • Added a new filter pmpro_deprecated_gateways to allow developers to filter the list of deprecated gateways. #3404 (@dparker1005)
  • Updated the PMPro_Email_Template class to streamline the process of sending test emails for each email template. #3340 (@MaximilianoRicoTabo)
  • Updated Wisdom data sharing to be an opt-out system. This will not change the selected option for existing sites. #3411 (@dalemugford)
  • Added a new pmpro_no_download parameter to CSV exports to prevent downloading the CSV file during Toolkit tests. #3417 (@dalemugford)
  • Now using the Gocodebox_Banner_Notifier class to display banner notifications. #3399 (@brianhogg)
  • No longer using crons for scheduled tasks and removed the /scheduled/ directory. #3393 (@dalemugford)
  • Marked the pmpro_set_application_fee_percentage filter and the reduced Stripe application fee as deprecated. #3403 (@dparker1005)

Correção

  • Now syncing application fees with Stripe before recurring payments are charged to ensure that fees reflect whether the site has an active license key. #3403 (@dparker1005)
  • Improved accessibility for the hidden honeypot field on the checkout page. #3416 (@andrewlimaza)
  • Now using a MutationObserver instead of the deprecated DOMSubtreeModified event to detect changes to the checkout message container. #3386 (@getjohn)
  • Improved the error message wording for subscriptions with the level ID set to 0. #3359 (@mircobabini)
  • Now trimming whitespace for user field options where only the value is provided. #3379 (@mircobabini)
  • Now avoiding extra whitespace in the payment description sent to PayPal Express. #3414 (@JarrydLong)
  • Fixed an issue where membership expiration emails may show the incorrect level name for users who have multiple levels. #3347 (@MaximilianoRicoTabo)
  • Fixed a PHP error on the sales reports page and fixed some closing HTML tags that did not match. #3406 (@mircobabini)
  • Fixed an issue where application fees were not set correctly when setting up Stripe subscriptions. #3358 (@mircobabini)

Versão 3.4.7

4 correções

Correção

  • Now explicitly setting the Stripe API version when processing Stripe webhook events. #3409 (@dparker1005)
  • Fixed an issue where recurring Stripe orders may not be recorded on sites connecting with API keys if the Stripe account was created or its API version was updated after 2025-03-31 (Stripe API version 2025-03-31.basil or later). #3409 (@dparker1005)
  • Fixed an issue where membership levels could be moved to the first level group when using the search function on the Membership Levels settings page. #3407 (@dparker1005)
  • Fixed an issue where users may not receive cancellation emails after a PayPal subscription is cancelled due to failed payments. #3395 (@dparker1005)

Versão 3.4.6

1 correção

Correção

  • Fixed fatal error related to redefining pmpro_getAddonBySlug when activating PMPro Core with the PMPro Update Manager active. (@ideadude)

Versão 3.4.5

3 melhorias 10 correções

Melhoria

  • Now including First Name and Last Name in Zapier trigger data. #3356 (@dwanjuki)
  • Adjusting categories for the Add Ons page and fixing hub links. #3371 (@kimcoleman)
  • Applied WPCS to the method sendCheckoutAdminEmail. #3367 (@andrewlimaza)

Correção

  • Now supporting a fixed layout table (even width columns) on frontend tables. Also adjusted the responsive layout so table rows look more defined. #3370 (@kimcoleman)
  • Basic styling for password visibility toggle when a site is using the minimal global style setting. #3369 (@kimcoleman)
  • Fixed a warning message that was encoding the > on output as well make the message more clear where the settings are to add a license key to PMPro. #3368 (@andrewlimaza)
  • Update "delete level" confirmation text to match behavior. Associated subscriptions ARE deleted. #3354 (@dparker1005)
  • Avoiding a warning when saving the header or footer email template. #3348 (@MaximilianoRicoTabo)
  • Fixes a race condition when activating Paid Memberships Pro after the Update Manager is already activated. #3372 (@andrewlimaza)
  • BUG FIX: Fixed an issue where admin confirmation emails was not sending the "Free" template and was defaulting to "Paid". #3367 (@andrewlimaza)
  • Fixed an issue where depends was not working with radio buttons. #3366 (@andrewlimaza, @salihkulangara)
  • Prevents a fatal error when accessing a non-existent report in the admin area. #3361 (@kimcoleman)
  • BUG FIX: Updated the localization file location structure. Now it looks for it under wp-content/languages/plugins/< >. #3360 (@andrewlimaza)

Versão 3.4.4

2 melhorias 4 correções

Melhoria

  • Improved accessibility and styling for pagination HTML generated by the pmpro_getPaginationString function. #3343 (@kimcoleman)
  • Updated the pmpro_int_compare function to allow passing '!=' as the comparison operator. #3344 (@andrewlimaza)

Correção

  • Fixed an issue where date user fields would not output the correct value when using the displayValue method. #3336 (@kimcoleman)
  • Fixed an issue where order totals would not be formatted correctly in refund emails. #3341 (@MaximilianoRicoTabo)
  • Fixed a PHP warning that would occur when using the [pmpro_member] shortcode to view information about a member that does not exist. #3337 (@andrewlimaza)
  • Fixed a PHP warning that would occur when rendering the "single level description" block in the editor for a level without a description set. #3335 (@kimcoleman)

Versão 3.4.3

3 melhorias 14 correções

Melhoria

  • Now hiding the "Members Only" access plan in LifterLMS when the Lifter Streamline is enabled.
  • Marked the pmpro_member_shortcode_access filter as deprecated. Use pmpro_has_membership_level instead. #3322 (@MaximilianoRicoTabo)
  • Removed the !!subject!! email template variable from the list of documented email template variables. #3316 (@dparker1005)

Correção

  • Now showing the correct email template variables for the header and footer templates. #3314 (@dparker1005)
  • Updated the styling and content of the admin activity email. #3318 (@kimcoleman)
  • No longer adding tags to the "pay by check" instructions when the textarea is saved. #3295 (@derekashauer)
  • Updated the PayPal Standard gateway message to recommend PayPal Express as an alternative. #3319 (@kimcoleman)
  • Now setting the line height of PMPro font sizes. #3324 (@kimcoleman)
  • Fixed a PHP fatal error when viewing a subscription in the Subscriptions List whose gateway does not exist. #3325 (@dparker1005)
  • Fixed a PHP fatal error that could occur when using the Update Manager Add On and sending the admin activity email or telemetry data. #3321 (@dparker1005)
  • Fixed an issue where duplicate members may be shown in the Members List CSV export. #3291 (@MaximilianoRicoTabo)
  • Fixed email template variables missing '!!' from the start of the variable name on the edit email template page. #3315 (@dparker1005)
  • Fixed an issue where user creation fields may incorrectly be shown as required when they are not needed. #3326 (@dparker1005)
  • Fixed an issue where level descriptions would not show correctly in the block editor. #3328 (@kimcoleman)
  • Fixed an issue where custom coded columns with a value of '0' would not be displayed. #3311 (@dparker1005)
  • Fixed a PHP warning when processing a Stripe completed checkout webhook for a one-time payment. #3317 (@dparker1005)
  • Fixed a PHP warning when deleting a Stripe webhook. #3310 (@mircobabini)

Versão 3.4.2

1 melhoria 1 correção

Melhoria

  • Added the Albanian Leke to the list of supported currencies. #3305 (@MaryOJob)

Correção

  • Fixed an issue where sites using the Payflow gateway would no longer be able to use that gateway after it was marked as deprecated. #3306 (@dparker1005)

Versão 3.4.1

3 melhorias 6 correções

Melhoria

  • Added a !!refund_date!! email template variable to the refund email template. #3301 (@kimcoleman)
  • Added a !!check_gateway_label!! email template variable to the checkout check email template to show the set gateway label. #3301 (@kimcoleman)
  • Updating some email template class names to match the email template slug. #3304 (@dparker1005)

Correção

  • Fixed an issue where sending test emails would always show an error message. #3301 (@kimcoleman, @derekashauer)
  • Fixed an issue where checkout emails may show the expiration date for the wrong level. #3300, #3303 (@dparker1005)
  • Fixed an issue where the admin's name may be mistakenly shown instead of the user's name in some admin email template variables. #3298 (@dparker1005)
  • Added missing email template variables for the membership recurring email. #3296 (@dparker1005)
  • Fixed an issue that may cause incorrect data to be sent in test emails. #3294 (@derekashauer)
  • Fixed localization and spacing for the default bodies of email templates. #3301 (@kimcoleman)

Versão 3.4

2 novidades 17 melhorias 17 correções

Novidade

  • Now pulling localization files from #3211 (@andrewlimaza)
  • Added a new Membership Account Message level setting to show a level-specific message to members on the Membership Account page. #3271 (@andrewlimaza, @kimcoleman)

Melhoria

  • Email template variables shown when editing an email template will now be specific to the email template being edited. #3234 (@MaximilianoRicoTabo, @dparker1005)
  • Now allowing filtering the Sales and Revenue report by multiple levels and discount codes. #3258 (@dparker1005)
  • Now allowing custom date ranges for the Sales and Revenue report. #3257 (@dparker1005)
  • Now showing the raw Sales and Revenue report data in a table under the chart. #3256 (@dparker1005)
  • Now showing the raw Membership Stats report data in a table under the chart. #3260 (@dparker1005)
  • Improved how user field values are displayed. #3223 (@dparker1005, @kimcoleman)
  • Improved the accessibility of the Memberships > Add Ons page. #3268 (@kimcoleman)
  • Now localizing formatted dates in the PMPro_Subscription class. #3195 (@andrewlimaza)
  • Now supporting setting a profile_start_date directly on a checkout level. #3233 (@dparker1005)
  • Added a new function pmpro_get_membership_levels_for_user_in_group. #3267 (@dparker1005)
  • Now supporting subscription transaction IDs up to 64 characters. #3274 (@dparker1005)
  • Added a new filter pmpro_membership_account_after_level_card_content to allow additional content to be added to level cards on the Membership Account page. #3271 (@andrewlimaza, @kimcoleman)
  • Created an abstract PMPro_Email_Template class and child classes for each email template. #3234 (@MaximilianoRicoTabo, @dparker1005)
  • Cleaned up user fields code throughout the plugin. #3223 (@dparker1005, @kimcoleman)
  • Removed potentially problematic caching from the pmpro_getLevelAtCheckout function and began passing the checkout level to all relevant hooks instead. #3246 (@dparker1005)
  • Marking PayFlow, PayPal Standard, and Braintree as deprecated. Websites that are already using these gateways can continue using them, but they will not be shown as an option on new websites. #3184 (@dparker1005)
  • Removed references to PayPal from the Membership Billing page which has not been supported for some time. #3252 (@kimcoleman)

Correção

  • Now pulling the discount code from the checkout level object at checkout instead of the globals which may not be set. #3247 (@dparker1005)
  • Fixed an issue where required user fields may not be highlighted when submitted with an empty value. #3251 (@kimcoleman)
  • Fixed an issue where the "Signups vs. Cancellations" and "Signups vs. Expirations" reports would not display. #3260 (@dparker1005)
  • Fixed an issue where the last day of each month for daily Memberships reports would show 0 signups. #3280 (@dparker1005, @kimcoleman)
  • Fixed an issue where reset password errors would not be handled correctly. #3262 (@mircobabini)
  • Fixed an issue where the "Activate" button may not show immediately after installing an Add On on the Memberships > Add Ons page. #3255 (@MaximilianoRicoTabo, @dparker1005)
  • Fixed an issue where courses would not be assigned correctly when users have multiple membership levels while using the LifterLMS streamline option. #3286 (@dparker1005)
  • Fixed a PHP fatal error if pmpro_getAddons fails to retrieve the list of Add Ons. #3249 (@dparker1005)
  • Fixed an issue where notifications may be incorrectly shown when a callback does not exist. #3279 (@andrewlimaza)
  • Fixed a PHP 5.6 fatal error in the admin activity email class. #3253 (@andrewlimaza)
  • Fixed a styling issue when there are multiple paragraphs in a contextual message. #3250 (@kimcoleman)
  • Fixed a styling issue where there may be a gap when Turnstile is enabled but not visible. #3273 (@kimcoleman)
  • Fixed an incorrect path when loading the paid-memberships-pro text domain. #3282 (@andrewlimaza)
  • Fixed a PHP warning when loading the checkout page template without the preheader (e.g., when loading the checkout block in the editor). #3287 (@MaximilianoRicoTabo)
  • Fixed a potential PHP warning when building plugin action links. #3264 (@mircobabini)
  • Fixed a potential PHP error when attempting to display a subscription that does not exist in the Subscriptions table. #2383 (@dparker1005)
  • Corrected the refund policy on the license page to reflect recent changes. #3272 (@kimcoleman)

Versão 3.3.3

6 melhorias 8 correções

Melhoria

  • Added a "Recheck Payment" option for token orders on the Edit Order page to allow admins to check whether the payment has been completed and, if so, complete the corresponding checkout. This currently only works for Stripe Checkout orders. #3226 (@dparker1005)
  • Added the Bangladeshi Taka to the list of supported currencies. #3239 (@kimwhite)
  • Updated the fr_FR language files to include translations from the base fr language files. #3231 (@andrewlimaza)
  • Updated the es_ES language files to include translations from the base es language files. #3216 (@MaximilianoRicoTabo)
  • Added an icon for the Abandoned Cart Recovery Add On and the upcoming Testimonials Add On. (@kimcoleman)
  • Simplified the composer.json file to remove unnecessary dependencies. #3237 (@andrewlimaza)

Correção

  • Updated the post_restrictions API endpoint to check whether the user has access to edit the specific post. #3243 (@dparker1005, @MaximilianoRicoTabo)
  • Fixed an issue where checkout might fail for new users when using PayPal Express. #3225 (@JarrydLong, @dparker1005)
  • Fixed an issue where CloudFlare Turnstile validation would fail for PayPal Express checkouts. #3232 (@andrewlimaza)
  • Fixed an issue where some REST API endpoints would mistakenly require the pmpro_edit_members capability. #3243 (@dparker1005, @MaximilianoRicoTabo)
  • Fixed an issue where Stripe Checkout would always overwrite the tax value set on an order even if tax isn't being calculated by Stripe Checkout. #3242 (@dparker1005)
  • Fixed an issue where formatted billing addresses without a state omitted the city and postal code. #3240 (@dparker1005)
  • Fixed a broken link to gateway settings documentation on the Payment Gateway settings page. #3244 (@kimcoleman)
  • Fixed a PHP notice when editing a post in Elementor that did not have a "require membership" setting saved. #3235 (@dparker1005)

Paid Memberships Pro

Versão na DROPE: 3.9.1
Ver produto

As versões disponíveis na DROPE são liberadas para assinantes e para quem comprou o produto.

O que mudou

2.599 mudanças em 292 versões

  • Novidade 208
  • Melhoria 912
  • Correção 1.399
  • Segurança 80

Versões

292
  1. 3.9.110 nov 2026
  2. 3.927 out 2026
  3. 3.8.912 out 2026
  4. 3.8.86 out 2026
  5. 3.8.725 set 2026
  6. 3.8.68 set 2026
  7. 3.8.524 ago 2026
  8. 3.8.46 ago 2026
  9. 3.8.330 jul 2026
  10. 3.8.213 jul 2026
  11. 3.8.129 jun 2026
  12. 3.815 jun 2026
  13. 3.7.428 maio 2026
  14. 3.7.314 maio 2026
  15. 3.7.21 maio 2026
  16. 3.7.125 mar 2026
  17. 3.723 mar 2026
  18. 3.6.613 mar 2026
  19. 3.6.526 fev 2026
  20. 3.6.48 jan 2026
  21. 3.6.315 dez 2025
  22. 3.6.220 nov 2025
  23. 3.6.112 nov 2025
  24. 3.621 out 2025
  25. 3.5.610 set 2025
  26. 3.5.526 ago 2025
  27. 3.5.418 ago 2025
  28. 3.5.325 jul 2025
  29. 3.5.214 jul 2025
  30. 3.5.19 jul 2025
  31. 3.57 jul 2025
  32. 3.4.712 jun 2025
  33. 3.4.621 abr 2025
  34. 3.4.521 abr 2025
  35. 3.4.419 mar 2025
  36. 3.4.36 mar 2025
  37. 3.4.218 fev 2025
  38. 3.4.114 fev 2025
  39. 3.411 fev 2025
  40. 3.3.38 jan 2025
  41. 3.3.221 nov 2024
  42. 3.3.124 out 2024
  43. 3.316 out 2024
  44. 3.2.212 out 2024
  45. 3.2.18 out 2024
  46. 3.22 out 2024
  47. 3.1.418 set 2024
  48. 3.1.36 ago 2024
  49. 3.1.22 ago 2024
  50. 3.1.129 jul 2024
  51. 3.117 jul 2024
  52. 3.0.61 jul 2024
  53. 3.0.524 jun 2024
  54. 3.0.48 maio 2024
  55. 3.0.318 abr 2024
  56. 3.0.211 abr 2024
  57. 3.0.127 mar 2024
  58. 3.025 mar 2024
  59. 2.12.108 fev 2024
  60. 2.12.97 fev 2024
  61. 2.12.822 jan 2024
  62. 2.12.710 jan 2024
  63. 2.12.618 dez 2023
  64. 2.12.512 dez 2023
  65. 2.12.416 nov 2023
  66. 2.12.33 out 2023
  67. 2.12.213 ago 2023
  68. 2.12.17 ago 2023
  69. 2.124 ago 2023
  70. 2.11.214 jun 2023
  71. 2.11.113 jun 2023
  72. 2.117 jun 2023
  73. 2.10.723 maio 2023
  74. 2.10.619 maio 2023
  75. 2.10.527 abr 2023
  76. 2.10.426 abr 2023
  77. 2.10.32 mar 2023
  78. 2.10.228 fev 2023
  79. 2.10.121 fev 2023
  80. 2.1020 fev 2023
  81. 2.9.1216 fev 2023
  82. 2.9.1127 jan 2023
  83. 2.9.1025 jan 2023
  84. 2.9.918 jan 2023
  85. 2.9.827 dez 2022
  86. 2.9.730 nov 2022
  87. 2.9.614 nov 2022
  88. 2.9.517 set 2022
  89. 2.9.430 ago 2022
  90. 2.9.325 ago 2022
  91. 2.9.210 ago 2022
  92. 2.9.128 jul 2022
  93. 2.918 jul 2022
  94. 2.8.323 maio 2022
  95. 2.8.220 maio 2022
  96. 2.8.110 maio 2022
  97. 2.85 maio 2022
  98. 2.7.51 mar 2022
  99. 2.7.422 fev 2022
  100. 2.7.31 fev 2022
  101. 2.7.217 jan 2022
  102. 2.7.113 jan 2022
  103. 2.713 jan 2022
  104. 2.6.76 jan 2022
  105. 2.6.618 nov 2021
  106. 2.6.512 nov 2021
  107. 2.6.42 nov 2021
  108. 2.6.311 out 2021
  109. 2.6.217 set 2021
  110. 2.6.1.125 ago 2021
  111. 2.6.124 ago 2021
  112. 2.612 ago 2021
  113. 2.5.10.22 ago 2021
  114. 2.5.10.15 jul 2021
  115. 2.5.1025 jun 2021
  116. 2.5.9.112 maio 2021
  117. 2.5.95 maio 2021
  118. 2.5.830 abr 2021
  119. 2.5.710 mar 2021
  120. 2.5.65 mar 2021
  121. 2.5.522 fev 2021
  122. 2.5.428 jan 2021
  123. 2.5.326 jan 2021
  124. 2.5.223 out 2020
  125. 2.5.116 out 2020
  126. 2.52 out 2020
  127. 2.4.42 set 2020
  128. 2.4.325 ago 2020
  129. 2.4.224 ago 2020
  130. 2.4.110 ago 2020
  131. 2.424 jul 2020
  132. 2.3.418 jun 2020
  133. 2.3.313 maio 2020
  134. 2.3.27 maio 2020
  135. 2.3.11 maio 2020
  136. 2.31 maio 2020
  137. 2.2.620 fev 2020
  138. 2.2.55 jan 2020
  139. 2.2.420 dez 2019
  140. 2.2.39 dez 2019
  141. 2.2.229 nov 2019
  142. 2.2.127 nov 2019
  143. 2.222 nov 2019
  144. 2.1.431 out 2019
  145. 2.1.314 out 2019
  146. 2.1.226 set 2019
  147. 2.1.116 set 2019
  148. 2.113 set 2019
  149. 2.0.730 maio 2019
  150. 2.0.630 maio 2019
  151. 2.0.525 abr 2019
  152. 2.0.414 jan 2019
  153. 2.0.311 jan 2019
  154. 2.0.210 jan 2019
  155. 2.0.13 jan 2019
  156. 2.031 dez 2018
  157. 1.9.5.615 nov 2018
  158. 1.9.5.519 out 2018
  159. 1.9.5.410 set 2018
  160. 1.9.5.326 jun 2018
  161. 1.9.5.226 jun 2018
  162. 1.9.5.18 jun 2018
  163. 1.9.524 maio 2018
  164. 1.9.4.414 mar 2018
  165. 1.9.4.34 jan 2018
  166. 1.9.4.27 dez 2017
  167. 1.9.4.131 out 2017
  168. 1.9.426 out 2017
  169. 1.9.36 jul 2017
  170. 1.9.2.213 jun 2017
  171. 1.9.2.15 jun 2017
  172. 1.9.23 jun 2017
  173. 1.9.111 maio 2017
  174. 1.926 abr 2017
  175. 1.8.13.6
  176. 1.8.13.5
  177. 1.8.13.4
  178. 1.8.13.3
  179. 1.8.13.2
  180. 1.8.13.1
  181. 1.8.13
  182. 1.8.12.1
  183. 1.8.12
  184. 1.8.11.2
  185. 1.8.11.1
  186. 1.8.11
  187. 1.8.10.4
  188. 1.8.10.3
  189. 1.8.10.2
  190. 1.8.10.1
  191. 1.8.10
  192. 1.8.9.3
  193. 1.8.9.2
  194. 1.8.9.1
  195. 1.8.9
  196. 1.8.8.3
  197. 1.8.8.2
  198. 1.8.8.1
  199. 1.8.8
  200. 1.8.7.3
  201. 1.8.7.2
  202. 1.8.7.1
  203. 1.8.7
  204. 1.8.6.8.1
  205. 1.8.6.8
  206. 1.8.6.7
  207. 1.8.6.6
  208. 1.8.6.5
  209. 1.8.6.4
  210. 1.8.6.3
  211. 1.8.6.2
  212. 1.8.6.1
  213. 1.8.6
  214. 1.8.5.6
  215. 1.8.5.5
  216. 1.8.5.4
  217. 1.8.5.3
  218. 1.8.5.2
  219. 1.8.5.1
  220. 1.8.5
  221. 1.8.4.5
  222. 1.8.4.4
  223. 1.8.4.3
  224. 1.8.4.2
  225. 1.8.4.1
  226. 1.8.4
  227. 1.8.3.1
  228. 1.8.3
  229. 1.8.2.2
  230. 1.8.2.1
  231. 1.8.2
  232. 1.8.1
  233. 1.8
  234. 1.7.15.3
  235. 1.7.15.2
  236. 1.7.15.1
  237. 1.7.15
  238. 1.7.14.2
  239. 1.7.14.1
  240. 1.7.14
  241. 1.7.13.1
  242. 1.7.13
  243. 1.7.12
  244. 1.7.11
  245. 1.7.10.2
  246. 1.7.10.1
  247. 1.7.10
  248. 1.7.9.1
  249. 1.7.9
  250. 1.7.8.2
  251. 1.7.8.1
  252. 1.7.8
  253. 1.7.7
  254. 1.7.6
  255. 1.7.5
  256. 1.7.4
  257. 1.7.3.1
  258. 1.7.3
  259. 1.7.2.1
  260. 1.7.2
  261. 1.7.1
  262. 1.7.0.4
  263. 1.7.0.3
  264. 1.7.0.2
  265. 1.7.0.1
  266. 1.7
  267. 1.6.1
  268. 1.6.0.1
  269. 1.6
  270. 1.5.9.2
  271. 1.5.9.1
  272. 1.5.9
  273. 1.5.8
  274. 1.5.7
  275. 1.5.6.1
  276. 1.5.6
  277. 1.5.5
  278. 1.5.4
  279. 1.5.3.1
  280. 1.5.3
  281. 1.5.2.1
  282. 1.5.2
  283. 1.5.1
  284. 1.5
  285. 1.4.9
  286. 1.4.8
  287. 1.4.7
  288. 1.4.6
  289. 1.4.5.1
  290. 1.4.5
  291. 1.4.4
  292. 1.4.3

CUPONS

GANHE 5% DE DESCONTO na sua primeira compra

Preencha o formulário abaixo e garanta 5% de desconto na sua primeira compra. Válido por tempo limitado.