function uninstall_for_current_blog() { global $wpdb; Model\Feed::destroy(); Model\FileType::destroy(); Model\EpisodeAsset::destroy(); Model\MediaFile::destroy(); Model\Episode::destroy(); Model\Template::destroy(); Model\DownloadIntent::destroy(); Model\DownloadIntentClean::destroy(); Model\UserAgent::destroy(); Model\GeoArea::destroy(); Model\GeoAreaName::destroy(); do_action('podlove_uninstall_plugin'); // trash all episodes $query = new \WP_Query(['post_type' => 'podcast']); if ($query->have_posts()) { while ($query->have_posts()) { $query->the_post(); wp_trash_post(get_the_ID()); } } wp_reset_postdata(); // delete everything from wp_options $wpdb->query('DELETE FROM `' . $wpdb->options . '` WHERE option_name LIKE "%podlove%"'); }
/** * Save episode assets based on checkbox data. * * @param \Podlove\Model\Episode $episode * @param array $checkbox_data Raw form data for checkboxes. * Contains 'on' for checked boxes and no entry at all for unchecked ones. */ function save_episode_assets($episode, $checkbox_data) { // create array where the keys are asset_ids and values false $assets = array_map(function ($_) { return false; }, array_flip(array_map(function ($l) { return $l->id; }, Model\EpisodeAsset::all()))); // set those assets to true where the checkbox is set foreach ($assets as $id => $_) { if (isset($checkbox_data[$id]) && $checkbox_data[$id] === 'on') { $assets[$id] = true; } } // create new ones, delete unchecked ones foreach ($assets as $episode_asset_id => $episode_asset_value) { $file = Model\MediaFile::find_by_episode_id_and_episode_asset_id($episode->id, $episode_asset_id); if ($file === NULL && $episode_asset_value) { $file = new Model\MediaFile(); $file->episode_id = $episode->id; $file->episode_asset_id = $episode_asset_id; $file->save(); } elseif ($file !== NULL && !$episode_asset_value) { $file->delete(); } } }
function uninstall_for_current_blog() { Model\Feed::destroy(); Model\FileType::destroy(); Model\EpisodeAsset::destroy(); Model\MediaFile::destroy(); Model\Show::destroy(); Model\Episode::destroy(); Model\Release::destroy(); }