query("DROP TABLE IF EXISTS {$wpdb->prefix}{$table}"); } // Options and transients (the transient rows live in wp_options too). // phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery, WordPress.DB.DirectDatabaseQuery.NoCaching $wpdb->query($wpdb->prepare( "DELETE FROM {$wpdb->options} WHERE option_name LIKE %s OR option_name LIKE %s OR option_name LIKE %s", $wpdb->esc_like('lbraid_') . '%', $wpdb->esc_like('_transient_lbraid_') . '%', $wpdb->esc_like('_transient_timeout_lbraid_') . '%' )); // Post meta: index flags, anchors, history snapshots, analysis state. // phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery, WordPress.DB.DirectDatabaseQuery.NoCaching $wpdb->query($wpdb->prepare("DELETE FROM {$wpdb->postmeta} WHERE meta_key LIKE %s", $wpdb->esc_like('_lbraid_') . '%')); // Per-user state of the review request. delete_metadata('user', 0, 'lbraid_review_notice', '', true); wp_clear_scheduled_hook('lbraid_job_tick');