v0.23.0
- Added a "Hide locked tags" checkbox to the "All tags" table (below the Quick sort links), checked by default, so locked tags stay out of the way while working the list. Persisted per-user like the usage-bucket filter (
WPTO_Admin_Page::get_hide_locked_tags()); filters via ameta_queryonwpto_lockedin bothwp_count_terms()andget_terms()inWPTO_Tag_Stats_Table::prepare_items(). - Fixed the "All tags" table losing an active search (and sort/bucket filter) when paging past page 1. The
#wpto-tags-filterform posted viamethod="post", sos/orderby/etc. never made it into the URL thatWP_List_Table's pagination links are built from; switched the form tomethod="get"and updated the bulk-action handlers (maybe_process_stats_tab_actions(),process_bulk_delete(),process_bulk_toggle_lock(), theadd_to_mergebranch inrender_stats_tab()) to readtag_id[]/action/action2from$_REQUESTinstead of$_POSTto match. - Converted single-row lock toggle, single-row delete, and the "Lock"/"Unlock"/"Delete" bulk actions on the "All tags" table to Ajax (new
wp_ajax_wpto_toggle_lock,wp_ajax_wpto_bulk_lock,wp_ajax_wpto_delete_tagshandlers), so those no longer reload the page and drop the current search/sort/pagination state. Rows update or fade out in place; the "Hide locked tags" checkbox is respected when a row gets locked via Ajax. The full-page-reload routes (process_toggle_lock(),process_bulk_delete(),process_bulk_toggle_lock()) are kept as a no-JS fallback. The "Add to merge selection" bulk action is intentionally left as a normal (non-Ajax) submit, since it needs to redraw the merge basket section below the table anyway.
For the full version history, see CHANGELOG.md.