Changelog for USP Pro https://plugin-planet.com/usp-pro/ > __Tip:__ Use a free markdown tool like https://dillinger.io/ to convert the changelog to a more readable format. > __Tip:__ Check announcement posts for details about pro updates and related news: https://plugin-planet.com/news/ **4.5.2** * Fixes bug with `dismiss_notice_link` * Adds new option for default featured image * Adds post shortcode `[usp_post_title]` * Adds post shortcode `[usp_post_author]` * Adds post shortcode `[usp_post_author_submitted]` * Adds new filter hook `usp_post_author_submitted` * Updates plugin settings page * Updates default translation template * Tests on WordPress 6.6 (beta) **4.5.1** * Adds ACF filter to enable custom fields panel * Updates plugin settings page * Updates default translation template * Improves plugin docs/readme.txt * Tests on WordPress 6.5 (beta) **4.5** * Fixes bug: Uncaught TypeError: `strstr()` * Replaces `DOING_CRON` with `wp_doing_cron()` * Improves enable/disable post-comments field * Improves function `usp_license_status()` * Increases default max image dimensions to 2500px * Adds custom notice on settings page * Improves styles for plugin settings UI * Fixes bug with password open-eye icon * Updates default translation template * Tests on WordPress 6.4 (beta) **4.4.1** * Fixes "Uncaught TypeError: property_exists()" * Tests on WordPress 6.3 (beta) **4.4** * Renames `blank_or_zero` function * Improves logic for `plugin_options_page()` * Improves logic for `create_post_examples()` * Replaces `get_page_by_title` with `WP_Query` * Moves License screen to its own settings tab * Adds a hyphen to `uspcontent` id for RTE/Visual Editor * Adds language translation support for "Add another file" * Improves information provided on plugin settings screens * Fixes bug PHP 8.2 "Creation of dynamic property deprecated" * Adds `usp-file-id` custom field for submitted files * Improves settings page content, markup, and styles * Improves logic when calling `get_current_screen()` * Adds license status message to plugin screens * Improves handling of license activation * Improves handling of license constants * Generates new translation template * Tests on WordPress 6.1 + 6.2 (beta) * Tests on PHP 8.1 and 8.2 **4.3.1** * Fixes bug with non-Admins unable to log in * Tests on WordPress 6.1 **4.3** * Adds PHP constant `USP_PRO_URL` * Adds check for existing PHP constants * Adds optional `post_id` attribute to `usp_image` * Fixes bug with Google reCaptcha (v3) timing out * Fixes bug with list output of `[usp_pro_display_posts]` * Adds filter `usp_get_email_vars` to filter email headers * Adds filter `usp_filter_ip_address` to block ip addresses * Adds support for `USP_PRO_LICENSE` via `wp-config.php` * Adds custom footer text to plugin settings * Updates `EDD_SL_Plugin_Updater` script * Improves plugin settings stylesheet * Improves plugin documentation * Updates translation template * Tests on WordPress 6.1 **4.2** * Improves plugin License screen * Removes "Add Demo Forms" button from "Edit USP Form" screen * Plugin settings now available without license * Improves UI for plugin settings page * Generates new translation template * Tests on WordPress 6.0 **4.1.2** * Fixes bug with demo forms * Updates default translation template * Tests on WordPress 5.9 **4.1.1** * Fixes error on PHP versions less than 8 * Tests on WordPress 5.9 **4.1** * Adds `file` attribute to `[usp_image]` * Improves plugin performance in Admin Area * Adds filter hook `usp_dashboard_widget` * Adds filter hook `usp_add_glance_items` * Updates plugin license updater script * Auto-generate forms now disabled by default * Improves loading of translations * Improves plugin settings information * Updates some links to external resources * Changes minimum required WP version to 4.6 * Updates default translation template * Tests on WordPress 5.9 **4.0** * Improves logic of `usp_form()` * Adds `%%delete_link%%` for email alerts * Adds CSS classes to Login/Register form * Adds filter hook `usp_submission_redirect` * Adds `selected` to select field default option * Changes Description field to textarea for user registration demo * Fixes renaming/duplicate bug with demo forms * Fixes bug with email alert shortcut variables * Moves "Tips & Tricks" to post at Plugin Planet * Refines the plugin settings pages * Tests on WordPress 5.8 **3.9** * Adds `[url_link]` user shortcode * Adds filter hook `usp_shortcode_url_link` * Adds support to change reCaptcha language * Adds filter hook `usp_recaptcha_querystring` * Updates Selectize.js frontend control script * Updates Parsley.js frontend validation script * Updates Vex.js library for modal dialog popups * Updates deprecated functions for newer jQuery * Updates inline graphics in plugin settings * Improves/updates readme.txt/docs * Tests on WordPress 5.7 **3.8** * Fixes "array offset" PHP notice * Fixes "curly braces" PHP notice * Fixes bug with numerical taxonomy terms * Fixes bug with submit button not displayed * Adds support for disable-comments checkbox * Updates default translation template * Improves/updates readme.txt/docs * Updates license updater script * Tests on PHP 7.4 and 8.0 * Tests on WordPress 5.6 **3.7** * Adds `form_id` query parameter to form POST requests * Adds `post_link` attribute to `[usp_pro_display_posts]` * Adds `link_title` attribute to `[usp_pro_display_posts]` * Improves support for multiple forms on the same page * Updates default JavaScript support for multiple forms * Improves dashboard widget, adds new hooks: * `usp_widget_drafts_display` * `usp_widget_display_all_posts` * `usp_widget_drafts_message_none` * `usp_widget_drafts_message_some` * Login form displays "Register" tab only if registration is enabled * Fixes bug: dashboard widget not showing all submitted posts * Fixes bug: numeric values now working for custom taxonomy * Fixes bug: form styles not included with success message * Fixes bug: duplicate post feature not working for CPTs * Fixes bug: content filter not working for excerpts * Refines default form styles * Improves loading of admin CSS/JS assets * Updates default translation template * Refines plugin setting page styles * Updates license updater script * Refines readme/documentation * Tests on WordPress 5.5 **3.6** * Adds Google reCaptcha v3 (hidden reCaptcha) * Updates reCaptcha library to version 1.2.4 * Adds filter hook `hook usp_recaptcha_score` * Adds filter hook `usp_display_posts_noposts` * Adds filter hook `usp_post_tags_use_id` * Adds form-id parameter to `usp_form_custom_output` * Adds selectize.js fancy script to tag select field * Enables default option for "External Stylesheet" * Enables default option for "Include Parsley.js" * Generates new default translation template * Improves accuracy on plugin settings page * Improves styles on plugin settings page * Improves styles of USP filter buttons * Improves security of form cookies * Improves Quicktag button infos * Tests on WordPress 5.3 **3.5.1** * Fixes bug with new "fancy" category field * Tests on WordPress 5.3 **3.5** * Fixes bug with user registration name on uploaded files * Adds selectize.js for fancy category select field * Changes input type to `url` for URL field * Updates styles for plugin settings page * Generates new default translation template * Tests on WordPress 5.3 **3.4** * Improves filter-USP button functionality * Adds filter hook `usp_filter_posts_link` * Adds support for "Non-USP" post filter button * Fixes bug with characters removed from email alerts * Fixes bug with multiple files and custom fields * Fixes bug with [featured image key](https://plugin-planet.com/usp-pro-featured-image-key/) not working * Fixes bug where WP file editor could not save file changes * Fixes bug with WP Site Health (Loopback requests and REST API) * Adds filter hook `usp_get_file_name` for `insert_attachments()` * Improves handling of PHP sessions * Updates some links to https * Generates new default translation template * Tests on WordPress 5.3 (alpha) **3.3** * Refines USP License screen UI * Fixes PHP warning for `count()` * Fixes security issue with uploaded images on Apache + FastCGI * Adds `default` attribute for "Agree to Terms" checkbox * Improves form posting for Login/Register form * Bumps [minimum PHP version](https://codex.wordpress.org/Template:Server_requirements) to 5.6.20 * Updates default translation template * Tests on WordPress 5.2 **3.2.1** * Adds another security check for uploaded files (Thanks to Matthias) * Tests on WordPress 5.1 and 5.2 (beta) **3.2** * Deprecates reCaptcha "Version 1" * Removes deprecated (old) reCaptcha * Changes default reCaptcha option to "Version 2" * Improves display of plugin License screen * Improves functionality for one-click plugin updates * Fixes bug with timeouts with `usp_pro_display_posts` * Provides shortcode for adding `#` to custom field values * Adds `url` to allowed attributes in `sanitize_content()` * Adds check for admin user for settings shortcut link * Removes deprecated functions from About tab * Refines plugin settings screen UI * Generates new default translation template * Tests on WordPress 5.1 and 5.2 (alpha) **3.1** * Adds shortcode `[usp_user_avatar]` * Adds email alert shortcode `%%post_slug%%` * Updates plugin settings page details * Updates default translation template * Tests on WordPress 5.0 (beta) **3.0** * Adds additional `display` options for `[usp_pro_display_posts]` * Adds `cat="current"` support to `[usp_pro_display_posts]` shortcode * Adds `usp-login` as `id` attribute to login/register/password form * Adds `rel="noopener noreferrer"` to all [blank-target links](https://perishablepress.com/wordpress-blank-target-vulnerability/) * Replaces `sanitize_text_field` with `wp_strip_all_tags` for styles * Bugfix: JavaScript error flashes as form submits * Bugfix: "USP" filter posts button not working for Custom Post Types * Bugfix: maxlength attribute for tag field incorrect * Bugfix: several PHP Notices were eliminated * Improves logic of `usp_pro_add_glance_items` function * Refines dashboard widget functionality * Updates GDPR blurb and donate link * Regenerates default translation template * Further tests on WP versions 4.9 and 5.0 (alpha) **2.9** * Adds filter hooks: * `usp_display_errors` * `usp_display_errors_all` * `usp_display_errors_custom` * `usp_display_posts_args` * `usp_featured_image` * `usp_custom_value` * `usp_custom_custom_value` * `usp_attachments_postid` * `usp_max_users` * `usp_file_ids` * `usp_image_attachments` * `usp_file_attachments` * `usp_display_posts_default` * `usp_submit_post_after` * `usp_sanitize_content_kses` * `usp_widget_submitted_type` * `usp_widget_submitted_status` * `usp_alert_shortcut_attachment_args` * Adds disable-IP option (for example, to comply with GDPR) * Adds email shortcode `%%post_author%%` for Post Author * Adds email shortcode `%%files%%` for list of file URLs * Adds submitted post count to "At a Glance" on the Dashboard * Adds function to check and warn if free version is installed * Adds support for shortcut variables in alert subject line * Adds more attributes to `[usp_pro_display_posts]` * Adds `required` attribute to `[usp_agree]` * Adds support for new Limit Posts extension * Changes input/label attributes on login/register form * Removes filter hook, `usp_shortcode_display_posts_type` * Removes filter hook, `usp_settings_author_list_args` * Updates deprecated `create_function` for PHP 7.2 * Improves Default Assigned Author setting * Limits default output of `usp_ids()` * Generates new translation template * Tests on WordPress 5.0 **2.8.1** * Fixes submit button greyed out before form validation * Tests on WordPress 5.0 (alpha) **2.8** __New Features__ * Adds support to submit child pages * Adds support for rotated image uploads via mobile devices * Adds feature to disable submit button after first click * Introduces paid addon for auto-expiring posts * Adds function, `usp_shortcode_empty_p_fix()` __Google reCAPTCHA__ * Improves Google reCAPTCHA functionality * Improves support for older versions of PHP * Updates Google reCAPTCHA library to version 1.1.3 __Parsley.js__ * Adds `parsley.min.js.map` * Updates default Parsley.js styles (improves error display) * Adds `parsley-i18n` directory containing Parsley i18n files * Adds "null" to omit `maxlength` attribute on primary fields * Updates Parsley library to version 2.8.0 __Translations__ * Improves loading of translation files * Adds new filter hook, `usp_i18n_locale` * Adds language translation for Danish, `da_DK` * Adds language translation for Slovenian, `sl_SI` * Renews default translation template __Filter Hooks__ * Adds filter hook, `usp_art_directed` * Adds filter hook, `usp_custom_alert_max` * Adds filter hook, `usp_widget_drafts_status` * Adds support for WP filter hook, `wp_handle_upload` __Shortcodes__ * Adds custom email alert shortcode, `[usp_email_alert]` * Adds support for multiple capabilities to `[usp_access]` * Improves shortcodes, `[usp_access]`, `[usp_member]`, `[usp_visitor]` * Adds `%%edit_link%%` shortcut for post edit link for email alerts __Bug Fixes__ * Fixes character encoding bug with multiple RTE fields * Fixes PHP Notice for `usp_replace_author` and `usp_replace_author_link` __Other Changes__ * Adds SVG file, `usp-loading.svg` * Adds placeholder text to USP Quicktags * Improves thumbnail previews for file uploads * Tweaks some label names in the plugin settings * Moves class `USP_Custom_Fields` into separate file * Changes `.usp-login` top and bottom margin to `25px` * Changes `esc_url()` to `esc_url_raw()` for Redirect URL * Updates `EDD_SL_Plugin_Updater` to [version 1.6.13](http://bit.ly/2yqX3yu) * Adds array support for`usp_widget_drafts_type` * Minifies `usp-pro.js` for better performance * Impproves function, `usp_get_art_directed()` * Tests on WordPress 4.9 **2.7.1** * Bugfix: image shortcode conflicting with other plugins * Updates some description infos on plugin settings page * Generates new default translation template * Further tests on WordPress 4.9 (alpha) **2.7** * Adds Post Excerpt shortcode/field * Adds new filter hook, `usp_tax_terms` * Adds new filter hook, `usp_custom_field_regex` * Adds new filter hook, `usp_excerpt_editor_settings` * Adds new filter hook, `usp_excerpt_editor_value` * Adds additional variables to the filter, `usp_attached_file_url` * Updates User Shortcodes to display only when enabled * Bugfix: files field display when "no limit" selected * Bugfix: special characters in custom field names * Bugfix: label select for multiple checkbox fields * Resolves several PHP Notices * Tests on WordPress 4.9 (alpha) **2.6.1** * Fixes fatal error for older versions of PHP * Further testing on WordPress 4.8 (beta) **2.6** *New Features* * Adds Parsley.js v2.7.0 to core (MIT License) * Adds plugin setting to include Parsley.js * Adds nested/hierarchical display of Taxonomy field * Adds shortcode `%%ip_address%%` for email alerts * Adds `usp-disable-alerts` input to disable email alerts per form * Adds auto-attach of hidden `usp-form-id` to submitted post *New Hooks* * Adds filter hook `usp_allowed_tags hook` for allowed settings attributes * Adds filter hook `usp_upload_directory` for default uploads directory * Adds filter hook `usp_attached_file_url` for attached file URL * Adds filter hooks `usp_default_title` and `usp_default_content` * Adds filter hook `usp_tax_hierarchy_style` for nested taxonomy styles * Adds filter hook `usp_insert_attachment_data` for file attachment data * Adds filter hook `usp_wp_editor_value` for default `wp_editor` content * Adds filter hook `usp_custom_editor_value` for custom `wp_editor` content *Improvements* * Updates the licensing updater script * Improves logic of `usp_custom_meta()` * Updates ReCaptcha class functionality * Improves "Add another image" functionality * Updates the information included on form demos * Removes `target` from list of allowed attributes * Replaces global `$wp_version` with `get_bloginfo('version')` * Replaces `sanitize_text_field` with `sanitize_email` for email-related settings * Improves validation functionality, allows more tags in textarea settings * Changes "More" tab name to "Errors" and rearranges some settings * Adds `$user_id` and `$fields` to `usp_submit_post` filter hook * Changes license URL now points to USP Pro License page * Changes input type to `email` for Email field * Changes default setting for incorrect email * Adds validation for incorrect email address * Tweaks styles on plugin settings pages * Refactors default settings functionality * Updates link/URL on plugin License page * Updates form demos with latest code *Bug Fixes* * Bugfix: undefined index notice for `QUERY_STRING` * Bugfix: renames prefix of all USP constants to "USP_PRO_" * Bugfix: max character setting of "0" limited to "999" characters * Bugfix: auto-approve setting not working if Name field not included in form * Bugfix: removes incorrect French translation *General* * Generates new default translation template * Moves changelog for previous version to separate file (see below) * General code cleanup and maintenance * Tests on WordPress version 4.8 **2.5** *New Features* * New: optional edit/delete links for display-posts shortcode * Adds email alert variables: `%%post_cats%%` & `%%post_tags%%` * Adds support for more combo categories *Bug Fixes* * Bugfix: file uploads not working when `key` attribute specified * Bugfix: `[name]` shortcode not working properly * Bugfix: fields returning an error for "0" values * Bugfix: custom fields not attached for "0" values * Bugfix: shortcut variable not removed when empty value * Bugfix: PHP Notice: Undefined index for empty Custom Fields *Improvements* * Improves function `usp_enqueue_resources()` * Improves USP Login/Register form functionality * Improves function `usp_custom_fields_checkboxes()` * Moves "Display Form on Success" to top of page * Introduces new utility include file `utility.php` * Improves display of code-related plugin settings * Reorganizes some plugin settings for better flow * Updates some settings labels for better clarity * Enhances `abbr` styles for USP Quicktag dialogs * Adds `if (!defined('ABSPATH')) die();` to files * Refines some form styles provided by plugin *New Hooks* * Adds new filter hook: `usp_login_redirect_login` * Adds new filter hook: `usp_login_redirect_register` * Adds new filter hook: `usp_login_redirect_reset` * Adds new filter hook: `usp_file_name_primary_key` * Adds new filter hook: `usp_alert_shortcut_replace_empty` * Adds new filter hook: `usp_shortcode_display_posts_edit_title` * Adds new filter hook: `usp_shortcode_display_posts_edit_text` * Adds new filter hook: `usp_shortcode_display_posts_delete_title` * Adds new filter hook: `usp_shortcode_display_posts_delete_text` * Adds new filter hook: `usp_shortcode_display_posts_modlink_sep1` * Adds new filter hook: `usp_shortcode_display_posts_modlink_sep2` *General Stuff* * Changes `false` to `array()` in all `wp_enqueue_style()` * Changes `sanitize_text_field()` to `esc_url()` for URL field * Removes `novalidate` from "Custom Form Attributes" setting * Replaces `data-validate="parsley"` with `data-parsley-validate` in "Custom Form Attributes" setting * Replaces `htmlspecialchars()` with `stripslashes()` in `validate_style()` * Updates plugin author URL * Changes stable tag from trunk to latest version * Updates plugin license informations * Regenerates default language template * Tests on WordPress version 4.7 (beta) **2.4** *Bug Fixes* * Bugfix: Content Filter setting stripping out line breaks * Bugfix: `[usp_pro_display_posts]` userid not working with Author Name * Bugfix: Invalid argument supplied for `foreach()` in `usp-posts.php` * Bugfix: "Non-Admin Media" feature not working on WP Pages * Bugfix: targeted loading not working for query-string URLs * Bugfix: custom names/prefixes not working with custom RTEs * Bugfix: label attribute not working for custom RTEs *Translation Support* * Removes `define('USP_DOMAIN', '/languages/');` * Replaces `_e()` with `esc_html_e()` or `esc_attr_e()` * Replaces `__()` with `esc_html__()` or `esc_attr__()` * Renames translation template from "usp.pot" to "usp-pro.pot" * Changes text-domain from "usp" to "usp-pro" * Generates new translation template * Fine-tunes translation strings *Custom RTEs* * Adds new error styles to custom RTEs * Adds new default styles to custom RTEs * Improves existing styles for custom RTEs * Improves support for multiple custom RTEs * Introduces new attribute for custom RTEs: `rte_id` *Improvements* * Updates [WP Admin Notices](https://digwp.com/2016/05/wordpress-admin-notices/) * Greatly improves flexibility of display-posts shortcode ([more infos](https://plugin-planet.com/usp-pro-display-list-submitted-posts/)) * Removes unused `$allowed_atts` and `$allowedposttags` from `validate_admin()` * Adds more allowed attributes for Post Formatting and other settings * Removes `add_post_status()` due to deprecated `post_stati` hook * Replaces `WP_PLUGIN_URL` with `plugins_url()` (supports SSL/HTTPS) * Changes USP Form JavaScript/CSS to load only on front-end * Improves category and custom taxonomy checkbox input ids to be more specific * Improves custom radio and checkbox input ids to be more specific *General Stuff* * General code cleanup and maintenance * Tests on WordPress 4.6 **2.3.2** * Tweaks default file name and media title for submitted files * Adds guid parameter to wp_insert_attachment() **2.3.1** *Bug Fixes* * Fixes typo in Admin Alerts shortcut variables info * Restores previous default values for file name and title * Replaces esc_url() with sanitize_text_field() for usp-agent custom field *Improvements* * Shortcode `[usp_pro_display_posts]` now displays Custom Post Types * Adds "display" attribute to [usp_pro_display_posts] to display excerpt, content, thumbs, or title only * Replaces database query with get_users() in usp-pro.php * Replaces database query with get_posts() in usp-forms.php * Escapes some internal variables just to be extra safe * Adds filter hook in form output for adding custom content * Enables basic HTML in Agree to Terms box (using {} bracket replacements) * Hides USP Pro text on Dashboard metabox preference panel *New Hooks* * Adds filter hook: usp_shortcode_display_posts_type * Adds filter hook: usp_shortcode_display_posts_size * Adds filter hook: usp_shortcode_display_posts_before * Adds filter hook: usp_shortcode_display_posts_after * Adds filter hook: usp_shortcode_display_posts_title * Adds filter hook: usp_settings_author_list_args * Adds filter hook: usp_forms_get_form_id * Adds filter hook: usp_form_custom_output * Adds filter hook: usp_custom_fields_checkbox_value * Adds filter hook: usp_custom_fields_radio_value * Adds filter hook: usp_custom_fields_select_value *General Changes* * General code cleanup and maintenance * Tests on WordPress version 4.5 and 4.6 (alpha) **2.3** *New Features* * Adds a complete "Starter" demo form * Adds [usp_agree] shortcode for "Agree to Terms" box * Adds "USP:Agree" Quicktag button for [usp_agree] shortcode * Adds "Require Square Image" uploads setting (thanks to [Kent](http://www.kenarry.com/)) * Adds Email Alert for scheduled posts (thanks to [Kent](http://www.kenarry.com/)) * Adds new alert shortcuts, %%post_submitted_date%% and %%post_scheduled_date%% * Adds new custom filters for custom defined email/alert shortcode/replacement * Adds %%__custom-field-key%% shortcode to include specific custom fields in email alerts * Adds "Submitted Posts Queue" Dashboard Widget to display list of draft posts * Adds new [usp_pro_display_posts] shortcode to display list of submitted posts *New Hooks* * Adds filter hook: usp_custom_agree_terms * Adds filter hook: usp_register_user_role * Adds filter hook: usp_post_meta_submit_time_format * Adds filter hook: usp_desc_default * Adds filter hook: usp_caption_default * Adds filter hook: usp_alt_default * Adds filter hook: usp_send_email_alert_vars * Adds filter hook: usp_send_email_approval_vars * Adds filter hook: usp_send_email_denied_vars * Adds filter hook: usp_send_email_scheduled_vars * Adds filter hook: usp_send_email_scheduled * Adds action hook: usp_send_email_scheduled_before * Adds action hook: usp_send_email_scheduled_during * Adds filter hook: usp_alert_shortcut_defined_pattern * Adds filter hook: usp_alert_shortcut_defined_replacement * Adds filter hook: usp_alert_shortcut_schedule_format * Adds filter hook: usp_file_name_primary_single * Adds filter hook: usp_file_name_primary_multiple * Adds filter hook: usp_file_name_custom_prefix * Adds filter hook: usp_file_name_custom_field * Adds filter hook: usp_file_name_custom_custom * Adds filter hook: usp_widget_drafts_number * Adds filter hook: usp_widget_drafts_time * Adds filter hook: usp_widget_drafts_type * Adds filter hook: usp_widget_drafts_user *Form Improvements* * Simplifies existing demo forms * Adds default error styles to form errors * Refactors usp_custom_field_errors() function * Refines and synchronizes default form styles * Adds missing id attributes to some form fields * Adds "Simple" form styles option as new default * Adds .usp-textarea class to primary textarea fields * Updates UI/options for various Quicktag dialog boxes * Removes list Quicktags (ol, ul, li) from Form Builder * Changes post_required default error message for clarity * Adds default demo forms to "Extra Form Security" setting * Adds tag count and tag ID as data attributes on front-end * Adds "desc" attribute to checkbox and radio custom fields * The files_min attribute no longer is required to set a Files field as required * Removes error class from form, fieldsets, CC message, Remember input, and Reset link *Plugin Enhancements* * Replaces icon with retina version * Updates the Updater Class to version 1.6.3 * Refactored file-type checking functionality * Updates some settings descriptions for clarity * Custom Prefix and Custom Custom Fields now used as file key * Adds link on WP "Plugins" screen to USP Pro Quick Start Guide * Adds add_files_fields() function for adding file custom fields * Changes Min/Max Chars and Number of Tags inputs to number type * Replaces Remote Identity with Remote Address in About tab infos * Adds submit date/time to submitted post as custom field "usp-post-time" * usp-filename and usp-mediatitle file metadata now only added if not empty * Validation for custom custom field settings now removes invalid characters * Replaces current_user_can with is_user_logged_in in login widget/shortcode * Replaces multiple instances of get_currentuserinfo with wp_get_current_user * Cleans up get_field_val(), moved reset functionality to new reset_form() function * Updated session check to support newer versions of PHP, added usp_is_session_started() * Improved performance of usp-process.php by replacing init with admin_init for certain functions *Bug Fixes* * Bugfix: tag ordering not working on front-end * Bugfix: errors not displayed for multiple files fields * Bugfix: About tab not displaying all server information * Bugfix: usp_classes() displaying incorrect error classes * Bugfix: incorrect $field attributes when calling usp_classes() * Bugfix: form styles not included when using shortcode or widget * Bugfix: form remembering not working with custom checkbox fields * Bugfix: PHP Notice: Array to string conversion for custom checkbox fields * Bugfix: replaces get_field_id('id') with get_field_id('title') in USP Widget * Bugfix: error when cookies are disabled on the user's browser (thanks to [Kent](http://www.kenarry.com/)) * Bugfix: replaces wp_filter_nohtml_kses with sanitize_text_field for validation (fixes backslashed quotes) * Bugfix: field error classes not included for Post Format, Media Title, and File Name fields * Bugfix: adds missing validation for Password error field under More tab * Bugfix: max attribute not included on text and textarea custom fields * Bugfix: "post denied" alerts not firing for various post types *General Changes* * New translation .pot file * Reorganizes and refreshed readme.txt * General code cleanup and maintenance * Tests on WordPress version 4.5 and 4.6 (alpha) **2.2.1** * Adds missing setting/support for displaying Add Media button to non-admins * Bugfix: fatal error when adding custom content to contact messages * Adds useful reference links to plugin settings * Fixes a couple of typos in plugin settings * Bugfix: changed widget name to __construct() * Tests further on WordPress 4.4 and 4.5 (alpha) * General code cleanup and maintenance **2.2** *New Features* * New: Google noCAPTCHA reCAPTCHA * New: meta-box support/display for any custom field * New: setting to check submitted posts for unique content * New: support for displaying Add Media button for subscribers and contributors * New: adds "include" attribute to tags shortcode to specify tags per form * New: adds "include" attribute to category shortcode to specify cats per form * New: adds "Memory Settings" section to General tab * New: support for custom user registration metadata *New Hooks* * Adds usp_wp_editor_settings filter hook * Adds usp_custom_editor_settings filter hook * Adds filter hooks for customizing post-password emails * Adds new usp_meta_box_title filter hook * Adds filter hook for user registration notification emails * Adds usp_generate_password_length filter hook * Adds usp_captcha_output filter hook * Adds usp_captcha_params and usp_captcha_atts filter hooks * Adds usp_meta_box_name and usp_meta_box_value filter hooks * Adds usp_input_name_value and usp_input_email_value filter hooks * Adds usp_register_user_after action hook *Improvements* * Adds get_currentuserinfo() where required * Adds email address shortcode/field to Classic form demo * Adds File Name and Media Title now attached as Custom Fields * Adds some missing strings to default translation template * Adds custom error for Content Filter to More settings * Adds support for HTTPS URLs in usp_enqueue_resources() * Adds query-string (non-permalink) support for usp_reset_button() * Adds .usp-form to default CSS styles for input fields * Adds clear: both; to Add Another and Clone Input divs * Adds esc_attr/esc_url/esc_html to value variables in form shortcodes * Improves settings descriptions for USP JavaScript and CSS files * Improves user_exists and error_register default error messages * Improves performance of plugin settings pages * Improves headers in post_password(), send_email_form(), get_email_vars() * Improves settings UI to make all update notices dismissible * Improves security by sanitizing server name variable in section_license_desc() * Improves security by adding sanitize_text_field() to usp_get_ip() * Optimizes add_admin_styles() for better performance * Optimizes add_post_filter_button() for better performance *Enhancements* * Refines and streamlines default settings descriptions * Refines default Quicktags displayed on USP Form screen * Refines license-activation UI * Refines and streamlines all settings and descriptions * Removes unused $user_info variable from some default options * Removes usp_replace_author_user_url() and related filter * Removes usp_replace_author_display_name() and related filter * Replaces usp_clean() with esc_url() in get_user_stats() * Replaces variable with constant in require_wp_version() * Replaces esc_url() with esc_url_raw() in get_field_val() * Replaces and regenerates default translation template * Changes HTML-format email headers from ISO-8859-1 to blog_charset * Changes hook for load_settings from init to admin_init * Changes admin_print_styles to admin_enqueue_scripts * Changes "USP" post-filter button now filters any post status * Changes "Before/After Errors" setting to "Miscellaneous Errors" * Changes default password length to 16 characters * Changes setting "Allowed HTML in post" to "Post Formatting" * Changes popular tags no longer displayed by default when no global tags selected * Updates heading hierarchy in plugin settings * Updates disable_visual_editor() for USP Forms Quicktags * Updates register_user() to account for changes in WP 4.3.1 * Moves "Restore Default Settings" to Tools tab * Moves Redirect Success and Redirect Failure to Advanced tab * Moves Content Filter to Advanced settings * Moves admin post-filter styles to external USP stylesheet * Moves Default Form Fields settings to Advanced tab *Bug Fixes* * Bugfix: fatal error for pre-existing taxonomy terms * Bugfix: changes http to https for reCAPTCHA script version 1 * Bugfix: combo registration form error when user logged in * Bugfix: min/max character limits counting appended whitespace * Bugfix: PHP Notice Array to string conversion for regex_filter() * Bugfix: PHP Notices for post_date and post_date_gmt * Bugfix: Undefined Index Notice in usp_placeholder() * Bugfix: support for HTTPS URLs in get_field_val() and get_user_stats() * Bugfix: widget title not displaying on frontend * Bugfix: USP Form Widget not displaying in WP Admin Area *General* * Tests on WordPress 4.4 and 4.5 (alpha) * General code cleanup and maintenance **2.1** * Fixes XSS vulnerability with add_query_arg() * Tested with WP 4.2 + 4.3 (alpha) * Changed a few "http" links to "https" * Adds a bit of box-shadow to Quicktag dialog box * Fixes some PHP warnings related to file uploads * Adds usp_post_array filter to customize submitted post * Fixes missing fields when post-formatting is disabled * Adds %%post_custom%% variable to display custom fields in email alerts * Extends "Replace Author" setting to %%user_name%% email alert variable * Refines readme.txt and file header information * Fixes empty div output for auto-display images * Adds "default" attribute to taxonomy shortcode to customize "Please select.." * Adds "all_include_empty" to taxonomy shortcode to display all tax terms * Fixes custom fields not included in email messages * Adds "File Name" to Advanced > Primary Form Fields and More > Primary Field Errors * New translation .pot file **2.0** *General* * Tested with latest version of WP (4.1) * Advanced testing on WordPress version 4.2 (beta) * Streamline/fine-tune plugin code, fixed typos, etc. * Updates plugin documentation in plugin and on site *Language* * Adds Text Domain and Domain Path to file header * Updates plugin file headers with better information * Replaces default .mo/.po templates with usp.pot template *Bug Fixes* * Fixes incorrect path to custom stylesheet for TinyMCE * Fixes login/register form shortcode not working * Fixes USP Meta Box displaying with empty values * Fixes alt metadata attached as custom field * Fixes echo to return for various select() tags * Fixes required checkbox fields not working * Fixes "Please select" not displayed on some tag fields * Fixes custom post status not displaying on front-end * Fixes uploading of disallowed file types (e.g., .php) *Improvements* * Improves file previews, thumbnails for other file types * Strips whitespace from Custom Field key settings * Improves About > Plugin Information section * Removes some unnecessary attributes from Form Demos * Improves Quicktag dialogs with lightbox-style UI * Updates plugin updater class to latest version *New Features* * Adds Media Title custom field functionality * Adds drag_drop_upload functionality to Visual Editor * Adds filename field for custom media metadata * Adds usp_filename_default filter hook * Adds usp_mediatitle_default filter hook * Adds error-specific class names to errors * Adds .usp-error-custom to the default custom-field error * Adds .usp-error-taxonomy to the default taxonomy error * Adds ability to use HTML in Default Post Content * Adds support for user-specified taxonomy terms * Adds fieldset attribute to field shortcodes * Adds "type" attribute to category shortcode * Adds "default" attribute to category shortcode * Adds "type" attribute to tag shortcode * Adds "default" attribute to tag shortcode * Adds "exclude" attrubute to tag shortcode * Adds "all" value for terms attribute to display all tax terms * Adds "exclude" attribute for taxonomy shortcode * Adds custom post status per form via custom field * Adds "future" post status to global/per-form options * Adds usp_post_date_offset filter hooks * Adds Schedule Posts and set dates for past posts * Adds User Shortcode to display any image from URL * Adds preview thumbnails for alternate file types * Adds preview thumbnails for all file select methods * Adds a bit of top padding to image preview container * Adds new filter hook: usp_custom_fields_files * Adds new filter hook: usp_files_combined_array * Adds support for multiple file upload fields * Adds custom file upload fields plus new attributes * Adds way to disable file previews for file upload fields * Adds local min/max file atts to usp_files shortcode **1.9** * Bug: empty custom prefix causing duplicate error messages * Bug: custom prefix as name not working when field name is prefix only * Bug: email alerts sent even when disable in the settings * Bug: null value for labels and placeholders not working on custom fields * Bug: empty value for custom prefix interferes with default custom field prefix * Bug: email included Additional Information heading even when no custom fields included * Bug: email alerts not sending for denied USP Posts (CPT) * Bug: email alerts sending for posts submitted from backend * Bug: type attribute displayed on custom field textareas * New: Backup and restore theme options (under "Tools" tab) * New: Content filter to blacklist forbidden terms and phrases from post content (under "Admin" tab) * New: function to replace author name when called with the_author_meta (see "Replace Author" option) * New: function to replace author URL when called with the_author_meta (see "Replace Author" option) * New: option to whitelist contact, registration, submission forms (see "Form Security" in General settings) * New: meta box support for submitted custom field data (works with all Post Types) * New: live preview feature for post content * New: user shortcodes: `[url]`, `[link]`, `[name]`, `[file-1]` thru `[file-3]`, `[item-1]` thru `[item-3]` * New: template tag and shortcode to add a tabbed login/register/password form * New: select/option fields via custom fields * New: multiple checkbox fields via custom fields * New: radio inputs for custom fields * New: added %%post_content%% shortcode to admin/user email alerts and contact email * New: added attribute to disable fieldset for any custom field * New: added a bunch of new action and filter hooks (list @ [Plugin Planet](https://plugin-planet.com/usp-pro-action-filter-hooks/) * Moved "Contact Forms" option from Admin settings to "Form Security" in General settings * Deprecates `usp-send-mail` hidden field, replaces with usp-is-contact * Changes defaults to none (no value) for input class and label class on custom fields * Streamlines send_email_form() function with improved logic * Adds two new filter hooks: usp_send_email_custom_heading and usp_send_email_custom_fields * Adds some new styles to usp-admin.css (meta box styles) * Changed paragraph tags to span tags in user shortcodes for images * Refactored USP_Custom_Fields Class * Replaced some instances of get_bloginfo('url') with home_url() * Retested with Plugin Check plugin * Updated localization templates (mo/po) files * Updated plugin documentation in plugin and on site * Advance testing on WP 4.1 (alpha) * General code check and clean **1.8** * Bugfix: callback_dropdown() now displays correct value for select options (user roles) * Bugfix: duplicate errors for alt, caption, description fields * Bugfix: missing error class for alt, caption, description fields * Bugfix: undefined index for categories array in usp-forms.php * Bugfix: global redirect success not working when redirect failure not specified * Bugfix: local redirect success not working properly * Bugfix: custom CSS class included in attribute without preceding space * Bugfix: approval email not sent to user, replaced get_userdata() with get_the_author_meta() * Bugfix: unpredictable results with max-character functionality * Bugfix: custom fields errors and session remembering not working * Bugfix: custom content not added to contact emails when post is not submitted * Bugfix: category checkboxes not remembering values * Bugfix: usp_style setting was not included in uninstall.php * New feature: unlimited *custom* custom fields :) * New feature: forms now support multiple category fields (chained/combo categories) * New feature: user shortcodes (`[img-1]` thru `[img-5]`) to auto-display uploaded images * New feature: specify size of auto-display images (thumbnail, medium, large, or full) * New feature: restore default plugin options (added to "More" settings) * New feature: usp-subject now attached to submitted post as custom field * New feature: over 50 new action and filter hooks (list @ [Plugin Planet](https://plugin-planet.com/usp-pro-action-filter-hooks/) * New feature: option to send email in HTML or plain-text format for contact forms and post alerts * New feature: option to add custom attributes to the form tag * New feature: options to specify default values for post title and content * New feature: "custom" attribute for all form Quicktags/Shortcodes * New feature: input types for custom fields now include: url, search, email, tel, month, week, time, datetime, datetime-local, color, date, range, number * Enhancement: integrated support for Parsley 2 [ref](https://plugin-planet.com/usp-pro-form-validation-with-parsley-2/) * Enhancement: removed menu location for usp_form/usp_post for better compatibility with plugins that do declare a menu location * Enhancement: improved logic of submission_redirect() function * Enhancement: improved logic of registration hooks and options calls in usp-pro.php * Enhancement: improved logic of send_email_alert() function * Enhancement: replaced UTF-8 with get_option('blog_charset') in several functions * Enhancement: removed @charset "UTF-8"; from all stylesheets * Enhancement: replaced htmlentities() and htmlspecialchars() with sanitize_text_field() * Enhancement: removed paragraph tags from table cells on plugin settings page * Enhancement: moved settings section descriptions into their own file * Enhancement: increased minimum required version to WP 3.7 * Enhancement: added reply-to headers to contact-form emails * Enhancement: cleaned up plain-text emails formatting etc. * Enhancement: improved some settings descriptions * Enhancement: changed the way default email from address is handled (see option Admin: Contact Form: "Email From") * Enhancement: added default template demo of the classic USP form (from the free version of USP) * Tested with Meta Slider plugin, works great together out of the box :) * Note: %%post_date%% shortcut seems now to be working with submit-post email alerts (as of WP 4.0) * Removed from form tag (replaced with option): data-validate="parsley" data-persist="garlic" novalidate * Added .exclude class to #verify field * Changed default width of input fields and textarea * Removed inline documentation (replaced with link to online docs) * Removed usp-tables.php * Updated localization templates (mo/po) files * Updated plugin documentation in plugin and on site * Tested with latest version of WordPress (4.0) * Advance testing on WP 4.1 (alpha) * General code check and clean **1.7** * Bugfix: custom field names now properly recognized for all field types * Bugfix: multiple category select fields now remember values (when enabled) * Bugfix: custom fields now included properly in contact emails (when enabled) * Bugfix: "no mail" setting now includes email alerts (so possible to disable all mail) * Bugfix: custom user fields now may be required or not required (e.g., nicename, firstname, et al) * Bugfix: for combo submit/register forms, post was being submitted even when registration fails * New feature: use hidden field to make any form a submit, register, contact form, or combo form * New feature: support for custom taxonomies (custom categories), includes shortcode and quicktag * New feature: set submitted posts to "Publish Private" status * New feature: set submitted posts to "Publish with Password" status (auto-sends password) * New feature: added custom post status for the Posts screen (sort by custom status) * New feature: custom email recipients for individual contact forms (via hidden field) * New feature: carbon copy emails for admin submission, approval, and denied alerts * New feature: shortcodes for email alerts (submitted, approved, denied) * New feature: email alerts for submitter and admins when post is approved (published) * New feature: email alerts for submitter and admins when post is denied (moved to trash) * New feature: contact-form emails may include custom content with dynamic post variables * New feature: customize all error messages (visit new "More" settings tab) * Enhancement: post ID now included in return URL query string * Enhancement: post ID now attached to submitted posts as custom field "usp-post-id" * Enhancement: approval email alerts now work for scheduled/future-published posts * Enhancement: contact email includes custom user fields if included in the form (e.g., nicename, firstname, et al) * Enhancement: improved data handling in session variable and post content * Enhancement: streamlined insert_post function for better performance * Enhancement: increased textarea widths in plugin settings * Enhancement: error class added to primary form fields for custom styling * Enhancement: now using wp_generate_password() for user registration passwords * Enhancement: replaced sanitize_text_field() with sanitize_email() for the email field * Enhancement: added width and height to allowed attributes in post content * Enhancement: tweaked the settings description for external stylesheet and JavaScript files * Enhancement: tweaked the inline styles used for the USP Filter button on Trash screen * Added localization for French (Thanks to [Christophe Glaudel](http://chrisglaudel.com/)) * Updated form demos with new hidden fields for register and contact * Updated localization templates (mo/po) files * Updated plugin documentation in plugin and on site * Advance testing on WP 4.0 (alpha) * General code check and clean **1.6** * Added support for unlimited custom post types (per-form post types) * New feature: specify your own prefix for custom fields * Added field support for parsley.js form validation * Added support for Garlic (remember form values via jQuery) * Bugfix: added conditional check to usp_get_art_directed (resolves an error with BuddyPress) * Bugfix: tweaked code for excluding categories (resolved Illegal string offset error) * Custom field names may now include dashes/hyphens * Cleaned up custom field processing and field remembering * Bugfix: added headers to approval emails (thanks to [Mike Edwards](http://leanintuit.com/)) * Bugfix: corrected wording of "from" options in contact form settings * Updated localization templates (mo/po) files * Updated plugin documentation in plugin and on site * Further testing with WP version 3.9 * General code check and clean **1.5** * Renamed "usp_init" to "usp_pro_init" in usp-pro.php * Added "exclude" parameter to category shortcode and quicktag * Bugfix: defined default category-level class in category field * Added display_usp_form template tag for displaying USP Forms * Now supports forms that post content and send email via usp-send-mail * Added option to include or not any custom fields in email content * Bugfix: nested shortcodes for usp_is_submission, usp_access, usp_visitor, usp_member * Added html_entity_decode to email message for post approvals, admin alerts, user alerts * Bugfix: usp_error_post parameter was not being cleared on successful form submission * Added fallback functionality for exif_imagetype * New feature: create new categories on form submission * Bugfix: textarea custom fields remember their input values * Increased the maximum number of images from 20 to 99 * Updated plugin documentation in plugin and on site * Advance testing on development WP version 3.9-beta2 * General code check and clean **1.4** * Bugfix: renamed "init" to "usp_init" in usp-pro.php * usp_require_wp_version() now runs only on plugin activation * Bugfix: removed "'test '." string from usp_get_meta() output * Changed "POST NAME" to "AUTHOR NAME" in process.php line 882 * Bugfix: resolved error when using "No Limit" for file uploads * New Feature: WP Visual Editor now works with custom textareas * New Feature: Now can has multiple Visual Editors per USP Form * New Feature: Option to use the Name field as the post author * Advance testing on development WP version 3.9-alpha-nightly * Updated localization mo/po templates * General code check and clean **1.3** * New feature: added option to use Google reCAPTCHA instead of default Challenge Question * New feature: added option to require post titles to be unique * New feature: added option to specify the "From" address for contact forms * Bugfix: max_files setting now updates correctly * Bugfix: files input now handles single-file uploads properly * Bugfix: custom fields work with any alphanumeric value for input "name" attribute * Bugfix: auto-display images now applies only to user-submitted * Bugfix: contact form now working properly for multiple forms and custom fields * Improved code for min_files setting for better functionality * Improved logic for error handling and markup for default messages * Increased default number of characters for file upload input field * Replaced sanitize_text_field with htmlspecialchars for custom field input * Retested email/alert functionality with Gmail * Updated inline and online documentation * Generated new translation (mo/po) files * General code check and clean **1.2** * New feature: let users choose their own password when registering * New feature: custom form redirects (overrides default setting) - includes new USP Quicktag and Shortcode * New feature: option to use unique file names or overwrite existing files - more info @ https://m0n.co/usp-1 * Bugfix: WYSIWYG Editor was not displaying correctly - more info @ https://m0n.co/usp-2 * Added `href`, `rel`, and `target` attributes to `$allowed_atts` in `usp-pro.php` * Resolved some lingering PHP strict notices * General code check and clean **1.1** * Testing automatic updates **1.0** * Initial release