'cwbtn_payment', 'post_status' => 'any', 'posts_per_page' => -1, 'fields' => 'ids', 'no_found_rows' => true, ] ); foreach ( $ids as $id ) { wp_delete_post( (int) $id, true ); } // The searchable copies and media lists kept on posts with paid content. delete_post_meta_by_key( '_cryptoway_button_public_content' ); delete_post_meta_by_key( '_cryptoway_button_paid_media' ); global $wpdb; // Locks left by a crash, the rate-limit and cool-down counters, the remembered paid content. $wpdb->query( // phpcs:ignore WordPress.DB.DirectDatabaseQuery "DELETE FROM {$wpdb->options} WHERE option_name LIKE 'cryptoway\\_button\\_lock\\_%' OR option_name LIKE 'cryptoway\\_button\\_paid\\_%' OR option_name LIKE '\\_transient\\_cryptoway\\_button\\_rate\\_%' OR option_name LIKE '\\_transient\\_timeout\\_cryptoway\\_button\\_rate\\_%' OR option_name LIKE '\\_transient\\_cryptoway\\_button\\_recover\\_%' OR option_name LIKE '\\_transient\\_timeout\\_cryptoway\\_button\\_recover\\_%'" ); } if ( is_multisite() ) { foreach ( get_sites( [ 'fields' => 'ids', 'number' => 0 ] ) as $cryptoway_button_site ) { switch_to_blog( (int) $cryptoway_button_site ); cryptoway_button_uninstall_site(); restore_current_blog(); } } else { cryptoway_button_uninstall_site(); }