postmeta} is WP core's own table-name property, never user input; the LIKE pattern is built via $wpdb->esc_like() and passed through $wpdb->prepare(). Runs once on explicit "Delete" from the Plugins screen, not a cacheable read path. $wpdb->query( $wpdb->prepare( "DELETE FROM {$wpdb->postmeta} WHERE meta_key LIKE %s", $wpdb->esc_like( '_abds_seo_' ) . '%' ) ); remove_role( 'seo_manager' ); $admin_role = get_role( 'administrator' ); if ( $admin_role ) { $admin_role->remove_cap( 'manage_abds_seo' ); } if ( function_exists( 'as_unschedule_all_actions' ) ) { as_unschedule_all_actions( 'abds_seo_run_site_scan', array(), 'abds-seo' ); as_unschedule_all_actions( 'abds_seo_scan_batch', array(), 'abds-seo' ); } } abds_seo_uninstall();