== Changelog ==

= 4.16.19 =
* Add optional order creation to the Add New Customer screen.
* Fixed bug where suppressed email still went out.
* Fixed security issue where other file types (exe, msi) could be uploaded outside ProfilePress upload scope.
* Improved support for Jetpack/wp.com SSO.
* Enhancement: Made the Pay button text translatable.

= 4.16.18 =
* Added compatibility with Yoast URL Cleanup feature.
* Fix security issue where non-admin user role can be passed as user role.

= 4.16.17 =
* Fixed security issue a user subscription can be canceled by another user.

= 4.16.16 =
* Pro: [Paddle addon](https://profilepress.com/addons/paddle/?ref=changelog).
* Added password visibility icons to the password reset handler form fields

= 4.16.15 =
* Pro: [Brevo addon](https://profilepress.com/addons/brevo/?ref=changelog).
* Pro: [Auto-Renewal Checkbox addon](https://profilepress.com/addons/auto-renewal-checkbox/?ref=changelog).
* Added filters to the test mode notice and checkout username.
* Added membership conditions to Elementor display rules.

= 4.16.14 =
* Added filtering by status to plan listing page.
* Fixed avatar distortion on account page.
* Fixed bug where plan duplication missed some data.
* Fixed bug with form preview resulting to FATAL error.
* Fixed XSS in member and profile listing frontend displays.
* Improvement: reject Stripe webhooks when Webhook secret is not configured.
* Made customer meta labels translatable.
* Add warning to Select Role field in form builder if options are empty.

= 4.16.13 =
* Improved admin UI for WP7
* Fixed bug where users can upgrade/downgrade to a plan not authorized for them.
* Fixed bug where subscription renewal email is sent when autorenewal is disabled.
* Ensure expiration email is sent when active/trialling subscriptions are not auto-renewable.
* Added support for specifying subscription status in content protection shortcode
* Added ppress_restriction_shortcode_rule_latest_only filter.
* Added filter for overriding Stripe billing intervals.
* Added a filter to allow per-field filename customization.
* Added filter for adding custom columns to the subscriptions list table.
* Added action hook and filter for customer details metaboxes.

= 4.16.12 =
* Fixed issue with plan upgrade by wrong user.
* Fixed bug where empty subscription records could be created.

= 4.16.11 =
* Added filter ppressmd_member_directory_filters_expanded.
* Fixed a security issue where a user could cancel another user subscription.

= 4.16.10 =
* Improvement: Cancel subscription in gateway before deletion.
* Security Fix: Arbitrary Shortcode Execution via Checkout Billing Fields.

= 4.16.9 =
* Added billing address data to customer export.
* Added ppress_is_third_party_2fa_active filter.
* Fixed a likely fatal error on form preview.
* Fixed bug where account info data got lost on group checkout refresh.
* Fixed bug where checkout overrides previously uploaded files.
* Fixed bug where download link requiring logged in users worked for other logged in users.
* Add custom field placeholder support to admin new user email notification.

= 4.16.8 =
* Fixed security issue with arbitrary shortcode execution on form preview.
* Fixed couple of PHP notices.

= 4.16.7 =
* Fixed bug where label is shown for empty data in member directory.
* Added user roles as classes to member directory item wrapper.

= 4.16.6 =
* Pro: [FluentCommunity addon](https://profilepress.com/addons/fluentcommunity/?ref=changelog).
* Pro: [MasterStudy LMS addon](https://profilepress.com/addons/masterstudy-lms/?ref=changelog).
* Added auto scroll to form error messages.
* Added support for plan pre-selection as query parameters to group checkout URL.
* Fixed bug where content protection on blog page did not work.
* Improved compatibility with WPML.

= 4.16.5 =
* Added multiple user role selection when editing users.
* Fixed bug where shortcode could be executed as profile information
* Fixed bug where registration blocking feature did not work during checkout.
* Fixed Stripe bug where only country field in checkout lead to error.

= 4.16.4 =
* Pro: [AffiliateWP](https://profilepress.com/addons/affiliatewp/?ref=changelog) and [SliceWP](https://profilepress.com/addons/slicewp/?ref=changelog) addons.
* Fixed bug where subscription remained active after last order refund.
* Fixed bug with missing date_completed data for manual order creation.
* Added ppress_checkout_before_account_info_fields action hook.
* Added filter ppress_stripe_subscription_set_cancelled_action_as_expired.
* Added ppress_membership_plan_price filter.
* Added ppress_checkout_group_selector_plans filter.
* Fixed a couple of PHP notices.

= 4.16.3 =
* Pro: [Cloudflare Turnstile addon](https://profilepress.com/addons/cloudflare-turnstile/?ref=changelog).
* Fixed membership plan description in checkout and backend.
* Added ppress_data_export_writer_use_alternative filter for alternate data export.
* Added Size atts to User Avatar URL Shortcode.

= 4.16.2 =
* Pro: [MailerLite Integration addon](https://profilepress.com/addons/mailerlite/?ref=changelog).
* Pro: [Fixed Subscription Expiration addon](https://profilepress.com/addons/fixed-subscription-expiration/?ref=changelog).
* Fixed bug where welcome email was not sent when users are added by admin.
* Fixed bug where password strength-meter didn't work in myaccount page if ajaxmode is disabled.
* Added checkout user moderation behind ppress_checkout_registration_user_moderation_support filter.
* Added ppress_is_search_and_api_exclude_posts filter.

= 4.16.1 =
* Fixed fatal error on new installation.

= 4.16.0 =
* Added [Academy LMS](https://profilepress.com/addons/academy-lms/?ref=changelog) integration.
* Option to Disable Redirect from (/wp-admin/profile.php) for administrators.
* Fixed bug where no address fields could break non-card stripe payments.
* Fixed bug with failure to switch to change_plan checkout when group checkout is accessed by active sub users.
* Fixed bug with failing trigger hooks when sub is manually set to active and trial.
* Fixed bug where SubscriptionExpiredNotification could be sent on sub upgrade/downgrade.
* Fixed bug where sub could be set to cancelled when it has expired.
* Simplified cancellation flow by removing cancellation at end of period in Stripe
* Added a Copy Shortcode Button to form listing and builder pages.
* Added more bulk-actions to Content Protection listing page.

= 4.15.25 =
* Fixed bug with frontend JS script loading.

= 4.15.24 =
* Added ppress_payment_processing_message filter.
* Added ppress_md_profile_bio filter.
* Added ppress_registration_should_send_welcome_email filter.
* Added additional params to ppress_welcome_message_raw_content filter.
* Added translation support for checkout fields label.
* Added userID placeholder to welcome email.
* Added Threads and Bluesky social icons.
* Added Copy button for shortcodes to plans, groups and form pages.
* Added support for file upload field when custom fields are added in emails.
* Fixed bug where slash could appear in membership plan name.
* Fixed bug where recaptcha didn’t work on plan upgrade checkout.
* Fixed bug with profile image cropping not working.

= 4.15.23 =
* Added ppress_subscription_after_expired_reminder_email_enabled filter
* Added ppress_membership_subscription_expired_email_enabled filter
* Added a filter to modify user roles in search filter.
* Fixed bug where content protection excerpt generation can fail
* Fixed bug where restricted template didn’t display global restricted message.
* Fixed bug where marking a checkout field as not required didn’t work.

= 4.15.22 =
* Added a filter for specifying payment method based on plan ID.
* Added ppress_subscription_buffer_seconds filter.
* Added filtering by user role to Member Directory.
* Inverted the logic of content protection.
* Fixed: Function _load_textdomain_just_in_time was called incorrectly.
* Fixed email placeholder not working for welcome email
* Switch to using home_url() from site_url() for login redirect.
* Disabled buffer on expiration cron job when a subscription is cancelled.
* Redirect to My Account page if previous url after login is the password reset page.
* Added double-check to ensure subscription is expired before sending subscriptionExpired email.

= 4.15.21 =
* Added shortcode support to Resrricred Page template in content protection.
* Added ppress_checkout_is_registration_checked_enabled filter.
* Added ppress_frontend_profile_url filter.
* Disable processing page when on bank transfer payment method.
* Disable checking if registration is enabled during checkout if user is logged in.
* Fixed bug where textarea data in user profile lack newlines.
* Fixed broken html on agreeable field.
* Fixed bug where stripe amount could be negative integer.

= 4.15.20.1 =
* Disable registration via checkout if "user can register" is not enabled.

= 4.15.20 =
* Added ppress_content_protection_ignore_post_excerpt filter.
* Added ppress_user_avatar_image_url filter.
* Added {{order_coupon}} placeholder to order emails.
* Fixed customer search in admin dashboard not working correctly.
* Fixed various XSS reported by Cleantalk.
* Fixed duplicate queries detected by Query Monitor.
* Fixed fatal error that might occur from changing default login page url.
* Switched to using core Codemirror library.
* Fixed couple of PHP errors and warnings.

= 4.15.19 =
* Security fix where protected content was exposed via WP and Rest API search.
* Upgraded Stripe PHP SDK to 16.3.
* Fixed bug with incorrect insertion of ob_start().

= 4.15.18 =
* Added ppress_checkout_disable_payment_for_zero_initial_payment filter to disable payment when initial amount is zero.
* Added filter to disable tab widget user registration.
* Fixed bug where restricted content could be accessed via rest api.
* Fixed icon error in admin css.
* Fixed bug with multiple display of login remember label.

= 4.15.17 =
* Fixed bug that displays double 'tripple-mdash' in billing state field.
* Fixed bug where country/state field ID instead of title was displayed in member directory & user profile.
* Improved content protection compatibility with WooCommerce.

= 4.15.16 =
* Fixed fatal error: Uncaught ValueError.
* Bumped Stripe API version to 2024-06-20.

= 4.15.15 =
* Improved support for cache-heavy hosting like WPEngine and Pantheon.
* Fixed XSS on plan edit page metabox and builder form field label.
* Improve compatibility with jQuery 4.

= 4.15.14 =
* Added WooCommerce compatibility to content protection where add-to-cart button is hidden for restricted product.
* Added ppress_is_checkout_autoscroll_enabled filter to disable checkout autoscroll feature.
* Updated Twitter social login to X.
* Remove deprecated jQuery codes.

= 4.15.13 =
* Pro: [WooCommerce Memberships feature](https://profilepress.com/article/create-woocommerce-membership-website/?ref=changelog)
* Added setting for disabling My Account tabs.
* Fixed date_created time bug with manual order.
* Fixed bug where expired coupons could be used via URL.

= 4.15.12 =
* Added uncode theme compatibility to content protection feature.
* Fixed bugs with Stripe tax update after order.
* Fixed bug where manual order didn't include subtotal.

= 4.15.11 =
* Enhancement: Update order tax amount in if Stripe charges tax.
* Added filter to remove cover photo uploader field from default profile page.
* Fixed: Undefined array key 'exempt' warning.

= 4.15.10 =
* Added exemption to content protection.
* Fixed bug where Tutor course in multiple plans didn't exactly work correctly
* Fixed bug where subscription was not revoked when unpaid in Stripe.
* Enhancement: Stopped ucwords-ing displayname profile information.
* Improved checkout compatibility with Pantheon hosting.

= 4.15.9 =
* Fixed bug where zero amount checkout didn't work when autorenewal is enabled.

= 4.15.8 =
* Fixed Stripe bug where payment method not saving for zero amount orders.

= 4.15.7 =
* Added filter to for changing Tutor LMS subscribe button.
* Added filters to order and subscriptions email recipients.

= 4.15.6 =
* Fixed bug where Stripe sometimes fails to make payment method default.
* Fixed XSS on registration checkbox field label.
* Added ppress_content_protection_is_protection_disabled filter.

= 4.15.5 =
* Added custom field support to account welcome email
* Improve checkout verbiage when auto-renewal is disabled
* Fixed bug where customer username is always email during creation from wp-admin.
* Fixed Stripe bug where payment method not saving for zero amount orders.
* Fixed XSS on carousel-author-posts shortcode.

= 4.15.4 =
* Compatibility with upcoming WP 6.5

= 4.15.3 =
* Fixed bug where user membership subscriptions were not cancelled after account deletion.
* Fixed bug with tax-inclusive checkout calculation.
* Fixed bug with custom field not working on order/sub emails.
* Fixed XSS on checkbox registration field.

= 4.15.2 =
* Fixed XSS on edit profile form.

= 4.15.1 =
* Fixed XSS on registration form with user role select field.

= 4.15.0 =
* Added [Login Redirect](https://profilepress.com/wordpress-user-redirection-after-login-role/#WordPress_Login_Redirect_Based_on_Membership_Level) feature.
* Security Fix: XSS on forms.

= 4.14.4 =
* Added account deletion tab to My Account page.
* Move CC element below billing address when Taxes is enabled.
* Security Fix: XSS on registration form.
* Fixed a couple of PHP warnings.

= 4.14.3 =
* Added ppress_drag_drop_profile_listing_item filter.
* Ensure subscription is expired on subscription upgrade.
* Fixed bug with "Already have an account" checkout link not working.
* Fixed a couple of PHP warnings

= 4.14.2 =
* Improved Avada theme compatibility.
* Fixed bug with expired subscription not expiring.
* Fixed a couple of PHP errors.

= 4.14.1 =
* Added setting for enabling autologin after checkout.
* Added ppress_myaccount_edit_profile_custom_form filter.
* Fixed bug with checkout of free trials via Stripe.
* Fixed bug with multisite login redirect to wrong network site.
* Fixed bug where order was 0 when amount was not entered during manual order creation.
* Bumped stripe api version to 2023-10-16.
* Improved caching of gravatar API calls.
* Added more US states: American Samoa, Puerto Rico, Palau.
* Switch to esc_url_raw in NavigationMenuLinks::Frontend.

= 4.14.0 =
* Added feature to disable concurrent login by users.
* Added password strength meter to "change password" myaccount section.
* Added Allowlist option for restricting registration to specific email addresses.
* Added Bank Transfer payment method.
* Added filter to stripe customer metadata array.
* added ppress_author_post_after_title filter.
* Fixed fatal error: Uncaught TypeError: array_filter(): Argument 1 ($array) must be of type array.

= 4.13.4 =
* Pro: [Invite Codes](https://profilepress.com/addons/invite-codes/?ref=changelog) addon.
* Enhancement: Only add confirm prompt on cancel action button on view subscription page.
* Fixed bug where material icons weren't showing in form builder.

= 4.13.3 =
* Fixed Fatal error: Uncaught TypeError: strpos(): Argument #1 must be of type string, array given.
* Fixed bug where cancelled sub didn’t change to expire after expiration.
* Fixed bug where inactive membership plan could be purchased.
* Fixed bug where checkout proration wasn't working.
* Renamed log file to be unique to avoid public access.

= 4.13.2 =
* Fixed security issue where user can specify their own non-admin user role.
* Added filters for the Member Directory search field and button.
* Fixed bug where country field IDs instead of the name were displayed in user profile.
* Added filter to implement checkout auto-login.
* Added nonce check to admin notice dismissal url.

= 4.13.1 =
* Pro: [LifterLMS](https://profilepress.com/addons/lifterlms/?ref=changelog) integration.
* Added content protection compatibility with Avada theme.
* Added "ppress_myaccount_subscription_header_actions" action hook.
* Check capability before dismissing admin notice.
* Do not send welcome email if user moderation is active for a registering users.

= 4.13.0 =
* Pro: [Sensei LMS](https://profilepress.com/addons/sensei-lms/?ref=changelog) integration.
* Added [Data Export](https://profilepress.com/article/data-export-overview/) feature.
* Added option to make coupon one-time use.
* Added setting to disable sending email receipts for free orders.
* Added Settings tab for enforcing password confirmation as required field.
* Added filter to redirect to referrer url after checkout.
* Added filter to conditionally enable user moderation based on registration form.
* Reverted added "ppress_noaccess_action_message_custom_no_wp_kses_post" filter.
* Fixed bug with plan switching checkout not working for certain payment methods.
* Fixed bug where sub cancelled email was sent during upgrade.
* Fixed bug with invalid "paid on" date on order edit screen.

= 4.12.0 =
* Added setting for [disabling subscription auto-renewals](https://profilepress.com/article/auto-renewal-settings/).
* Extended Tutor LMS addon to include [creating custom student](https://profilepress.com/article/custom-tutor-lms-student-registration-form/) and [instructor registration forms](https://profilepress.com/article/custom-tutor-lms-instructor-registration-form/).
* Added ppress_stripe_disable_maybe_update_webhook filter to disable automatic stripe webhook regeneration.
* Fixed form preview bug when using a block theme.

= 4.11.0 =
* Added [Tutor LMS](https://profilepress.com/addons/tutor-lms/) integration.
* Added [Stripe Tax](https://profilepress.com/article/setting-up-stripe/#Stripe_Tax_Support) support.
* Security Fix: DOM-based XSS on registration form.
* Fixed Stripe bug where webhook details are missing after disconnection and reconnection.
* Fixed Stripe bug where billing details not shown when tax is enabled and is offsite checkout
* Improved PHP 8 compatibility

= 4.10.3 =
* Added ppress_myaccount_billing_details_disable_$field_key filter.
* Added ppress_dpf_default_tab filter.
* Updated the empty profile state text for visitors.
* Fixed bug where subscription ID was not set after activation.
* Updated charting library.

= 4.10.2 =
* Integrated Stripe Customer Portal for updating payment methods.
* Fixed bug where stripe checkout might failed if phone field is not present.
* Fixed bug where subscription expiration and renewal reminder didnt work for trial subscriptions.
* Fixed bug where some placeholders weren't working for new user admin email notification.
* Made remember me checkbox for login form unchecked by default.
* Correct missing filter hook arguments.
* Hardened security of myaccount subscription actions.
* Added ppress_subscription_deleted action hook.
* Added ppress_added_plan_role_to_customer and ppress_removed_plan_role_from_customer filters.
* Added filter ppress_subscription_formatted_expiration_date.

= 4.10.1 =
* Fixed bug where stripe checkout doesn't work again on error.
* Added Plan selection on group checkout as select dropdown.

= 4.10.0 =
* Migrated Stripe integration from card to payment element.
* Fixed bug where logout redirect on group checkout goes to individual plan checkout url.
* Fixed bug with stripe checkout not working when search is disabled in certain countries.

= 4.9.0 =
* New: [Membership plan group](https://profilepress.com/article/membership-plan-groups/?ref=changelog).
* Added [Restricted Page Template](https://profilepress.com/article/adding-content-protection-rules/?ref=changelog#rpt) option for content protection.
* Added ppress_public_js_dependencies filter.
* Added filters to checkout fields.
* Added ppress_customer_active_subscriptions filter.
* Added ppress_checkout_sidebar_order_expiration_date_time filter.
* Added ppress_stripe_price_search_args filter.
* Added ppress_checkout_disable_validate_field filter.
* Added has_any_status_subscription method to customer entity.

= 4.8.0 =
* Pro: [LearnDash addon](https://profilepress.com/addons/learndash/?ref=changelog).
* Added filter for skipping custom fields in checkout.
* Added ppress_plan_expiration_datetime filter.
* Fixed bug where loggedout condition for elementor content restriction wasn’t working.
* Fixed PHP Fatal error: Call to a member function wpua_get_default_avatar_url() on null.
* Removed settings icon from form builder metabox form settings.

= 4.7.0 =
* Pro: [Paystack addon](https://profilepress.com/addons/paystack/?ref=changelog).
* Fixed bug where subscription was still active even when order was refunded.
* Fixed bug with checkout not working when Password reset is not allowed for user.

= 4.6.0 =
* Added [RazorPay addon](https://profilepress.com/addons/razorPay/?ref=changelog).
* Added support for 'url' config when adding myaccount page menu tabs.
* Added color fields to settings API.
* Fixed bug where admin couldn't delete other users cover photo in the admin dashboard.
* Fixed incorrect currency in order listing display.

= 4.5.5 =
* Fixed PHP Warning: Undefined array key "user_login".
* Added missing text domain to strings.
* Bumped Stripe API version to latest.
* Fixed XSS in shortcode & content protection admin page.
* Added settings button to [addons page](https://profilepress.com/addons/?ref=changelog).

= 4.5.4 =
* Fixed more XSS in form builder.

= 4.5.3 =
* Added option to filter subscriptions by membership plan.
* Fixed error when retrieving some settings.
* Fixed fatal error when attempting to remove user role from a user that does not exist.

= 4.5.2 =
* Pro: [Receipt addon](https://profilepress.com/addons/receipt/?ref=changelog).
* Added helper link to auto-create required pages.
* Fixed bug with checkout not working when username field is missing.
* Fixed bug where payment completed date wasn't updated.

= 4.5.1 =
* Fixed bug with custom fields added to checkout form not saving after checkout registration.
* Fixed more XSS issues.
* Fixed Checkout CSS.

= 4.5.0 =
* Added [Block Registration by Email](https://profilepress.com/block-wordpress-registration-specific-email-domains/?ref=changelog) feature.
* Fixed bug where install missing db feature didn't correctly work.
* Fixed XSS in couple of admin pages
* Fixed bug with disabled admin new user email causing welcome email to users not to work.

= 4.4.1 =
* Fixed fatal error caused by the use of str_contains on < PHP 8.
* Fixed bug that resulted to broken admin css.

= 4.4.0 =
* Pro: [Metered Paywall addon](https://profilepress.com/addons/metered-paywall/?ref=changelog).
* Pro: [Added WordPress.com, Yahoo, Microsoft, Amazon social login](https://profilepress.com/addons/social-login/?ref=changelog)
* Fixed bug with db update not working in some cases.
* Fixed bug with honeypot preventing some payment gateways from working.
* Added setting to blur restricted content.
* Enhancement: Disable content protection on post/page preview and elementor preview.
* New: Allow licenses to be entered in Lite.
* Fixed bug where unserialize() call could instantiate classes.

= 4.3.2 =
* PHP 8 compatibility improvements.
* Fixed bug where default avatar wasn't reflecting in buddypress.
* Fixed bug where nocache header might be applied site-wide.
* Fixed bug where session might have started where unnecessary.

= 4.3.1 =
* Pro: [Checkout social login support](https://profilepress.com/addons/social-login/?ref=changelog).
* Pro: [Checkout reCAPTCHA support](https://profilepress.com/addons/recaptcha/?ref=changelog).
* Pro: [Checkout Akismet support](https://profilepress.com/addons/akismet/?ref=changelog).
* Added checkout compatibility with other addons.
* Added honeypot field to checkout to prevent spam.
* Added filters for adding custom tabs to user profile.
* Fixed store status admin menu styling not working.

= 4.3.0 =
* Pro: [Mollie Addon](https://profilepress.com/addons/mollie/?ref=changelog).
* Added integration with Conditional Blocks plugin.
* Added customer ID placeholder support to order email.
* Added custom fields support to order emails.
* Fixed: Index column size too large error when creating subscriptions DB table.
* Fixed bug where download details was showing for order without downloads.

= 4.2.0 =
* New: [Support for selling digital products](https://profilepress.com/article/sell-downloads-wordpress-membership/?ref=changelog)
* Added support for [associating role to membership plans](https://profilepress.com/article/create-wordpress-membership-plans/#role-sync).
* Added subscription details to view order page.
* Added support for toggling Metaboxes.
* Added "add new plan" button to plan edit screen.
* Enhancement: Delete transient on plugin uninstallation.
* Fixed bug with manually creating order not working.
* Updated material icons and dropped EOT and TTF files.
* Added button to reinstall missing DB tables

= 4.1.4 =
* Fixed blurry gravatar in member directory.
* Fixed bug with [custom fields](https://profilepress.com/addons/custom-fields/) not showing up in checkout
* Fixed bug where content protection listing page had missing Access info.
* Fixed bug with add new content protection page displaying multiple sidebars.
* Fixed bug with children of core pages not getting protected.

= 4.1.3 =
* Added [navigation menu protection](https://profilepress.com/article/wordpress-navigation-menu-restriction/).
* Added [Elementor content restriction](https://profilepress.com/article/restrict-elementor-sections-widgets/).
* Added [Beaver Builder content restriction](https://profilepress.com/article/restrict-content-beaver-builder-visibility/).
* Added support for discounting subscription first payment.
* Added support for [purchase note](https://profilepress.com/article/plan-purchase-note/?ref=changelog).
* Added support for [checking active subscription via PHP](https://profilepress.com/article/php-check-user-has-active-subscription/).
* Fixed bug where new order creation with missing payment method failed.
* Fixed couple of date/time related query bugs.
* Fixed bug where cancelled one-time subscription was still active.
* Fixed bug where non-completed order email receipt can be sent.

= 4.1.2 =
* Added "ppress_disable_google_fonts" filter to disable google fonts globally.
* Added Oxygen builder compatibility to Admin Bar Control.
* Fixed bug where new order creation with missing payment method failed.
* Fixed bug where content protection failed to identify some posts/pages.
* Fixed date related output and queries.

= 4.1.1 =
* Fixed bug with Stripe webhook 404ing.

= 4.1.0 =
* Pro: [PayPal Checkout addon](https://profilepress.com/addons/paypal/?ref=changelog) is live.
* Pro: Added &mdash as default select options for [profile custom fields](https://profilepress.com/addons/custom-fields/?ref=changelog).
* Added order refund support from single order admin page.
* Added payment method icons to checkout page.
* Added filter to remove billing custom fields in default WP user profile
* Added filter to disable D&D custom html sanitization
* Fixed bug with free trial subscriptions getting expired early.
* Fixed: Duplicate entry '0' for key 'user_id' when recalculating stat.
* Fixed jQuery deprecated syntax errors.
* Fixed fatal error caused when loading billing address fields in builder.
* Fixed contextual state display bugs.

= 4.0.3 =
* Fixed critical bug causing checkout not to work.
* Fixed bug where plan with empty description caused checkout not to work.
* Enhancement: Added endpoint as class to My Account tabs.

= 4.0.2 =
* Enhancement: Store admin bar menu now only display for active store.
* Fixed bug where Stripe scripts were loaded when not enabled.
* Fixed bug where pages where auto-created.

= 4.0.1 =
* Fixed bug with member directory role restriction not working.
* Fixed: Uncaught Error: Call to a member function exists().

= 4.0.0 =
* Added [paid membership feature](https://profilepress.com/announcing-paid-membership/?ref=changelog).
* Fixed bug where upload field with data is still required.

= 3.2.15 =
* Fixed bug where social icons where showing when disabled.
* Removed display name from sorted field options.
* Added filter to member directory filter fields.

= 3.2.14 =
* Improve PHP 8 compatibility.

= 3.2.13 =
* Fixed bug where custom html texts where scribbled.

= 3.2.12 =
* Fixed user roles not recognized during member directory search.
* Fixed fatal error caused by empty member directory search field.
* Fixed bug with shortcodes not working in custom html.
* Fixed conflict where media uploader was not working for other plugins.
* Fixed Buddypress signup page override not working.
* Fixed My Account page visitor redirect bug.
* Improvement: scroll to member directory section after search.
* Improved ajax login process.
* Added Slim SEO compatibility.

= 3.2.11 =
* Fixed PHP Fatal error:  Uncaught Error: Call to a member function wpua_get_default_avatar_url() on null
* Upgrade jbox and flatpickr libs.

= 3.2.10 =
* Added noncache to temporary redirects.
* Fixed fatal error caused by user avatar functions.

= 3.2.9 =
* Fixed bug where reset password enforcement not working.
* Made sure select2 is only loaded where needed in admin screens.

= 3.2.8 =
* Fixed bug with content restriction shortcode not working correctly.
* Fixed bug with item dragging in the form builder.
* Added: Clear form after registration.
* Added action hook to email template.
* [Pro](https://profilepress.com/addons/passwordless-login/) Added enabling/disabling of passwordless login per form.
* [Pro](https://profilepress.com/addons/woocommerce/) support for replacing the registration form in WooCommerce my account page

= 3.2.7 =
* Fixed bug where redirect after login settings not getting cleared.
* Fixed bug with wp_title user profile output.
* Fixed bug where content restriction didn't work in some cases.

= 3.2.6 =
* [New content restriction shortcode](https://profilepress.com/article/wordpress-content-restriction-shortcodes/?utm_source=wporg_listing&utm_medium=readme&utm_campaign=changelog).
* Added content restriction to specific users.

= 3.2.5 =
* [Pro] [Two-Factor Authentication addon](https://profilepress.com/addons/2fa/?utm_source=wporg_listing&utm_medium=readme&utm_campaign=changelog).
* Fixed bug where member directory custom sort wasn't working.
* Fixed conflict with LearnDash Propanel.
* Fixed bug where value attribute of password-reset-submit wasn't working.
* Datepicker now respect WP start of week day.
* Fixed Flatpickr date bug.
* Added prefix to hint.css.

= 3.2.4 =
* Fixed bug where user role selection on registration wasn't working.
* Fixed responsiveness issue in Gerbera member directory theme.

= 3.2.3 =
* Fixed bug where custom content protection message wasn't properly formatted.
* Escaped html attributes in html response returned on ajax form request.
* Removed display-name as title for user profile in member directory.

= 3.2.2 =
* Added a new admin page header.
* Add redirect_to query parameter when Global Access redirects to a login page.

= 3.2.1 =
* Fixed issue with avatar sizes.
* Fix: PHP DOMDocument loadHTML not encoding UTF-8 correctly.
* Fixed: Index column size too large.

= 3.2.0 =
* Added cover photo uploader to WP edit profile page.
* Added pagination to profile posts.
* Added pagination to profile comments.
* Added "previous_page" support for redirecting to previous page using "redirect" form attribute.
* Renamed cover image to cover photo.
* Ensure avatar url returns the full image url.
* Added filter to override get_avatar size.
* Fixed bug where double member directory embed resulted in same result in both.
* Fixed form builder metabox label not correctly displaying.
* Ensure missing closing tags are closed in content protection.
* Made website url in profile display clickable.

= 3.1.19 =
* Fixed bug where html in builder settings modal wasn't parsed.
* Added filter to disable session.
* Further disable screen options where not needed.

= 3.1.18 =
* Added wp_redirect interceptor to prevent 301 redirect during Ajax login.
* Added filter for frontend user profile post listing.
* Added notice to switch to seo friendly permalink structure.
* Fixed bug where media uploader wasn't working in rare cases.
* Disable screen options where not needed.
* Remove wp_login action trigger from autologin because it can break ajax signup form.
* Enhancement: Only set alt in user avatar if it exists.

= 3.1.17 =
* Added wp_login trigger after login.
* Fixed issue where deleted login page causes wp-admin to 404.
* Fixed: Undefined property: stdClass::$url.

= 3.1.16 =
* Added compatibility with a lot of 2fa plugins.

= 3.1.15 =
* Fixed bug with with My Account page not correctly rendering.

= 3.1.14 =
* Minimum PHP version now 5.6.0.

= 3.1.13 =
* Added checks to ensure pages exist before setting/redirecting to them.
* Fixed user profile responsiveness.
* Fixes PHP Fatal error: Uncaught Error: Class "DOMDocument" not found.

= 3.1.12 =
* Fixed issue where logout redirect wasn’t working.
* Fixed issue where line breaks weren't maintained.
* Fixed bug where redirect after login was to an invalid url.

= 3.1.11 =
* Fixed missing sql unescaping in member directory search.
* Validate redirect_to urls to prevent redirect to another site.
* XSS fix by escaping variables in tab widget.

= 3.1.10 =
* Fixed issue where bulk delete wasn't working in some cases.
* Scoped wp_list actions to manage_options capability.
* Fixed typos in admin setting and My Account pages.
* Fixed broken member directory admin page design.
* Improved sanitization and escaping of data.
* Added file upload field support to profile-cpf shortcode.
* Added missing bio support to profile-hide-empty-data shortcode.
* Fixed bug where profile-slug + slash in a post slug redirected to homepage.
* Fixed bug where custom processing labels wasn’t working for password reset forms.

= 3.1.8 =
* Fixed issue with global site access not correctly working.
* Added success color to registration form notice.
* Fixed bug admin bar control wasn't working.
* Fixed bug where specifying custom roles for registration forms didn't work.
* Improved sanitization and escaping of data in settings pages.
* Auto paragraphed form custom messages.

= 3.1.7 =
* Enhancement: JS scripts are now conditionally loaded.
* Fixed display issue in perfecto lite themes.
* Added custom message when logged in users view a login and signup page.
* Added compatibility with peters login redirect.
* Fixed incorrect avatar size retrieval.
* Fixed Warning: array_reduce() expects parameter 1 to be array, null given.

= 3.1.6 =
* Fixed issue where name exist check prevented the form builder from saving.

= 3.1.5 =
* Added form shortcode copying to form builder
* Improvement: Only load tab js when needed.
* Fixed issue where gravatar wasn’t shown for users with avatar.
* Fixed detected builder styling issues.
* Added default attribute to profile cpf shortcode.
* Added edit to form action links.
* Added filter to disable tinymce shortcode modal in post editor.
* Added notice when avatar display is disabled.
* Redirect myaccount page to login page when user not logged in.
* Switch shortcode redirection to html/js redirect method.

= 3.1.4 =
* Security fix: Ensures only valid custom user meta are updated.
* Security fix: validate files and images correctly before they are uploaded.
* Fix: Avatar upload now respects resize settings when using frontend forms.
* Fix: Added link to uploaded file when file custom field is displayed.
* Enhancement: when a user profile doesn't exist, redirect to homepage.
* Enhancement: Remember login by default.

= 3.1.3 =
* Fixed edge cases where post content was overridden.
* Fixed bug where buddypress avatar override wasn't working.
* Removed the shortcode builder due to wp.org no longer accepting code inserters.

= 3.1.2 =
* Fixed issue where registration with username requirement disabled wasn't working.
* Fixed fatal error caused during user registration.

= 3.1.1 =
* Scoped all admin CSS to reduce conflict with other plugin admin pages.
* Fixed incompatibility with Max Mega Menu plugin.
* Fixed PHP 8 Fatal error: Uncaught ValueError: Unknown format specifier.

= 3.1 =
* Fixed bug where disabling admin new user notifications wasn’t working.
* Fixed fatar error: Cannot use ProfilePress\Core\Base as Base because the name is already in use.
* Fixed issue where myaccount js was shown on all pages.

= 3.0 (The rebrand to ProfilePress) =
* Added custom login forms.
* Added frontend user registration form.
* Added User Profiles.
* Added Member Directories.
* Added Content Protection.
* Added Admin bar and dashboard access restriction.

= 2.2.16 =
* Fixed issue of low quality avatar.

= 2.2.15 =
* Fixed broken avatar in some edge cases.

= 2.2.14 =
* Added missing space before classes.

= 2.2.13 =
* Fixed broken avatar image.

= 2.2.12 =
* Fixed issue where contributors and subscribers could see posts in the backend.
* Fixed Persistent XSS via display name when avatar is displayed.

= 2.2.11 =
* Added classes passed to get_avatar function to avatar display
* Added avatar_defaults filter.
* Fix wpua_get_avatar_url not passing args further down.

= 2.2.10 =
* Fixed: Warning: Missing argument 2 for WP_User_Avatar.
* Re-added support for hook implementation eg on wp frontend.

= 2.2.9 =
* Fixed PHP Notice:  Trying to get property 'ID' of non-object.
* Fixed Fatal Error: Cannot use string offset as an array.
* Fixed: Deprecated: whitelist_options is deprecated since version 5.5.0
* Increased the priority of user_profile_picture_description filter usage

= 2.2.8 =
* Fixed: Notice: Object of class WP_User could not be converted.
* Replace core Profile Picture in profile edit screen with WP User Avatar.
* Replace 'Avatar' as a label with 'Profile Picture'.
* Removed dashboard access restriction feature.
* Fixed contextual button display showing undo button on page load.

= 2.2.7 =
* Removed target blank from dismiss url of admin notice
* Code enhancements and improvements.

= 2.2.6 =
* Improve compatibility with latest WordPress version.

= 2.2.5 =
* Fix: Missing translation strings added.

= 2.2.4 =
* Fix: Warning Resolved on Avatar images.

= 2.2.3 =
* Fix: Broken Avatar in buddypress resolved.

= 2.2.2 =
* Fix: Broken avatars on comments section.

= 2.2.1 =
* Fix: get_avatar_url filter is defined.

= 2.2.0 =
* Fix: Fatel Error "Cannot use string offset as an array" resolved in PHP7.2.

= 2.1.9 =
* New: New filter 'wpua_default_alt_tag' added to modify default image alt tag And warning error resolved on stagging environment.

= 2.1.8 =
* Fix: Language Files are updated and warning error resolved on stagging environment.

= 2.1.7 =
* Fix: Default ALT tag added.

= 2.1.6 =
* Fix: Removed ads from the setting page.

= 2.1.5 =
* Fix: Translation bug resolved in class-wp-user-avatar-admin file in PHP 7.

= 2.1.4 =
* Fix: Remove Ads from dashboard and all other pages.

= 2.1.3 =
* Fix: Better Styling

= 2.1.2 =
* Fix: Tested up to 4.9.7

= 2.1.1 =
* Fix: Insecure content over https issue is fixed.

= 2.0.9 =
* New Shortcode: Use [avatar user=current] shortcode to show current logged in user avatar.

= 2.0.8 =
* Fix: Compatible with php 7.

= 2.0.7 =
* Improvement Fix: Removed languages files to be used from core wordpress language packs.

= 2.0.7 =
* Improvement Fix: Removed languages files to be used from core wordpress language packs.

= 2.0.6 =
* Improvement Fix: Broken Jquery files from UI is resolved.

= 2.0.5 =
* Improvement Fix: Broken JS files from UI is resolved.

= 2.0.4 =
* Improvement Fix: Activation warning in some cases is resolved.

= 2.0.3 =
* Improvement Fix: Added missing translation strings in English version of po file.


= 2.0.0 =
* Improvement Fix: Added missing translation strings in English version of po file.
* Bug Fix: Missing $user = $current_user is added in class-wp-user-avatar.php on line 156.


= 1.9.19 =
* Improvement Fix: Fixed add_query_arg() and remove_query_arg() usage to avoid XSS Vulnerability.


= 1.9.18 =
* Bug Fix: Removed cron job dependency for excellent performance.
* Bug Fix: Resolved gravatar was not showing on some special cases.
* Bug Fix: Resolved speed problem in case of large number of users for multisite, bbpress and buddy press.
* Bug Fix: Resolved display custom avatar problem when default and customer avatar is same choosen.


= 1.9.17 =
* Bug Fix: Removed the looping through all users on admin_init action.

= 1.9.16 =
* Bug Fix: lots of entries in wp_options table resolved.

= 1.9.15 =
* Bug Fix: Multiple Cron job added bug resolved.


= 1.9.14 =
* Bug Fix: Speed Issues due to check many times if gravatar exist.
* Bug Fix: Default gravatar issue for mustache and gravatar logo at front end and at buddypress pages
* Bug Fix: Avatar while adding for existing user.
* Bug Fix: UI issue when Gravatar option is enable/disable.


= 1.9.13 =
* Bug Fix: Load _load_wp_includes mostly only on front pages
* Bug Fix: Check for edit_posts capability before enabling filters for Subscribers

= 1.9.12 =
* Add: wpua_edit_user_redirect_url filter
* Add: wpua_edit_user_safe_redirect filter
* Bug Fix: Clean output buffer
* Update: Description field for widget

= 1.9.11 =
* Update: Disable resource manager until a better solution comes along

= 1.9.10 =
* Bug Fix: Check for TinyMCE version

= 1.9.9 =
* Bug Fix: TinyMCE not loaded

= 1.9.8 =
* Bug Fix: Check user permissions for displaying widget
* Update: Load resource manager only if NextGEN Gallery isn't installed

= 1.9.7 =
* Bug Fix: Remove resource manager
* Bug Fix: User ID in shortcode

= 1.9.6 =
* Bug Fix: Load resource manager on front pages only
* Update: [avatar_upload] user variable
* Update: Documentation

= 1.9.5 =
* Add: Start documentation of functions
* Bug Fix: [avatar_upload] permalink and redirect

= 1.9.4 =
* Add: Widget for [avatar_upload]
* Add: wpua_before_avatar_admin and wpua_after_avatar_admin for admin pages
* Bug Fix: Load functions class on plugins_loaded
* Update: Allow non-numeric WPUA value

= 1.9.3 =
* Bug Fix: Missing php

= 1.9.2 =
* Add: Setup class
* Bug Fix: Give wpua_attachment_is_image filter two variables
* Bug Fix: Return [avatar_upload] instead of echo
* Remove: Unneccessary filters
* Update: Allow upload to overwrite avatar for Contributors & Subscribers
* Update: Move Edit Image link for Contributors & Subscribers
* Update: Move text from localize script to data attribute
* Update: Shorten variable names
* Update: Wrap all classes in init

= 1.9.1 =
* Bug Fix: Double underscore for options page title
* Bug Fix: Remove TinyMCE language pack
* Bug Fix: Wrong variables in get_wp_user_avatar filter

= 1.9 =
* Add: Filters throughout plugin
* Bug Fix: Die messages
* Update: Move public functions to class

= 1.8.10 =
* Add: Search and screen option in Media Library view
* Bug Fix: Bulk delete in Media Library view
* Bug Fix: Hide captions if "Show Avatars" is off
* Bug Fix: Update avatar metadata on removal
* Update: Choose Image text
* Update: Show only images in Media Library modal
* Update: Show upload tab if no WP User Avatar image has been selected yet

= 1.8.9 =
* Bug Fix: Check for post object

= 1.8.8 =
* Bug Fix: Media upload scripts

= 1.8.7 =
* Bug Fix: Bad reference to wpua_is_author_or_above

= 1.8.6 =
* Bug Fix: Check for media upload scripts before setting post parent

= 1.8.5 =
* Add: Capability check in one function

= 1.8.4 =
* Bug Fix: Set avatar post parent to 0

= 1.8.3 =
* Bug Fix: Prevent attachment insert without image
* Update: Check for delete_posts capability instead of user role for Subscribers
* Update: Refactor and clean up

= 1.8.2 =
* Bug Fix: Edit avatar setting

= 1.8.1 =
* Bug Fix: Reattach scripts to profile action

= 1.8 =
* Add: Front page uploader
* Add: Media Library view of all avatars
* Bug Fix: Identify public static functions
* Update: Refactor code into separate classes
* Update: Translations

= 1.7.2 =
* Bug Fix: Files not committed properly in previous release

= 1.7.1 =
* Update: Error message handling for front pages

= 1.7 =
* Add: Caption for avatar
* Add: Polish translation
* Update: Error message handling

= 1.6.8 =
* Bug Fix: Shortcode without user

= 1.6.7 =
* Add: Undo button
* Bug Fix: Get original avatar

= 1.6.6 =
* Add: Donation message
* Bug Fix: Die page when image is too large
* Bug Fix: Resize images uploaded through plugin only
* Remove: Unused function
* Update: Refactor JavaScript

= 1.6.5 =
* Bug Fix: Use entire comment object instead of just e-mail address

= 1.6.4 =
* Bug Fix: Correct avatar not showing in widget
* Update: Check compatibility to 3.7.1

= 1.6.3 =
* Bug Fix: Checkbox value for "Crop avatars to exact dimensions"

= 1.6.2 =
* Bug Fix: Show Default Avatar if attachment doesn't exist
* Bug Fix: manage_users_custom_column not returning values

= 1.6.1 =
* Bug Fix: Profile not saving without an avatar for Contributors & Subscribers

= 1.6.0 =
* Add: Filters to change profile HTML structure
* Add: Recognition of sizes registered with add_image_size
* Add: Resize image options for Contributors & Subscribers
* Bug Fix: Rerrange CSS class names

= 1.5.8 =
* Bug Fix: Add function exists checks to prevent redeclare errors
* Bug Fix: Page die if file upload is too big
* Bug Fix: Upload file with submit

= 1.5.7 =
* Bug Fix: Separate out JavaScript for Contributors & Subscribers
* Bug Fix: Subscriber uploader not finding error type

= 1.5.6 =
* Update: Use cache for wpua_has_gravatar

= 1.5.5 =
* Bug Fix: Hide "Edit Image" button if Contributors & Subscribers can't edit avatar
* Bug Fix: Remove edit_posts capability if Subscribers can't edit avatar

= 1.5.4 =
* Add: Option to enable avatar editing privilege for Contributors & Subscribers
* Add: Swedish translation
* Update: Move inline JavaScript to wp-user-avatar.js and wp-user-avatar-admin.js
* Update: Load JavaScript in footer
* Update: Translations

= 1.5.3 =
* Remove: Option to disable scripts in front pages
* Update: Load media upload scripts only on profile and avatar admin pages
* Update: Translations

= 1.5.2 =
* Bug Fix: Ability to disable scripts in front pages

= 1.5.1 =
* Add: Ability to disable scripts in front pages
* Update: Uninstall options
* Update: Translations

= 1.5 =
* Add: Ability to disable Gravatar avatars
* Add: Upload size limiter for Contributors & Subscribers
* Add: French, German, and Spanish translations

= 1.4.2 =
* Bug Fix: Include screen.php for get_current_screen function

= 1.4.1 =
* Bug Fix: Allow multipart data in form
* Bug Fix: Use wp_die for errors

= 1.4 =
* Add: Uploader for Contributors & Subscribers
* Add: Media states for avatar images
* Add: Plugin admin settings
* Update: Change support only to WP 3.4+

= 1.3.6 =
* Add: Target for link in shortcode
* Update: Clean up code and add more comments

= 1.3.5 =
* Bug Fix: Swap TinyMCE file locations

= 1.3.4 =
* Update: Change support only to WP 3.3+ because of jQuery 1.7.1 support

= 1.3.3 =
* Update: Shortcode checks for user ID, login, slug, or e-mail address
* Update: Move jquery to register_script for < WP 3.5

= 1.3.2 =
* Bug Fix: Check for user before setting name in alt tag
* Update: readme.txt

= 1.3.1 =
* Bug Fix: Rename usermeta only if found

= 1.3 =
* Add: Multisite support
* Bug Fix: Warnings if no user found
* Update: Enable action_show_user_profile for any class using show_user_profile hook

= 1.2.6 =
* Bug Fix: options-discussion.php page doesn't show default avatars

= 1.2.5 =
* Bug Fix: Comment author showing wrong avatar
* Bug Fix: Avatar adds fixed dimensions when non-numeric size is used
* Update: Use local image for default avatar instead of calling image from Gravatar

= 1.2.4 =
* Bug Fix: Show default avatar when user removes custom avatar
* Bug Fix: Default Avatar save setting

= 1.2.3 =
* Bug Fix: Show default avatar when user removes custom avatar
* Bug Fix: Default Avatar save setting

= 1.2.2 =
* Add: Ability for bbPress users to edit avatar on front profile page
* Add: Link options for shortcode
* Bug Fix: Show WP User Avatar only to users with upload_files capability

= 1.2.1 =
* Add: TinyMCE button
* Update: Clean up redundant code
* Update: Compatibility only back to WordPress 3.3

= 1.2 =
* Add: Default Avatar setting

= 1.1.8 =
* Bug Fix: Change update_usermeta to update_user_meta

= 1.1.6 =
* Bug Fix: Image not showing in user profile edit

= 1.1.5a =
* Update: readme.txt

= 1.1.5 =
* Bug Fix: Remove stray curly bracket

= 1.1.4 =
* Bug Fix: Change get_usermeta to get_user_meta
* Bug Fix: Non-object warning when retrieving user ID

= 1.1.3 =
* Bug Fix: Comment author with no e-mail address

= 1.1.2 =
* Remove: Unused variables

= 1.1.1 =
* Bug Fix: Capabilities error in comment avatar

= 1.1 =
* Add: Add filter for get_avatar
* Add: CSS alignment classes
* Add: Replace comment author avatar
* Add: Shortcode
* Update: readme.txt

= 1.0.2 =
* Update: FAQ
* Remove: CSS that hides "Insert into Post"

= 1.0.1 =
* Add: CSS classes to image output

= 1.0 =
* Initial release

== Upgrade Notice ==

= 1.8 =
* New Feature: Front page uploader
* New Feature: Media Library view of all avatars

= 1.5.3 =
* Notice: WP User Avatar 1.5.3 only supports WordPress 3.5 and above. If you are using an older version of WordPress, please upgrade your version of WordPress first.

= 1.5 =
* New Feature: Ability to disable Gravatar avatars
* New Feature: Upload size limiter for Contributors & Subscribers
* New Feature: French and German translations

= 1.4 =
* New Feature: Setting to allow all users to upload avatars
* New Feature: Setting to add or remove Visual Editor button
* New Feature: Media states for avatar images
* Notice: WP User Avatar 1.4 only supports WordPress 3.4 and above. If you are using an older version of WordPress, please upgrade your version of WordPress first.

= 1.3 =
* New Feature: Multisite support

= 1.2.2 =
* New Features: Link options for shortcode, bbPress integration

= 1.2.1 =
* New Feature: Shortcode insertion button for Visual Editor

= 1.2 =
* New Feature: Default Avatar customization

= 1.1 =
* New Features: [avatar] shortcode, direct replacement of get_avatar() and comment author avatar, more CSS classes