'holmesforms_form', 'post_status' => array( 'publish', 'future', 'draft', 'pending', 'private', 'trash', 'auto-draft', 'inherit' ), 'numberposts' => -1, 'fields' => 'ids', 'no_found_rows' => true, ) ); foreach ( (array) $form_ids as $form_id ) { wp_delete_post( (int) $form_id, true ); } foreach ( array( 'holmesforms_submissions', 'holmesforms_entry_search', 'holmesforms_activity' ) as $suffix ) { $table = $wpdb->prefix . $suffix; $wpdb->query( $wpdb->prepare( 'DROP TABLE IF EXISTS %i', $table ) ); // phpcs:ignore WordPress.DB.DirectDatabaseQuery -- uninstall removes the plugin's own tables } delete_option( 'holmesforms_settings' ); delete_option( 'holmesforms_activity_db' ); // phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery, WordPress.DB.DirectDatabaseQuery.NoCaching -- uninstall removes the plugin's own tables and options $wpdb->query( $wpdb->prepare( "DELETE FROM {$wpdb->options} WHERE option_name LIKE %s", $wpdb->esc_like( 'holmesforms_held_' ) . '%' ) ); foreach ( array( 'holmesforms_job_', 'holmesforms_jobf_', 'holmesforms_jobl_' ) as $job_prefix ) { // phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery, WordPress.DB.DirectDatabaseQuery.NoCaching -- uninstall removes the plugin's own tables and options $wpdb->query( $wpdb->prepare( "DELETE FROM {$wpdb->options} WHERE option_name LIKE %s", $wpdb->esc_like( $job_prefix ) . '%' ) ); } delete_option( 'holmesforms_jobs_loopback_broken' ); delete_transient( 'holmesforms_jobs_failed_swept' ); delete_transient( 'holmesforms_held_bytes' ); delete_option( 'holmesforms_heldspace_full' ); delete_option( 'holmesforms_mail_count' ); foreach ( array( 'holmesforms_issue_uploads', 'holmesforms_issue_spam', 'holmesforms_issue_recipients', 'holmesforms_issues_emailed' ) as $issue_option ) { delete_option( $issue_option ); } delete_transient( 'holmesforms_issue_sealed' ); delete_option( 'holmesforms_presets' ); delete_option( 'holmesforms_db_version' ); delete_option( 'holmesforms_search_mode' ); delete_option( 'holmesforms_search_rebuild' ); delete_option( 'holmesforms_key_check' ); delete_option( 'holmesforms_unsaved_wrong_key' ); delete_option( 'holmesforms_ref_next' ); delete_option( 'holmesforms_defaults_seeded' ); delete_option( 'holmesforms_starter_seeded' ); delete_option( 'holmesforms_sample_entry_seeded' ); delete_option( 'holmesforms_tour_pending' ); delete_option( 'holmesforms_guide_page_id' ); delete_option( 'holmesforms_guide_built' ); delete_option( 'holmesforms_setup_done' ); delete_option( 'holmesforms_first_seen' ); delete_option( 'holmesforms_review_answered' ); delete_transient( 'holmesforms_review_entry_count' ); delete_option( 'holmesforms_backup' ); delete_option( 'holmesforms_bank_holidays' ); delete_transient( 'holmesforms_bank_holidays_try' ); delete_option( 'holmesforms_lead_pending' ); delete_option( 'holmesforms_lead_sent_at' ); delete_option( 'holmesforms_lead_type' ); $wpdb->query( "DELETE FROM {$wpdb->usermeta} WHERE meta_key LIKE 'holmesforms\_%'" ); // phpcs:ignore WordPress.DB.PreparedSQL.NotPrepared, WordPress.DB.DirectDatabaseQuery -- uninstall removes the plugin's own tables and options $wpdb->query( "DELETE FROM {$wpdb->postmeta} WHERE meta_key LIKE '\_holmesforms\_%'" ); // phpcs:ignore WordPress.DB.PreparedSQL.NotPrepared, WordPress.DB.DirectDatabaseQuery -- uninstall removes the plugin's own tables and options register_taxonomy( 'holmesforms_form_group', 'holmesforms_form', array( 'public' => false ) ); $term_ids = get_terms( array( 'taxonomy' => 'holmesforms_form_group', 'hide_empty' => false, 'fields' => 'ids', ) ); foreach ( (array) $term_ids as $term_id ) { wp_delete_term( (int) $term_id, 'holmesforms_form_group' ); } $wpdb->query( "DELETE FROM {$wpdb->options} WHERE option_name LIKE 'holmesforms\_%'" ); // phpcs:ignore WordPress.DB.PreparedSQL.NotPrepared, WordPress.DB.DirectDatabaseQuery -- uninstall removes the plugin's own tables and options $wpdb->query( "DELETE FROM {$wpdb->options} WHERE option_name LIKE '\_transient\_holmesforms\_%' OR option_name LIKE '\_transient\_timeout\_holmesforms\_%'" ); // phpcs:ignore WordPress.DB.PreparedSQL.NotPrepared, WordPress.DB.DirectDatabaseQuery -- uninstall removes the plugin's own tables and options flush_rewrite_rules( false ); } if ( is_multisite() ) { foreach ( get_sites( array( 'fields' => 'ids', 'number' => 0, ) ) as $holmesforms_site_id ) { switch_to_blog( (int) $holmesforms_site_id ); holmesforms_uninstall_site(); restore_current_blog(); } } else { holmesforms_uninstall_site(); wp_cache_flush(); }