Files
SIGE-WEB-snapshot/wp-content/plugins/all-in-one-video-gallery/includes/uninstall.php

113 lines
3.8 KiB
PHP

<?php
/**
* Fired during plugin uninstallation.
*
* @link https://plugins360.com
* @since 1.0.0
*
* @package All_In_One_Video_Gallery
*/
// Exit if accessed directly
if ( !defined( 'WPINC' ) ) {
die;
}
/**
* AIOVG_Uninstall class.
*
* @since 1.0.0
*/
class AIOVG_Uninstall {
/**
* Called when the plugin is uninstalled.
*
* @since 1.0.0
*/
public static function uninstall() {
if ( !defined( 'AIOVG_UNINSTALL_PLUGIN' ) ) {
define( 'AIOVG_UNINSTALL_PLUGIN', true );
}
$general_settings = get_option( 'aiovg_general_settings', array() );
if ( empty( $general_settings['delete_plugin_data'] ) ) {
return;
}
global $wpdb;
// Delete all the custom post types
$aiovg_post_types = array('aiovg_videos');
foreach ( $aiovg_post_types as $post_type ) {
$items = get_posts( array(
'post_type' => $post_type,
'post_status' => 'any',
'numberposts' => -1,
'fields' => 'ids',
) );
if ( count( $items ) ) {
foreach ( $items as $item ) {
wp_delete_post( $item, true );
}
}
}
// Delete all the terms & taxonomies
$aiovg_taxonomies = array('aiovg_categories', 'aiovg_tags');
foreach ( $aiovg_taxonomies as $taxonomy ) {
$terms = $wpdb->get_results( $wpdb->prepare( "SELECT t.*, tt.* FROM {$wpdb->terms} AS t INNER JOIN {$wpdb->term_taxonomy} AS tt ON t.term_id = tt.term_id WHERE tt.taxonomy IN ('%s') ORDER BY t.name ASC", $taxonomy ) );
// Delete terms
if ( count( $terms ) ) {
foreach ( $terms as $term ) {
$wpdb->delete( $wpdb->term_taxonomy, array(
'term_taxonomy_id' => $term->term_taxonomy_id,
) );
$wpdb->delete( $wpdb->terms, array(
'term_id' => $term->term_id,
) );
}
}
// Delete taxonomies
$wpdb->delete( $wpdb->term_taxonomy, array(
'taxonomy' => $taxonomy,
), array('%s') );
}
// Delete the plugin pages
$aiovg_created_pages = get_option( 'aiovg_page_settings' );
if ( is_array( $aiovg_created_pages ) ) {
foreach ( $aiovg_created_pages as $page => $id ) {
if ( $id > 0 ) {
wp_delete_post( $id, true );
}
}
}
// Delete all the plugin options
$aiovg_settings = array(
'aiovg_player_settings',
'aiovg_email_capture_settings',
'aiovg_socialshare_settings',
'aiovg_videos_settings',
'aiovg_categories_settings',
'aiovg_images_settings',
'aiovg_featured_images_settings',
'aiovg_likes_settings',
'aiovg_pagination_settings',
'aiovg_video_settings',
'aiovg_related_videos_settings',
'aiovg_brand_settings',
'aiovg_permalink_settings',
'aiovg_restrictions_settings',
'aiovg_trailer_settings',
'aiovg_privacy_settings',
'aiovg_general_settings',
'aiovg_api_settings',
'aiovg_bunny_stream_settings',
'aiovg_page_settings',
'aiovg_rewrite_rules_flushed',
'aiovg_version'
);
foreach ( $aiovg_settings as $settings ) {
delete_option( $settings );
}
// Delete capabilities
$roles = new AIOVG_Roles();
$roles->remove_caps();
}
}