= 3.1.5 =

* Addressed some security issues to prevent XSS vulnerabilities.
* Updated [wpmem_show_count] shortcode to include count of total blog users and users by role.  See: http://rkt.bz/xC
* Updated [wpmem_field] shortcode to accept [wpmem_field meta_key] instead of [wpmem_field field="meta_key"] (although the latter will still work).  See http://rkt.bz/ae
* Updated [wpmem_loginout] shortcode with some improvements to function code and link text attributes.  See: http://rkt.bz/29
* Updated auto excerpt for improved functionality, uses wp_trim_words(), deprecated add_ellipsis, strip_tags, close_tags, parse_shortcodes, strip_shortcodes for filter (these were never documented so it is unlikely that anyone uses them).
* Updated hidden field type, now allows adding hidden fields to the registration form.
* Compartmentalized installation of initial settings.
* Field loader now validates settings, if none exist due to install error it will run the default fields install.
* Removed dialog setting downgrade on deactivation. Need to re-evaluate necessity of downgrading.
* Fixed issue with slash handling in Emails tab.
* Updated [wp-members] deprecated shortcode notice to include post/page information on where the shortcode is being used.

= 3.1.4 =

* Change to the way the PayPal extension is integrated with the main plugin. This allows for some necessary filename changes in the extension.
* Added checks for PayPal extension function calls within the main plugin to avoid possible errors if it is deactivated.
* New wpmem_is_tab() API function checks the current tab in the plugin's admin panel.
* New wpmem_is_reg_page() API function checks if the page the user registered on is the registration page.
* New wpmem_load_dropins() API function runs dropin load function.
* Documentation updates, cleaned up and addressed several @todo tags.
* Updated [wpmem_field] shortcode to display display values instead of stored values for select (dropdown), multiple select, multiple checkbox, and radio group field types.
* Fixed bug in admin js file introduced when forgot username shortcode was added.
* Updates to reCAPTCHA2. Trims keys on save to avoid possible copy/paste whitespace issues, displays API error code(s) if WP_DEBUG is turned on, change use of file_get_contents() to wp_remote_fopen() for broader acceptable use.

= 3.1.3 =

* Fixed issue with display of [wp-members] field tag. Note: although this tag should remain operable, the tag is officially obsolete since 2.9.8 and should be used as [wpmem_field].
* Fixed issue with calling PayPal extension functions if settings are enabled but the extension is disabled.
* Updated some admin-side strings for translation.
* Updated wpmem_redirect_to_login() to __not__ check for wpmem_is_blocked(). Handling that outside the function will expand its usability.
* Updated row_after logic in login form function so that it can be used for adding tags at the end of a row w/o adding a tag at the beginning.
* Updated widget to check for wpmem_do_sidebar() instead of obsolete wpmem() function.
* Updated email shortcodes used in new install.
* Added new utility function wpmem_get() for checking posted variables and query strings with isset() and setting a default value.
* Added a nonce to register redirect by shortcode parameter. This will lead to being able to display a success message on the redirected page.
* Added redirect_to argument in wpmem_redirect_to_login().
* Added generic registration error message.
* Added [wpmem_form forgot_username] shortcode for displaying the forgot username form.

= 3.1.2 =

