Allows you to merge terms, move terms between taxonomies, and set term parents, individually or in bulk. WPML is supported when changing taxonomies.
| Code | Message | Location | Category | |
|---|---|---|---|---|
| ERROR | PluginCheck.Security.DirectDB.UnescapedDBParameter | Unescaped parameter $query_term_id_placeholder used in $wpdb->query($wpdb->prepare(\n\t\t\t\t\t"UPDATE $wpdb->term_taxonomy SET parent = 0 WHERE term_id IN (" . $query_term_id_placeholder . ')',\n\t\t\t\t\t...$term_ids_to_move\n\t\t\t\t))\n$query_term_id_placeholder assigned unsafely at line 263:\n $query_term_id_placeholder = $this->build_sql_placeholder( $term_ids_to_move )\n$term_ids_to_move assigned unsafely at line 223:\n $term_ids_to_move = apply_filters( 'term_management_tools_changed_taxonomy__terms_and_child_terms', $term_ids_to_move, $taxonomy_to, $taxonomy_from )\n$term_ids_to_move assigned unsafely at line 202:\n $term_ids_to_move = array_unique( array_map( 'absint', $term_ids_to_move ) )\n$term_ids_to_move assigned unsafely at line 200:\n $term_ids_to_move = array_merge( $term_ids_to_move, $this->get_all_child_terms_for( (int) $term_id, $taxonomy_from, $this->get_term_hierarchy( $taxonomy_from ) ) )\n$term_ids_to_move assigned unsafely at line 198:\n $term_ids_to_move = $terms_manually_selected\n$taxonomy_to assigned unsafely at line 158:\n $taxonomy_to = $_POST['new_tax']\n$taxonomy_from used without escaping.\n$term_id used without escaping.\n$terms_manually_selected assigned unsafely at line 193:\n $terms_manually_selected = apply_filters( 'term_management_tools_changed_taxonomy__terms_as_supplied', $terms_manually_selected, $taxonomy_to, $taxonomy_from )\n$_POST['new_tax'] used without escaping. | 289:11 | Security |
| ERROR | WordPress.DB.PreparedSQL.NotPrepared | Use placeholders and $wpdb->prepare(); found $query_term_id_placeholder | 268:74 | Security |
| ERROR | WordPress.DB.PreparedSQL.NotPrepared | Use placeholders and $wpdb->prepare(); found $query_term_id_placeholder | 291:72 | Security |
| ERROR | PluginCheck.Security.DirectDB.UnescapedDBParameter | Unescaped parameter $terms_to_reset_parentage_for__placeholder used in $wpdb->query($wpdb->prepare(\n\t\t\t\t\t\t\t"UPDATE $wpdb->term_taxonomy SET parent = 0 WHERE term_id IN (" . $terms_to_reset_parentage_for__placeholder . ')',\n\t\t\t\t\t\t\t...$terms_to_reset_parentage_for\n\t\t\t\t\t\t))\n$terms_to_reset_parentage_for__placeholder assigned unsafely at line 259:\n $terms_to_reset_parentage_for__placeholder = $this->build_sql_placeholder( $terms_to_reset_parentage_for )\n$terms_to_reset_parentage_for assigned unsafely at line 258:\n $terms_to_reset_parentage_for = apply_filters( 'term_management_tools_changed_taxonomy__reset_parent_for', $terms_to_reset_parentage_for, $term_ids_to_move, $taxonomy_from )\n$terms_to_reset_parentage_for assigned unsafely at line 242:\n $terms_to_reset_parentage_for[] = $term_id\n$term_ids_to_move assigned unsafely at line 223:\n $term_ids_to_move = apply_filters( 'term_management_tools_changed_taxonomy__terms_and_child_terms', $term_ids_to_move, $taxonomy_to, $taxonomy_from )\n$term_ids_to_move assigned unsafely at line 202:\n $term_ids_to_move = array_unique( array_map( 'absint', $term_ids_to_move ) )\n$term_ids_to_move assigned unsafely at line 200:\n $term_ids_to_move = array_merge( $term_ids_to_move, $this->get_all_child_terms_for( (int) $term_id, $taxonomy_from, $this->get_term_hierarchy( $taxonomy_from ) ) )\n$term_ids_to_move assigned unsafely at line 198:\n $term_ids_to_move = $terms_manually_selected\n$taxonomy_from used without escaping.\n$term_id used without escaping.\n$taxonomy_to assigned unsafely at line 158:\n $taxonomy_to = $_POST['new_tax']\n$terms_manually_selected assigned unsafely at line 193:\n $terms_manually_selected = apply_filters( 'term_management_tools_changed_taxonomy__terms_as_supplied', $terms_manually_selected, $taxonomy_to, $taxonomy_from )\n$_POST['new_tax'] used without escaping. | 279:13 | Security |
| ERROR | outdated_tested_upto_header | Tested up to: 5.6 < 6.8. The "Tested up to" value in your plugin is not set to the current version of WordPress. This means your plugin will not show up in searches, as we require plugins to be compatible and documented as tested up to the most recent version of WordPress. | — | Plugin Repo |
| ERROR | PluginCheck.Security.DirectDB.UnescapedDBParameter | Unescaped parameter $query_term_id_placeholder used in $wpdb->query($wpdb->prepare(\n\t\t\t\t"UPDATE $wpdb->term_taxonomy SET taxonomy = %s WHERE term_id IN (" . $query_term_id_placeholder . ')',\n\t\t\t\t$taxonomy_to,\n\t\t\t\t...$term_ids_to_move\n\t\t\t))\n$query_term_id_placeholder assigned unsafely at line 263:\n $query_term_id_placeholder = $this->build_sql_placeholder( $term_ids_to_move )\n$term_ids_to_move assigned unsafely at line 223:\n $term_ids_to_move = apply_filters( 'term_management_tools_changed_taxonomy__terms_and_child_terms', $term_ids_to_move, $taxonomy_to, $taxonomy_from )\n$term_ids_to_move assigned unsafely at line 202:\n $term_ids_to_move = array_unique( array_map( 'absint', $term_ids_to_move ) )\n$term_ids_to_move assigned unsafely at line 200:\n $term_ids_to_move = array_merge( $term_ids_to_move, $this->get_all_child_terms_for( (int) $term_id, $taxonomy_from, $this->get_term_hierarchy( $taxonomy_from ) ) )\n$term_ids_to_move assigned unsafely at line 198:\n $term_ids_to_move = $terms_manually_selected\n$taxonomy_to assigned unsafely at line 158:\n $taxonomy_to = $_POST['new_tax']\n$taxonomy_from used without escaping.\n$term_id used without escaping.\n$terms_manually_selected assigned unsafely at line 193:\n $terms_manually_selected = apply_filters( 'term_management_tools_changed_taxonomy__terms_as_supplied', $terms_manually_selected, $taxonomy_to, $taxonomy_from )\n$_POST['new_tax'] used without escaping. | 266:10 | Security |
| ERROR | WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedHooknameFound | Hook names invoked by a theme/plugin should start with the theme/plugin prefix. Found: "wpml_object_id". | 118:73 | Plugin Repo |
| ERROR | WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedHooknameFound | Hook names invoked by a theme/plugin should start with the theme/plugin prefix. Found: "wpml_element_type". | 194:49 | Plugin Repo |
| ERROR | WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedHooknameFound | Hook names invoked by a theme/plugin should start with the theme/plugin prefix. Found: "wpml_set_element_language_details". | 208:28 | Plugin Repo |
| ERROR | WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedHooknameFound | Hook names invoked by a theme/plugin should start with the theme/plugin prefix. Found: "wpml_active_languages". | 221:37 | Plugin Repo |
| 11/13/2025, 12:28:19 PM | 9s | 91 | 15 | 20 |