get_col( "SELECT blog_id FROM $wpdb->blogs WHERE archived = '0' AND spam = '0' AND deleted = '0'" ); if ( ! empty( $blog_ids ) ) { foreach ( $blog_ids as $blog_id ) { switch_to_blog( $blog_id ); rank_math_remove_data(); restore_current_blog(); } } } /** * Removes ALL plugin data * * @since 1.0.35 */ function rank_math_remove_data() { // Delete all options. rank_math_delete_options(); // Delete meta for post, user and term. rank_math_delete_meta( 'post' ); rank_math_delete_meta( 'user' ); rank_math_delete_meta( 'term' ); // Drop Tables. rank_math_drop_table( 'rank_math_404_logs' ); rank_math_drop_table( 'rank_math_redirections' ); rank_math_drop_table( 'rank_math_redirections_cache' ); rank_math_drop_table( 'rank_math_internal_links' ); rank_math_drop_table( 'rank_math_internal_meta' ); rank_math_drop_table( 'rank_math_sc_analytics' ); // Remove Capabilities. /** * PSR-4 Autoload. */ include dirname( __FILE__ ) . '/vendor/autoload.php'; \RankMath\Role_Manager\Capability_Manager::get()->remove_capabilities(); // Clear any cached data that has been removed. wp_cache_flush(); } /** * Delete options. * * @return void */ function rank_math_delete_options() { global $wpdb; $where = $wpdb->prepare( 'WHERE option_name LIKE %s OR option_name LIKE %s', '%' . $wpdb->esc_like( 'rank-math' ) . '%', '%' . $wpdb->esc_like( 'rank_math' ) . '%' ); $wpdb->query( "DELETE FROM {$wpdb->prefix}options {$where}" ); // phpcs:ignore } /** * Delete post meta. * * @param string $table Table name. * @return void */ function rank_math_delete_meta( $table = 'post' ) { global $wpdb; $where = $wpdb->prepare( 'WHERE meta_key LIKE %s OR meta_key LIKE %s', '%' . $wpdb->esc_like( 'rank-math' ) . '%', '%' . $wpdb->esc_like( 'rank_math' ) . '%' ); $wpdb->query( "DELETE FROM {$wpdb->prefix}{$table}meta {$where}" ); // phpcs:ignore } /** * Drop table from database * * @param string $name Name of table. * @return void */ function rank_math_drop_table( $name ) { global $wpdb; $wpdb->query( "DROP TABLE IF EXISTS {$wpdb->prefix}{$name}" ); // phpcs:ignore }