'ids' ) ); foreach ( $hey_feedback_site_ids as $hey_feedback_site_id ) { switch_to_blog( $hey_feedback_site_id ); hey_feedback_uninstall_site(); restore_current_blog(); } } /** * Removes all plugin data for the current site. */ function hey_feedback_uninstall_site() { global $wpdb; // Drop tables. // phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery, WordPress.DB.DirectDatabaseQuery.SchemaChange, WordPress.DB.DirectDatabaseQuery.NoCaching $wpdb->query( $wpdb->prepare( "DROP TABLE IF EXISTS %i", $wpdb->prefix . 'hey_feedback_meta' ) ); // phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery, WordPress.DB.DirectDatabaseQuery.SchemaChange, WordPress.DB.DirectDatabaseQuery.NoCaching $wpdb->query( $wpdb->prepare( "DROP TABLE IF EXISTS %i", $wpdb->prefix . 'hey_feedback_responses' ) ); // phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery, WordPress.DB.DirectDatabaseQuery.SchemaChange, WordPress.DB.DirectDatabaseQuery.NoCaching $wpdb->query( $wpdb->prepare( "DROP TABLE IF EXISTS %i", $wpdb->prefix . 'hey_feedback_items' ) ); // Delete options. delete_option( 'hey_feedback_settings' ); delete_option( 'hey_feedback_db_version' ); delete_option( 'hey_feedback_last_digest' ); // Clean transients. // 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", $wpdb->esc_like( '_transient_hey_feedback_rl_' ) . '%', $wpdb->esc_like( '_transient_timeout_hey_feedback_rl_' ) . '%' ) ); // Delete user meta. // phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery, WordPress.DB.DirectDatabaseQuery.NoCaching $wpdb->query( $wpdb->prepare( "DELETE FROM {$wpdb->usermeta} WHERE meta_key LIKE %s", $wpdb->esc_like( 'hey_feedback_' ) . '%' ) ); // Unschedule cron events. wp_clear_scheduled_hook( 'hey_feedback_send_digest' ); }