Improved overall dashboard layout and sidebar consistency for a cleaner user experience.
Fixed UI alignment issues and enhanced panel behavior to keep the interface more stable and professional across all settings sections.
1.9.6
Fixed: inlined sanitize_text_field( wp_unslash( … ) ) for $_POST[‘amslc_captcha’] to satisfy WordPress.Security.ValidatedSanitizedInput.InputNotSanitized.
Updated: readme “Tested up to” bumped to WordPress 7.0 and full WordPress.org readme compliance (Installation, FAQ, Screenshots, Upgrade Notice).
1.9.0
Hardened: every echoed variable is now escaped at output (esc_attr/esc_html/esc_url/wp_kses_post) as required by WordPress.org.
Hardened: all $_POST / $_SERVER reads are unslashed and sanitized; AJAX payloads are nonce-verified via guard() and JSON values are walked through map_deep + per-field sanitizers in AMSLC_Settings::update().
Replaced the direct require_once ABSPATH . ‘wp-login.php’ include in the custom-slug handler with a safe wp_safe_redirect( wp_login_url() ); the wp-login.php “hide” branch now only runs for anonymous GET requests.
Replaced direct <script> echoes in rc_site_inline() with wp_register_script() + wp_add_inline_script() on properly enqueued handles (both front-end and admin).
parse_url() replaced with wp_parse_url().
Added /* translators: */ comment to the “Blocked: try again in %d minute(s)” string.
Prefixed the remaining loop variables in admin/view.php ($amslc_sans, $amslc_serif, $amslc_disp, $amslc_rows, $amslc_r, $amslc_f).
Updated Author URI to the public WordPress.org author profile and rewrote the readme short description to fit the 150-character limit.
1.8.3
Updated “Tested up to” header.
1.8.2
Fixed admin CSS/JS not loading and all AJAX actions after the v1.8.0 prefix rename (menu hook + wp_ajax_* hooks).
1.8.0
Renamed plugin to “AMSites Login Customizer” with the new slug “amsites-login-customizer”.
Prefixed all PHP declarations, options, AJAX actions and constants with the unique “amslc_” / “AMSLC_” prefix to avoid collisions.
Bundled all background preset images locally; removed all remote (Unsplash/Pixabay) calls.