`, 30 minutes): remove any left over. $wpdb->query( // phpcs:ignore WordPress.DB.DirectDatabaseQuery $wpdb->prepare( "DELETE FROM {$wpdb->options} WHERE option_name LIKE %s OR option_name LIKE %s", $wpdb->esc_like( '_transient_sendduo_pair_' ) . '%', $wpdb->esc_like( '_transient_timeout_sendduo_pair_' ) . '%' ) ); $wpdb->query( "DROP TABLE IF EXISTS {$wpdb->prefix}sendduo_outbox" ); // phpcs:ignore WordPress.DB.DirectDatabaseQuery, WordPress.DB.PreparedSQL.InterpolatedNotPrepared $wpdb->query( "DROP TABLE IF EXISTS {$wpdb->prefix}sendduo_carts" ); // phpcs:ignore WordPress.DB.DirectDatabaseQuery, WordPress.DB.PreparedSQL.InterpolatedNotPrepared foreach ( array( 'sendduo_flush_outbox', 'sendduo_flush_outbox_now', 'sendduo_daily' ) as $sendduo_hook ) { wp_clear_scheduled_hook( $sendduo_hook ); } } // Multisite: every site of the network (each has its own tables and options). if ( is_multisite() && function_exists( 'get_sites' ) ) { foreach ( get_sites( array( 'fields' => 'ids', 'number' => 0 ) ) as $sendduo_site_id ) { switch_to_blog( (int) $sendduo_site_id ); sendduo_uninstall_site(); restore_current_blog(); } } else { sendduo_uninstall_site(); }