* Minimum WordPress version increased to 3.6.
* Added user counts to user screen links (set as transient)
* Added redirect_to parameter to wpmem_login_url()
* Added action parameter to wpmem_profile_url()
* Added api function wpmem_user_pages() to return an array of the login, register, and profile page urls.
* Added shortcode [wpmem_tos] for Terms of Service page url (replaces [wp-members page=tos url=http://mysite.com/path/to/tos/]).
* Added wpmem_write_log() function for writing notices to the WP error log.
* Deprecated [wp-members] shortcode, all other shortcodes no longer rely on wpmem_shortcode().
* Fixed issue with pre-selected dropdown values to not select empty (separator) rows.
* Fixed email shortcodes for field and custom shortcodes not being parsed.

= 3.1.1 =

* Added downgrade function (currently runs on deactivation) to allow for version rollbacks.
* Added new dialogs functions to admin api, allows for custom dialogs to be added.
* Added $user_id and $row to wpmem_admin_profile_field and wpmem_user_profile_field filters.
* Added new api class and api functions.
* Added [wpmem_loginout] shortcode.
* Added support for new field types to native registration and users > add new (except file/image fields).
* Updated users > add new so that user can be activated when added.
* Updated [wpmem_logged_in] shortcode so that content is not shown on on a user profile page action.
* Updated email settings to only save new from/name if changed.
* Updated admin warning messges.
* Updated multiselect and multicheckbox fields to allow user selected delimiter (defaults to pipe "|").
* Fixes issue with profile update when file/image field is required.
* Fixes image field edit in fields tab to include file type.
* Fixes attribution setting for 3.0 settings array.
* Fixes for PHP7.

= 3.1.0 =

This package contains several fixes, some new filters, new field types and other functional improvements.

* Some general code cleanup, reviewing inline documentation and comments.
* Fixed issue for sidebar with redirect_to parameter set in widget settings.
* Fixed issue for custom error messages and email comparison error for profile update (so that errors show in form update state and not on links page).
* Fixed main options tab where checkbox may not display correct setting if unchecked.
* Fixed translation issue for required field error where all of the message except the field name was translated.
* Fixed issue for register shortcode page where if a user has registered, and is logging in but the login fails, display the login error message.
* Fixed register shortcode redirect parameter.
* Fixed confirm_password to bypass sanitize_text_field (which breaks password comparison if certain characters are used).
* Added logic so that user_pages are not blocked (login, register, user_profile).
* Added after_wrapper array value for wpmem_{$page}_links_args filters
* Added a new admin api class, utilities object class, and forms object class.
* Added user facing strings as an array in the main $wpmem object class.
* Added wpmem_default_text_strings filter for user facing text strings.
* Added new wpmem_sidebar_status_args filter hook.
* Added new container in main object for email from and from name settings.
* Added file upload functions.
* Added new field types: multiple checkbox, multiple select, radio, file, image, email, url.
* Added "values" key to the register form rows array to hold possible values (i.e. select, multiple select, multiple checkbox, and radio group) and the actual value to be in the "value" key.
* Added the ability for dropdown/select fields to have a default value other than the first value.
* Added filter wpmem_user_upload_dir for filtering the location of user uploaded files.
* Added wpmem_register_form_rows_admin and wpmem_register_form_rows_profile filter hooks.
* Deprecated use of wpmem_chk_qstr() function, use add_query_arg() instead.
* Deprecated use of get_currentuserinfo() (deprecated in WP 4.5), use wp_get_current_user() instead.
* Email function updates, added 'footer' as an array value in the main wpmem_email_filter filter.
* Changed install to set email/confirm_email and user_url as HTML5 field types "email" and "url" (now supported).
* Changed get_action call from init action to template_redirect action.
* Changed username in register form from log to user_login to match wp native registration form.
* Changed [wp-members page="user-profile"] shortcode to [wpmem_profile] (old shortcode will still work).
* Removed redirect parameter from register shortcode in shortcode menu.
* Removed kubrick stylesheet from selector (still packaged with download, shows as custom url if used).
* Changed all _update_ functions in install package to _upgrade_.
* Fixes an issue with PayPal extension where users may be set to pending if moderated registration is enabled after the user already has an expiration date.
* Update wpmem_do_sidebar to use use add_query_arg() if on a search query.

= 3.0.9 =

* Added Custom Post Type support.
* Added wpmem_member_links_args and wpmem_register_links_args filters.
* Added $link parameter to wpmem_forgot_link_str and wpmem_reg_link_str filters (gives just the link as an available parameter).
* Added new wpmem_sb_reg_link_str and wpmem_sb_forgot_link_str filters (same format as above).
* Added [email] and [user-profile] shortcodes to the new user registration email.
* Added label_text key to wpmem_register_form_rows filter.
* Added new auto excerpt settings, can now be set by post type.
* Added new auto excerpt features including new wpmem_auto_excerpt_args filter.
* Added forgot username retrieveal link (included on forgot password reset form).
* Added wpmem_username_link and wpmem_username_link_str for filtering forgot username retrieval link.
* Added new upgrade process to WP_Members object class.
* Fixed handling of post bulk actions to keep current screen (if one is used).
* Fixed handling of updates to the user pages in the options tab.
* Fixed handling of empty post object in is_blocked() function.
* Improved email functions to eliminate get_user_meta() calls when not needed.

= 3.0.8 =

* Added process for forgotten username retrieval.
* Removed last remaining instances of extract function.
* Updated settings for special pages (login|register|user-profile) to store only the numeric primary key ID. This will eliminate the need to update these settings if the site is moved (from a dev to live site, for example).  Legacy full URL settings will still be compatible without needing to be updated, but will be automatically updated when main options are saved.

= 3.0.7 =

* Fix for use of display_name on profile update.
* Fix for newer installs (post WP 4.0) where WPLANG is not defined and reCAPTCHA is used.
* Fix in wpmem_form shortcode to skp if no additional tag exists.
* Fix to plugin_basename.
* Changes in core to use fields from WP_Members class (preparing for new form field process).
* Reviews and updates to code standards and inline documentation.
* Fix for password reset (typo in object name checking for moderated registration)
* Fix for PayPal extension (http://rkt.bz/r3); added logic to avoid errors if the PayPal extension is disabled but the main option setting remained turned on.

= 3.0.6 =

* Updates to localization function - documented plugin_locale filter, wpmem_localization_file filter, and improved load_textdomain logic.
* Added /lang domain path to plugin header.
* Fixed a bug in the user export function that broke CSV columns when moderated registration was turned on.
* Improved current page retrieval in wpmem_redirect_to_login() function.
* Fixed admin enqueued scripts (post/page screen hook did not load from new location).

= 3.0.5 =

* Updated wpmem_pwd_change and wpmem_pwd_reset action hooks to include password as a parameter.
* Stylesheet updates for 2015, 2014, and generic (both float and no float).
* Fix to TinyMCE shortcode button, should now load button on new post/page editor.
* Added [WP-Members] to the TinyMCE shortcode button for clarity as to what it is.
* Moved admin js and css files to /admin/js/ and /admin/css/
* Moved admin class files to /admin/includes/
* Updated and verified all directories contain an index.php file to prevent directory browsing.

= 3.0.4 =

* Reintroduced the global action variable $wpmem_a for backward compatibility with certain add-ons, most notably the WP-Members MailChimp extension ( see http://rkt.bz/3b ). Users of this extension should upgrade.  This variable had been replaced with the new WP-Members object class introduced in 3.0. However, users of older extensions and those that may have customziations with logic may be using this variable, so rather than force updating and upgrading, it is being added back in.
* Change to the priority of functions hooked to the the_content filter. Lowering the priority should better integrate the plugin with various builder plugins and other processes that currently filter the_content after WP-Members since the content will now be filtered later in the process. This also should improve situations where in the past the on-the-fly texturization shortcode for the WP-Members forms might remain unparsed.

= 3.0.3 =

* Bug fix recaptcha v2 decode json response on validation.
* Bug fix typo in $wpmem object name in admin/user-profile.php.
* Bug fix message string variable in wpmem_msg_dialog_arr filter.
* Fix register form shortcode redirect_to parameter.
* Admin forms now use submit_button() function to generate submit button.
* Changed localization to load on init action which will allow for more flexibility with filtering custom language files.
* Added wpmem_localization_file and wpmem_localization_dir filters.
* Localization checks for file in /wp-content/ language directory first, then loads plugin default.

= 3.0.2 =

* Added reCAPTCHA version 2 as an option. v1 will remain available for now, to be fully deprecated later.
* Fixed widget to use __construct for WP 4.3 compatibility.
* Added error checking for WP reserved names when adding new custom fields.
* Added wpmem_wp_reserved_terms filter for overriding reserved terms list.
* Added trim whitespace to password reset and password change form validation.

= 3.0.1 =

* Fixed use of wp_signon() for ssl.
* Fixed [wpmem_msurl] email shortcode.
* Fixed admin js and css load (removed unnecessary slash).
* Fixed autoexcerpt to use setting from object and not wpmemembers_autoex option.
* Added filter to remove comments array if content is blocked.

= 3.0.0 =

This release makes significant changes to the plugin's main options in the way they are stored. While care has been taken to make sure that you can roll back to a previous version, you may need to resave settings in the plugin's main options tab when attempting to roll back. It is advised that you test this update prior upgrading an existing install on a production site.

If you have any custom functions hooked to filters and actions that call any file includes directly from the plugin, please note that several file names have changed.

* New settings and new plugin class WP_Members.
* New settings now natively support Custom Post Types, both setting defaults and individual post blocking.
* Settings constants removed in favor of using the $wpmem object class.
* Added new|edit toggle to wpmem-register_data filter hook.
* wpmem_settings_loaded action added.
* Securify comments changed to use comments_open instead of comments_template (with a blank template).
* New wpmem_securify_comments filter hook to customize whether comments load or not.
* Registration clear form button defaults to false.
* Removed wp_set_auth_cookie from login function; it is already done as part of wp_signon.
* Post meta box title filter is now for all post types wpmem_admin_{post type}_meta_title.
* New filter for Really Simple Captcha folder location: wpmem_rs_captcha_folder.
* New shortcodes [wpmem_form] added.
* Shortcode dropdown selector added to tinymce toolbar in Post/Page editor.
* Added redirect_to as a function argument if calling wpmem_logout() directly.

= 2.9.9 =
* Code standards in wp-members-email.php
* Rebuilt admin notification email to follow new regular email structure with more filters in wp-members-email.com
* Added $toggle to headers filter that is used in both emails so that headers could be filtered based on the email being sent (i.e. sending plain text for admin notification vs html for others. in wp-members-email.php
* Added redirect_to parameter as a widget entry in wp-members-sidebar.php
* Corrected flaws in error checking for adding new fields in /admin/tab-fields.php
* Added functions for updating user_status in wp_users table in /admin/users.php
* Fixed get_user_meta 'true' error in wp-members-core.php, users.php, /admin/users.php, /admin/user-profile.php
* Added dummy comments template to protect comments without post password.
* Added new action for deactivting a user (opposite of wpmem_user_activated).
* Added check to remove password, confirm_password, and confirm_email from export (data for these was already skipped, but the field space was there).
* Added wpmem_status_msg_args and wpmem_login_links_args filters.
* Corrected Really Simple Captcha, added field wrapper and should not display on user profile edit.

= 2.9.8 =
* Fixed bug in settings update that caused the stored version number to be erased.
* Fixed bug with new email function that causes the wpmem_email_newreg not to apply any filtered changes to the email body.
* Major updates to wpmem_block logic, changing to universal _wpmem_block from two separate metas (block & unblock).
* Fixed bug in the page bulk action that caused the result to end up on the posts page.
* Added wpmem_use_ssl utility function.
* Added use of wpmem_use_ssl function to reCAPTCHA to load correctly (previously handled ssl directly).
* Added use of wpmem_use_ssl function for default input text for custom register page, user profile page, and custom stylesheet settings inputs.
* Added new redirect_to parameter to login page shortcode.
* Fixed checkbox for checked by default on the add new user screen.
* Fixed "admin only" fields to display on the add new user screen.
* Added underscores parameter to the fields shortcode to strip underscores. Defaults to off.
* Updated excerpt logic to not show excerpts on multipage posts if not the first page.
* Added new 2015 stylesheets (currently available, but subject to changes/updates)

= 2.9.7 =
* Fixed comparison for the checkbox CSS class in wpmem_create_formfield.
* Corrected wp native registration function for use on localized sites.
* Rebuilt export function, merges the two previous functions into one (export selected and export all) and will allow for calling custom exports.
* Rebuilt user email function.
* Added default "from" headers to email.
* Added new filter wpmem_export_args.
* Added new filter wpmem_email_filter.
* Added a redirect_to parameter to the registration form similar to the login.
* Fixed plugin admin page load for multisite, if user has theme options edit capabilities.

= 2.9.6 =
* Updated admin.js to show/hide custom url fields for User Profile page, Register page, and Stylesheet settings.
* Updated options panel to show/hide custom url fields mentioned above.
* Updated admin.js to show/hide checkbox and dropdown extra settings when adding a custom field in Fields.
* Updated fields panel to show/hide extra fields mentioned above.
* Updated reCAPTCHA to automatically change language if the language is (1) set as WPLANG and (2) used by reCAPTCHA.
* Added error checking if Really Simple CAPTCHA is enabled but not installed.
* Updated registration function for improved operation when used with popular cache plugins.

= 2.9.5 =

* Added support for Really Simple CAPTCHA (Really Simple CAPTCHA must also be installed).
* Added support for custom field meta keys as shortcodes in emails.
* Added support for default permalinks when using wpmem_logout shortcode.
* Improved admin notification email to skip metas defined as excluded meta.
* Fixed activation function for activations from user profile omitting passwords (see 2.9.4 bug fix for moderated password registration).

= 2.9.4 =

* Bug fix for moderated password registration (changes in 2.9.3 introduced a bug that caused moderated registration to send a blank password).
* Bug fix for premium PayPal Subscription extension showing expired users, improved user query.
* Fixed user profile update so that wp_update_user is called only once.
* Added [wpmem_logged_out] shortcode to show content to logged out users. Same as [wp-members status="out"] shortcode but can be used on blocked content without changing security status.
* Removed checkbox for adding password and confirmation fields to the User Screen since these are not stored data.

= 2.9.3 =

* Fixed a backend user profile update and create new user issue introduced with some 2.9.2 code improvements. The issue caused the additional fields not to save.
* Added a confirm password and confirm email field to the default install, as well as automatic form validation when used.
* Updated all functions that store/read user data to skip these fields as there is not need to store them, they are simply form validation fields.
* Improved error checking in the admin Fields tab when attempting to add an option name that already exists.
* Added separate registration validation for multisite (refers to WP-Members front end registration only). Multisite has different username requirements and the existing error message was valid, the wording did not fit well for multisite making it confusing. The multisite validation returns the WP error message rather than a custom error message. I may be updating other validation messages in the plugin to utilize this method (while allowing them to be filtered for customization).
* Added a separate install for multisite.
* Updated the template for all localization files (some strings still need translation).

= 2.9.2 =

* Added user ID parameter to wpmem_login_redirect filter.
* Added new action hooks
* Added logout shortcode
* Added wpmem_msg_dialog_arr filter
* Improvements to registration function
* Admin panel updates for smaller screens
* Added bulk block/unblock for posts and pages

= 2.9.1 =

This is primarily a cleanup and fix update with a few new features.

* Added WP-Members registration fields to WordPress Users > Add New screen.
* Fixed wpmem_test_shortcode error for TOS.
* Plugin options tab - lists notify address for notify admin setting
* Updated default password change success message - removed need to re-login string.
* Make dropdown values in wpmem_create_formfield function translatable strings for localization
* Changed "logout" to "log out"
* Update to register function to check for unset values for WP native fields.
* Moved the path constants to be defined earlier.
* Added $action parameter to most of the login form filters, allows more direct filtering based on form state (login, password reset, password change).

= 2.9.0 =

This is a major update focusing on upgrades to the form building functions, but also includes a number of other changes and improvements.

Major updates

* New form building functions include new hooks and a more customizable form building process.
* Form functions moved from wp-members-dialogs.php to new file forms.php
* Sidebar login form also rebuilt in the same way the login and register forms were changed.
* Legacy (old table based) forms completely removed in 2.9
* Updates to error and dialog messages, removed unnecessary html tags

Changes in wp-members-core.php

* updated calling of wpmem_test_shortcode, now it works like has_shortcode, put off deprecating at this time.
* updated shortcode to include tos page, allow for new tags (wpmem_field, wpmem_logged_in) (added new shortcode calls in wp-members.php), and accept id attribute for fields. Added $tag argument, can use shortcode_atts_{$shortcode} filter
* moved wpmem_test_shortcode to utilities.php
* added new action hooks: wpmem_pwd_change and wpmem_pwd_reset
* added new filter hook: wpmem_regchk

Changes in wp-members.php

* a pretty major overhaul of this file. Moved all but four declarations that weren't already in functions into the init function. Only two constants are declared before the function. This initialization comes after the theme is setup, so pre-initilization needs, such as loading pluggable functions can be declared in the theme's functions.php file. Pluggable functions do not need to be loaded only from the wp-members-pluggable.php file.
* The file name of the wp-members-pluggable.php file is loaded in a filter hook, wpmem_plugins_file, so you could call it something else or load it from another location.
* New action hooks: wpmem_pre_init, wpmem_after_init, wpmem_pre_admin_init, wpmem_after_admin_init
* New filter hook: wpmem_settings

Miscellaneous Changes

* Updates to the html for some of the admin to better fit the new WP admin layout. Old html was compatible, but the new works better.
* Updates to the options tab to better group options
* Updates to native (wp-login.php) registration to include require field indication
* Review of output, localized a few missed strings
* Implementation of changes in localization of field names. English values are now stored in the db (except for custom fields that would be whatever language the user creates the field as). Fields are then translated when displayed, rather than stored as translated strings.
* Updated user profile to fix some issues with checkbox and required fields in users.php
* Updated user export to include wp_users table fields user_url, user_nicename, and display_name fields
* Code cleanup in wpmem_block function
* Updated autoexcerpt function
* New filter hooks for post editor meta box titles: wpmem_admin_post_meta_title, wpmem_admin_page_meta_title
* Some updates to existing stylesheets
* Added new stylesheets, including two with non-floated elements. Generic, non-floated stylesheet new default for fresh installs

= 2.8.10 = 

This is a security update the closes 2 reported XSS vulnerabilities.  This update also includes a fix for using SSL with reCAPTCHA.

= 2.8.9 =

This is an interim update with some changes that need to get done prior to the 2.9 release.  Note: This is the last version that will be compatible with WordPress 3.1.  Also, this will be the last version to contain the legacy table based forms.  These have been deprecated since version 2.8.0.

* Added a Twenty Fourteen stylesheet based on the new WP default theme.
* Twenty Fourteen installs as the default stylesheet with a new install
* User export fix - the new user export functions from 2.8.7 were inadvertenly incompatible with PHP 5.2.4 (WP minimum requirements)
* Admin options tab style/layout updates to work better with new WP (3.8) admin theme
* Moved the plugin's texurize process into wpmem_securify rather than in the form functions. This is going to happen in 2.9, and doing it as an interim update will allow users to test 2.9 with pluggable functions.
* Added the texturize process to the shortcode function for the same reason as above, plus this runs on the User List extension as well.
* Made the shortcode function pluggable
* Improved the auto excerpt function

= 2.8.8 =

* Updated no password reset for non-activated users to use get_user_by('email')
* Fixed undefined variable $sendback in users.php
* Fixed undefined user object in wpmem_check_activated function
* Set a column width for the WP-Members column in the All Posts and All Pages admin panels, load admin.css
* Added wpmem_admin_after_block_meta and wpmem_admin_block_meta_save actions

= 2.8.7 =

* Upgraded the user export process.  Eliminates the need for directly loading an export file as in past versions.  This also eliminates the need for wp-load.php.
* All user management functions that were in the Users > WP-Members menu are now included under Users > All Users.  The Users > WP-Members menu is fully deprecated and removed.
* Corrected some undefined variable notices.
* New filter for the widget title wpmem_widget_title
* Further enhancements to the native WP registration. Even though the plugin was intended to put the registration process into the front end of your WP site, there are always users that either (a) prefer to use the backend native registration or (b) don't read or follow installation and usage instructions. So in an earlier version, I went ahead and added the WP-Members custom fields to the backend registration if it is turned on. This version finishes that process with proper support for dropdown select fields, checkboxes, and text area fields.  It also cleans up the error checking and CSS styling for that process.

= 2.8.6 =

* Continued updating the stylesheets, this update includes some minor changes to 2010, 2011, 2012, and 2013 to clean up the .noinput class (used in the User Profile update) and the reCAPTCHA area.
* Added responsive elements to the Twenty Twelve stylesheet (remains the plugin's default)
* Changed from PHP_SELF to REQUEST_URI for elements where the plugin forms need to post back to themselves and no other URL exists
* Changed from "siteurl" to "home" for getting the home page link - corrects problems for users who have WP installed in a different directory

= 2.8.5 =

* Improved the Twenty Eleven and Twenty Twelve stylesheets (Twenty Twelve remains the plugin default).
* Added a responsive stylesheet based on Twenty Thirteen theme.
* Added a new filter hook for password reset args wpmem_pwdreset_args. This will allow mods for single stage reset (username only or email only).
* Corrected update_user_meta during registration use the filtered value of the user's IP and registration URL.

= 2.8.4 =

* Fixed a small bug on admin-side user profile that caused checkboxes to not update correctly
* Added optional small "powered by" attribution link at the bottom of the registration form.

= 2.8.3 =

Feature Updates

* Allows native fields display_name, nicename, and nickname to be removed from the field manager.
* New filter wpmem_logout_link filters all logout links.
* Added default registration via wp-login page (backend).  This of course can be disabled by unchecking "anyone can register" in the WP settings.
* Completion of user admin panel implementation.  Added screens for non-active and non-exported users.
* Added a custom column to page/post tables to indicate if a post/page is blocked/unblocked opposite the chosen default setting.

Fixes

* Fixed bug in admin/post.php that caused an error due a typo in the selected capability.
* Applied the patch for the users table custom columns that didn't return non-WP-Members custom column values.
* Fixed the use of the nonce constant to check if the constant is defined.
* Applied patch to the utilities file that left some debugging code artifacts in the 2.8.2 release.

Improvements

* Updated dashboard widget to either superadmin or not display for multisite.
* Added a div tag to the "Required Field" text in the registration form - NOTE: if you run any filters on the registration form, you may need to test them and update accordingly.
* Updated the included stylesheets for the addition of req-text class for the "Required Field" text in the registration form.
* Added Portugese translation files (Thanks Joana!)

= 2.8.2 =

Feature Updates

* Added WP user fields user_nicename, display_name, and nickname to the $fields array, defaults to $username for backward compatibility.
* Updated field manager process to allow user_nicename, display_name, and nickname to be added via the fields manager as WP native fields
* Added wpmem_register_data filter for $fields to allow filtering of all fields prior to new user insertion, including above new fields (added updates to registration function to make better use of the filter).
* Added wpmem_pre_validate_form for $fields to allow filtering fields prior to default form field validation.
* Begin implementation of moving bulk user management features into Users > All Users.  Users > All Users screen can now activate and export users, and will show additional fields as selected in the fields manager. 
* Added wpmem_admin_profile_heading, wpmem_admin_profile_field, and wpmem_admin_profile_update filters. These filters are all part of the user profile section.

Fixes, Patches, & Code Improvements

* Fixed the conversion of update-profile to members-area shortcode.  The bug renders all page shortcodes as members-area.
* Fixed the activate user process for user defined passwords, a bug from 2.8.0/2.8.1.
* Fixed a bug that can cause the sidebar login widget to not post to the correct url when a static front page is used.
* Fixed user profile update (updates with custom checkbox don't stay checked), an issue from 2.8.0.
* Patch correcting the front-side registration form nonce.  This patch should improve reliability while still using nonces for security.
* Patch for the dropdown field for users running < PHP 5.3.
* Made front-side nonce optional, defaults to off.
* Moved utility functions out of core.php to utility file utilities.php.
* Moved the location of the wpmem_email_notify hook so the filter comes after shortcodes are parsed.
* Updated the registration function to rely on the values contain in $fields, allowing for the array values to be filtered.
* Updated the registration form to accommodate registration function updates.
* Improved auto excerpt function screens for unclosed common html tags and provides a closing tag if none exists.
* Improved export process to wrap fields with double quotes - fixes issues if field contains a comma.

= 2.8.1 =

Security update release: 2.8.1 primarily closes some potential security holes.  This update is highly recommended.

Security Updates:

* Closed potential cross site scripting exploit
* Added nonces to front-side registration
* Updated nonces in admin form submission
* Security evaluation and updates to other areas

Feature Updates:

* Added dropdown option for User Profile (members-area) and Register page location
* Updated dropdown field to accommodate commas in the values (ex: 1,000)

Other Updates:

* Updated TOS shortcode to be case-insensitive for the shortcode parameter (TOS/tos)
* Begin deprecating members-area parameter to be replaced with user-profile
* Separated User Profile functions from wp-members-core.php file
* Applied post 2.8.0 patches and corrected missing files

= 2.8.0 =

New Feature release: 2.8.0 offers the beginning of a major rebuild of the admin panels with a few front-side features slipped in along the way.

Security Improvements:

* Added a dummy index.php file in all plugin directories.  This is a security improvement and disallows direct access to a directory (in case your server allows directory browsing).

Code Improvements:

* Added new constants WPMEM_DIR and WPMEM_PATH.  This will allow you to grab the directory of the plugin directly in action and filter functions.
* Broke up the admin file wp-members-admin.php into multiple files based on function.  These are all now moved into an /admin/ directory.
* Added the password field to the fields array in the registration function so that this can be used in the registration hooks and filters.
* Updated the logout process to use wp_clear_auth_cookie.  The previous wp_clearcookie was deprecated and was causing header errors in some instances.
* Improved the TOS shortcode. This should eliminate some of the parsing errors some users experienced in previous releases.

Admin Panel Updates:

* New admin look updates the tabs to the WP format.  This also was built to allow extensible tabs so you can hook in and create your own tabs and panels.
* Add field dialog was updated and improved.
* Added an admin process to edit existing fields.
* Added new option in the plugin options to load one of the predefined stylesheets from a dropdown.
* Block/Unblock post meta box added to the post/page editor – no need to use custom fields anymore (this feature actually updates the custom fields accordingly, so you can use custom fields if you want to).
* Added dropdown selector for preloaded stylesheets - no need to enter the location of the preloaded stylesheets to use them.

New Filters:

* wpmem_admin_tabs - allows developers to hook into the admin tabs to add additional tabs.
* wpmem_admin_style_list - allows developers to hook into the dropdown list of stylesheets to add additional stylesheets.
* wpmem_auto_excerpt - filters the automatically generated excerpt.  Allows you to customize a 'read more' link.
* wpmem_post_password - filters the automatically generated post password that blocks comments on blocked posts/pages.
* wpmem_forgot_link - filters the forgot password link that shows in the login forms.
* wpmem_reg_link - filters the register link that shows in the login forms.

Other Updates:

* Added a new pre-loaded stylesheet for Twenty Twelve theme.  New installs will default to this style.  Note: with the addition of the new style selector in the admin panel, you can easily toggle between the preloaded stylesheets.  You can also add your own using the new wpmem_admin_style_list filter, enter the URL location in the Custom Stylesheet field, or load one using wp_enqueue_scripts.

= 2.7.7 =

New Features:

* Added a new filter hook wpmem_securify.  This hook applies a filter to the $content variable at the end of the wpmem_securify function.  The primary reason for this hook is to be able to run filters on $content that would give you the ability to block content even if the user is logged in (the wpmem_block filter only works for non-logged in state).  This will bring in the ability to block users from content based on defined criteria such as content is for members of "group A" but the user is does not have access to "group A" content.
* Added wpmem_email_headers filter hook.  This will allow you to easily filter the headers for the email process of the plugin giving you the ability to send HTML email without modifying the plugin.
* Added wpmem_user_activated action hook.  This hook will give you the ability to run actions at the end of user activation.  For sites that moderate registration, this gives you the ability to hook in actions that you might not want to do before approval of the registration (such as would normally be done with wpmem_post_register_data).
* Added new shortcode for creating a user list/member directory.  __This shortcode requires installation of the premium add-on module WP-Members User List [available to rocketgeek.com members](http://rocketgeek.com/about/site-membership-subscription/)__. The shortcode has parameters for including a member search function as well as filter hooks for filtering the layout of the directory elements.
* Added new shortcode for protecting inline content with the __premium add-on module WP-Members PayPal Subscription [available to rocketgeek.com members](http://rocketgeek.com/about/site-membership-subscription/)__.

Bug Fix:

* Fixed a bug where the reCAPTCHA error messages do not display on the [shortcode pages "register" and "members-area"](http://rocketgeek.com/plugins/wp-members/users-guide/shortcodes/page-shortcodes/).

Code Improvement:

* Completed a rebuild of the login function wpmem_login.  Updated the cookie process to switch from [wp_setcookie](http://codex.wordpress.org/Function_Reference/wp_setcookie) (which is deprecated) to [wp_set_auth_cookie](http://codex.wordpress.org/Function_Reference/wp_set_auth_cookie). Also, the [wpmem_login_redirect hook](http://rocketgeek.com/plugins/wp-members/users-guide/filter-hooks/wpmem_login_redirect/) was moved to after the login credentials have been validated and the user is logged in.  This allows the hook to access user data without the need to validate the user within the filter.

= 2.7.6 =

This release has some new features and some code updates

* Added ability to use same redirect_to querystring that WP uses in the wp-login form.  This allows more seamless replacement of the wp-login.
* Added a new page shortcode for password reset/change [wp-members page="password"].  If the user is logged out, it works the reset forgotten password functionality.  If the user is logged in, it will offer the change password functionality.  These functions do also remain in the members-area page shortcode as well, but now can be placed in a stand-alone location as well.
* Added a new page shortcode for the user edit page [wp-members page="user-edit"].  This needs to be used if the user is logged in and can be used with the login status shortcode.
* Removed $content global from the page shortcode function.  This should correct the double form issue when used with plugins/themes that filter $content.
* Added do_shortcode to the page shortcode call.  This should allow the page shortcodes to be used in conjuction with other shortcodes on the page (although this is not necessarily recommended).
* Added translations for Russian, Slovak, and Hindi.
* Moved _OLD forms to wp-members-deprecated.php.  These forms can still be used, but will be deprecated in a future version.  It is highly recommended that users still using legacy forms begin converting to the _NEW forms.

= 2.7.5 =

This is a new feature release (see [release announcement](http://wp.me/p1zYcs-xf) for full details.)

* Added 5 new filter hooks
* Final deprecation of the old style shortcodes for special pages (<!--members-area-->, <!--reg-area-->). If you are using these you need simply need to update to the modern shortcodes such as [wp-members page="members-area"]
* Added a check for the error message variable immediately following the wpmem_pre_register_data and wpmem_pre_update_data action hooks.  This will allow for use of these hooks to include your own custom validation and still be able to return a relevant error message.
* Added a check to see if the TOS field is not being used and thus don't display it on the User Profile for the admin.
* Fixed a bug that showed the incorrect heading on the User Edit page when there is an empty field error.
* Added completely updated .pot file for translations
* Updated all .po/.mo translation files from the new .pot (still need some strings translated for some languages).
* Added all .po/.mo files to the download package.

= 2.7.4 =

This is a new feature release (see [release announcement](http://wp.me/p1zYcs-wQ) for full details.)

* Added 14 new filter hooks
* Added full user export function
* Force email in password reset to be non-case sensitive (changes to wpmem_reset_password in wp-members-core.php)
* Changed "Existing users Login" to "Existing Users Login" in wpmem_inc_login in wp-members-dialogs.php

= 2.7.3 =

This is a code improvement release (see [release announcement](http://wp.me/p1zYcs-wD) for full details.)

* Improved a number of functions in various files for improved functionality.
* Added p tag with class .noinput to the username field when updating profile, added property definition to the stylesheet as well to better align the username.
* Added css property to better align checkboxes in the reg form (a change to wp-members.css).
* Added a class to captcha, and a cooresponding css property in wp-members.css for top/bottom margin of captcha form.

New features (shortcodes and hooks):

* Added 'field' shortcode for displaying user data with a shortcode - currently considered experimental and subject to changes.
* Added wpmem_restricted_msg filter hook to filter the restricted post message.
* Added wpmem_login_failed filter hook to filter the login failed message (includes filtering display markup).
* Added wpmem_login_failed_sb filter hook to filter the login failed message in the sidebar (filters message only, not formatting).

= 2.7.2 =

This is primarily a bug fix release (see [release announcement](http://wp.me/p1zYcs-vW) for full details.)

* Fixed a bug where, when using moderated registration, updating a user's backend profile deactivates the user.
* Improved the login error message for login via wp-login.php.
* Added wpmem_pre_register_data action hook.
* Added wpmem_post_register_data action hook.
* Added wpmem_pre_update_data action hook.
* Added wpmem_post_update_data action hook.

= 2.7.1 =

This release contains some new features that didn't get completed for 2.7.0 and some fixes (see [release announcement](http://wp.me/p1zYcs-vq) for full details.)

New features:

* Deactivate/reactivate users
* Registration moderation added for user defined passwords
* Include an optional stylesheet based on TwentyEleven Theme
* Include an optional stylesheet based on Kubrick (for narrower content areas)
* Added wpmem_register_redirect action hook
* Added wpmem_login_redirect filter hook
* Added wpmem_logout_redirect filter hook
* Added wpmem_sidebar_status filter hook
* Added wpmem_register_links filter hook
* Added wpmem_member_links filter hook
* Added wpmem_login_links filter hook


Fixes:

* rebuilt default email install function
* skip password in [fields] shortcode (changes in wpmem_notify_admin)
* fixed widget sidebar div tag (changes in class widget_wpmemwidget) 
* fixed form field validation for invalid email still registered user (changes in wpmem_registration)
* fixed rememberme in login process (changes in wpmem_login)
* moved send from filters to just the wp-members email processes (changes in wpmem_inc_regemail && wpmem_notify_admin)


= 2.7.0 =

This is new feature release with the following features and improvements (see :

* Email messages can be customized via the plugin admin panel.
* Dropdown fields can be added via the field managment panel.
* Moved location of pluggable file load so that constants may be used without loading twice.
* Registration stores the url the user registered on for all registrations, not just if registration is moderated.
* Trim trailing whitespace on members area, register, and custom css urls.
* Added wp_specialchars_decode to blogname in emails to decode any special characters (such as &amp;) in the title.
* Registration function is now pluggable.
* Updated sidebar widget to be multi-widget compatible.
* TOS can be stored in dialogs OR be a WP page (set in dialogs with a shortcode).
* Plugin can be set up for users to select their own passwords at registration (cannot be used with moderated registration).

= 2.6.6 =
Bug fix release

* Fixes as bug where admin side user fields are cleared when a user updates their registration info.

= 2.6.5 =

* Rewrite of the reCAPTCHA script to address IE compatibility issues.
* Expansion of the wptexturize fix in 2.6.4, now wraps all of the login and registration forms.
* Fix for the user profile edit so that the admin can see his own additional fields
* Fix so users can edit additional fields through the user profile page.
* WPMEM_REGURL no longer sent to wpmem_chk_qstr as it is a direct URL.

= 2.6.4 =
Bug fix release with the following changes:

* Fixes the activate user bug, rolling back from wp_update_user to $wpdb->update.
* Added back wpmem_generatePassword (although this is no longer used, a lot of users are still using this in the comments template.
* Added an override in the login form for the wptexturize function so as to remove the <br> tag that WP puts into the generated form.

= 2.6.3 =
This is primarily a code improvement release

* Localized "Clear Form" and "Submit" buttons for translation
* Updated reCAPTCHA noscript (for loading when the browser has js turned off)
* Fixed front-end error messages that did not have stripslashes
* Updated bulk user management to paginate users when displaying all users
* Introduced dropdown support (must be added programmatically at this time)
* Cleaned up unused globals from the registration forms
* Updated the location of the pluggable function file to be outside the plugin folder

= 2.6.2 =
This is a bug fix release with some additional improvements.

Bug fixes

* Fixed checkbox that is set to be checked by default remains checked in the update user settings front end even if the user unchecked it.
* Fixed legacy form password reset bug

Improvements

* Registration fields that are not selected to be displayed on the front end will still display on the admin side and be exported. This provides fields that can be used by the admin only for additional user information.
* Checkbox field can be edited in the Manage Fields panel to be checked by default or not.
* Keep the active tab active when editing various plugin settings.

= 2.6.1 =
Bug fix release

* Corrected the settings link in the WP installed plugins panel.
* Fixed the view menu links for the bulk user management.
* Fixed ignore warning messages on the WP-Members settings.
* Fixed bulk activate users so already activated users would not be inadvertently reactivated.
* Deactivated auto-excerpt function (was not to be activated in 2.6 production version).

= 2.6.0 =
This version is a feature release that also includes some rebuilt functions and other code improvements.

New Features:

* Front-end now uses enqueue_style to load CSS, so advanced users can directly load their own styles for the plugin without using the plugin settings.
* Improved use of shortcodes.  Old-style HTML comment shortcodes will continue to work in certain instances, but will no longer be supported in future versions.  Upgrade to the new shortcodes.  Major rewrite of the way WP-Members handles the_content() so that it will return a value rather than echo it.  Working to better integrate with other shortcodes so they are propery parsed.  New WP-Members shortcodes will added in future versions.
* Registration fields can now be customized via the admin panel.  This includes adding new fields and deleting non-native fields, and also changing the field order.

Code Improvements

* eliminated unused globals
* updated certain functions to use more up-to-date native WP functions.
* core now checks to see if the action variable 'a' is set before requesting it.
* wpmem_securify now scans for 'more' tag so that it will not truncate if the work "more" exists in the excerpt.
* updated email validation/error message to registration process to use is_email().

= 2.5.4 =
This is a bug fix release. 2.5.3 introduced a bug where the random password sent to a new user was invalid. While the fix is simple, the nature of the bug related to the functionality of the plugin dictates a full update so that users unaware of the bug will be notified via their WP admin panel.

= 2.5.3 =
This is primarily a bug fix release.

Bug fixes:

* Fixed reCAPTCHA from trying to validate on the User Edit page even though reCAPTCHA is not used on this page.
* Added validation to change password page to not allow double empty fields.
* Added additional username validation to prevent invalid (non-alphanumeric) characters in the username.
* Fixed comments reply link which did not allow a registered user to reply on an unblocked page/post.

Other changes:

* Rebuild of registration function
* Review of comments process
* Added stripslashes to front-end user registration validation

= 2.5.2 =
This is predominately a release of fixes and improvements:

* Fixed the admin menus so that the user menu isn't open by default.
* Fixed the "ignore warning messages" that was broken in 2.5.1.
* Corrected the CAPTCHA to not show up on members settings update.
* Plugin checks to see if the reCAPTCHA library is already loaded to be compatible with other reCAPTCHA plugins.
* Fixed activate user function for bulk activation - checks to see if the user is already activated and if so, skips that user so we don't accidentally activate users that are already activated in bulk mode, thus resetting their passwords.
* Updated login process to use wp_signon (wp_login is deprecated).
* Updated sidebar widget include a new css class #wp-members .err for login error message
* Updated sidebar widget to use the appropriate `<li>` tag into the sidebar area.  This should only be a factor for users that customized css. In this case, you'll need to update your stylesheet for ID #wpmem_login_side to #wp-members.
* Updated the sidebar login to better direct the user upon successful login (previously working fine on individual posts and pages, but not on categories).
* *Strictly Experimental* - Introducing pluggable functions - laying the ground work, won't be official yet, so some functions may be deprecated and/or modified.

= 2.5.1 =
Exanding on the features added in 2.5.0, this release adds setting for the register page, new tableless forms, and custom CSS

New Features

* Changed the "turn off registration" feature to allow for a registration page
* Specify registration page location (so we can have a register link in the login form)
* New tableless forms, can still toggle legacy forms
* Specify custom CSS for tableless forms

Fixes and Code Improvements

* Removed focus call in the reCAPTCHA that put the cursor focus immediately on the CAPTCHA
* Updated to wp_enqueue_script & _style for admin css and ajax.
* Fixed some typos.
* Fixed some security issues.

= 2.5.0 =
WP-Members&trade; 2.5 is essentially a pre-3.0 release and extention of the 2.4 release, which was only released as a public beta. In addition to the list below, see the list of features, improvements, and fixes for 2.4.0.

New Features

* added shortcode support for login only page
* added support for checkboxes in the registration fields
* added setting for members area/settings page url (so we can have "forgot password" link anywhere)
* added a "change your password" link in the email if members area/settings page url is set

Bug Fixes

* corrected a bug introduced in the 2.3.x widget update that caused the widget to be undraggable in certain instances

= 2.4.0 =
This was never a full production release, but was released as a public beta.  The production completion of this project was 2.5

New Features

* added reCAPTCHA support for registration
* added Terms of Service (TOS) checkbox and popup
* added shortcode support for members area and register pages
* added custom user management panel for bulk user edits
* added user list export
* localization support (beginning)
* contextual help in admin panels (beginning)

Code Improvements

* updated the registration process so that unused fields are not put into the user_meta table
* updated emails for moderated registration to send user the url they signed up on
* capture user's IP address at registration
* sets logged in admin as activated (prevents admin from accidentally being locked out)
* added toggle to force clean install of settings
* improvements to uninstall process

Bug Fixes

* added stripslashes to dialogs (accommodates the use of apostrophes/quotation marks)
* fixed sidebar login for non-widget use (bug from 2.3.x)

= 2.3.2 =
Bug Fix Release

* fixed login failed message for sidebar widget
* fixed login failed message for members area page
* fixed email to include user_url field properly
* changed cell alignment for 'textarea' field type in reg form

= 2.3.1 =
Code Improvements

* updated deprecated call get_usermeta to get_user_meta, update_usermeta to update_user_meta
* completed update of deprecated call get_settings changed to get_option
* removed deprecated functions wpmem_register() and wpmem_update(), both of these are now handled by wpmem_registration
* $redirect_to in wpmem_login changed to $_POST
* fixed password reset link issue
* changed wp-members-admin.php to load for 'edit_users' capabilities, down from 'manage_options'. 
* changes to admin form posts for use with WP Multisite (still need additional testing with Multisite for full compatibility)

New Features

* added direct link to edit user in notify admin email
* added optional registration page

= 2.3.0 =
Adds a number of features put off from the 2.2 release

* option to notify admin of new user registrations
* option to hold new registrations for admin approval
* option to turn registration off (for admins that want to control registrations in some other way)
* option to show excerpt on pages/posts
* updated widget calls to wp_register_sidebar_ (register_sidebar_ is deprecated)
* updated certain API calls known to be deprecated
* broke out email related functions to separate file; only loads when needed
* broke out core and dialog functions to separate files

= 2.2.2 =
This release is all code-side cleanup to make the plugin more efficient:

* Rewrote _securify function to remove redundancies
* Merged Login, Password Change, and Password Reset forms into _login_form
* Added uninstall/delete process to empty settings from database on plugin deletion
* Broke out install and admin scripts to separate file only loaded when needed
* Continued improvement of admin functions

= 2.2.1 =
* Change password bug fix
* Merged registration and user update functions to eliminate redundancy
* Added nonce security to the options admin

= 2.2.0 =
The #1 request with the plugin is to simply be able to change the required fields.  I have greatly simplified the process so it can be managed from within the WP admin panel.  Additionally, I added the ability to determine what fields will show in the registration form (both native WP fields, and additional WP-Members&trade; fields).  Also, the error/dialog messages can now be managed from with the admin panel as well.

* Added new customization features and an admin panel
* Can set fields that will display
* Can set fields to be required
* Can manage error/dialog messages from admin

= 2.1.2 =
* Added fix to set new registrations as the default role

= 2.1.1 =
* Udates for the 2.1.0 release that were not completed.
* updated variables for some function calls.
* eliminated unnecessary $table_prefix globals.
* updated some queries to better utilize the $wpdb class.
* custom fields admin is now managed as an array (cuts the lines of code by 75%, and makes way for user defined custom fields).