![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/corals/mets.corals.io/wp-content/plugins/give/ |
<?php /** * Uninstall Give * * @package Give * @since 1.0 * @copyright Copyright (c) 2016, GiveWP * @license https://opensource.org/licenses/gpl-license GNU Public License * @subpackage Uninstall */ // Exit if accessed directly. if ( ! defined( 'WP_UNINSTALL_PLUGIN' ) ) { exit; } // Load Give file. include_once( 'give.php' ); /** * Initialize the main Give class, which includes loading the code necessary to process the uninstall. * This is included manually because the plugins_loaded hook does not run on uninstall. * * @since 2.7.4 */ give()->init(); // Prevent checking for plugin updates remove_filter( 'pre_set_site_transient_update_plugins', 'give_check_addon_updates', 999 ); global $wpdb, $wp_roles; if ( give_is_setting_enabled( give_get_option( 'uninstall_on_delete' ) ) ) { // Delete All the Custom Post Types. $give_taxonomies = [ 'form_category', 'form_tag' ]; $give_post_types = [ 'give_forms', 'give_payment' ]; foreach ( $give_post_types as $post_type ) { foreach ( get_object_taxonomies( $post_type ) as $taxonomy ) { $give_taxonomies[] = $taxonomy; } $items = get_posts( [ 'post_type' => $post_type, 'post_status' => 'any', 'numberposts' => - 1, 'fields' => 'ids', ] ); if ( $items ) { foreach ( $items as $item ) { wp_delete_post( $item, true ); } } } // Delete All the Terms & Taxonomies. foreach ( array_unique( array_filter( $give_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 ( $terms ) { foreach ( $terms as $term ) { $wpdb->delete( $wpdb->term_taxonomy, [ 'term_taxonomy_id' => $term->term_taxonomy_id ] ); $wpdb->delete( $wpdb->terms, [ 'term_id' => $term->term_id ] ); } } // Delete Taxonomies. $wpdb->delete( $wpdb->term_taxonomy, [ 'taxonomy' => $taxonomy ], [ '%s' ] ); } // Delete the Plugin Pages. $give_created_pages = [ 'success_page', 'failure_page', 'history_page' ]; foreach ( $give_created_pages as $p ) { $page = give_get_option( $p, false ); if ( $page ) { wp_delete_post( $page, true ); } } // Delete Capabilities. give()->roles->remove_caps(); // Delete the Roles. $give_roles = [ 'give_manager', 'give_accountant', 'give_worker', 'give_donor' ]; foreach ( $give_roles as $role ) { remove_role( $role ); } // Remove all give database tables. $give_tables = $wpdb->get_col( "SHOW TABLES LIKE '{$wpdb->prefix}give_%'" ); $wpdb->query( 'DROP TABLE ' . implode( ',', $give_tables ) ); // Cleanup Cron Events. wp_clear_scheduled_hook( 'give_daily_scheduled_events' ); wp_clear_scheduled_hook( 'give_weekly_scheduled_events' ); wp_clear_scheduled_hook( 'give_daily_cron' ); wp_clear_scheduled_hook( 'give_weekly_cron' ); // Get all options. $give_option_names = $wpdb->get_col( $wpdb->prepare( " SELECT option_name FROM {$wpdb->options} WHERE option_name LIKE '%s' ", '%give%' ) ); if ( ! empty( $give_option_names ) ) { // Convert option name to transient or option name. $new_give_option_names = []; // Delete all the Plugin Options. foreach ( $give_option_names as $option ) { if ( false !== strpos( $option, 'give_cache' ) ) { Give_Cache::delete( $option ); } else { delete_option( $option ); } } } }