PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / 2.9.1
GiveWP – Donation Plugin and Fundraising Platform v2.9.1
4.16.2 4.16.1 4.16.0 4.15.5 4.15.4 4.15.3 4.15.2 4.15.1 4.15.0 2.3.0 2.3.1 2.3.2 2.30.0 2.31.0 2.31.1 2.32.0 2.33.0 2.33.1 2.33.2 2.33.3 2.33.4 2.33.5 2.4.0 2.4.1 2.4.2 2.4.3 2.4.4 2.4.5 2.4.6 2.4.7 2.5.0 2.5.1 2.5.10 2.5.11 2.5.12 2.5.13 2.5.2 2.5.3 2.5.4 2.5.5 2.5.6 2.5.7 2.5.8 2.5.9 2.6.0 2.6.1 2.6.2 2.6.3 2.7.0 2.7.1 2.7.2 2.7.3 2.7.4 2.7.5 2.8.0 2.8.1 2.9.0 2.9.1 2.9.2 2.9.3 2.9.4 2.9.5 2.9.6 2.9.7 3.0.0 3.0.1 3.0.2 3.0.3 3.0.4 3.1.0 3.1.1 3.1.2 3.10.0 3.11.0 3.12.0 3.12.1 3.12.2 3.12.3 3.13.0 3.14.0 3.14.1 3.14.2 3.15.0 3.15.1 3.16.0 3.16.1 3.16.2 3.16.3 3.16.4 3.16.5 3.17.0 3.17.1 3.17.2 3.18.0 3.19.0 3.19.1 3.19.2 3.19.3 3.19.4 3.2.0 3.2.1 3.2.2 3.20.0 3.21.0 3.21.1 3.22.0 3.22.1 3.22.2 3.3.0 3.3.1 3.4.0 3.4.1 3.4.2 3.5.0 3.5.1 3.6.0 3.6.1 3.6.2 3.7.0 3.8.0 3.9.0 4.0.0 4.1.0 4.1.1 4.10.0 4.10.1 4.11.0 4.12.0 4.13.0 4.13.1 4.13.2 4.14.0 4.14.1 4.14.2 4.14.3 4.14.4 4.14.5 4.14.6 4.2.0 4.2.1 4.3.0 4.3.1 4.3.2 4.4.0 4.5.0 4.6.1 4.7.0 4.7.1 4.8.0 4.8.1 4.9.0 trunk 1.9.0 2.0.0 2.0.1 2.0.2 2.0.3 2.0.4 2.0.5 2.0.6 2.0.7 2.1.0 2.1.1 2.1.2 2.1.3 2.1.4 2.1.5 2.1.6 2.1.7 2.1.8 2.10.0 2.10.1 2.10.2 2.10.3 2.10.4 2.11.0 2.11.1 2.11.2 2.11.3 2.12.0 2.12.1 2.12.2 2.12.3 2.13.0 2.13.1 2.13.2 2.13.3 2.13.4 2.14.0 2.15.0 2.16.0 2.16.1 2.17.0 2.17.1 2.17.3 2.18.0 2.18.1 2.19.1 2.19.2 2.19.3 2.19.4 2.19.5 2.19.6 2.19.7 2.19.8 2.2.0 2.2.1 2.2.2 2.2.3 2.2.4 2.2.5 2.2.6 2.20.0 2.20.1 2.20.2 2.21.0 2.21.1 2.21.2 2.21.3 2.21.4 2.22.0 2.22.1 2.22.2 2.22.3 2.23.0 2.23.1 2.23.2 2.24.0 2.24.1 2.24.2 2.25.0 2.25.1 2.25.2 2.25.3 2.26.0 2.27.0 2.27.1 2.27.2 2.27.3 2.28.0 2.29.0 2.29.1 2.29.2
give / uninstall.php
give Last commit date
.storybook 5 years ago assets 5 years ago blocks 5 years ago includes 5 years ago languages 5 years ago sample-data 6 years ago src 5 years ago templates 5 years ago vendor 5 years ago .distignore 5 years ago .gitattributes 5 years ago .stylelintignore 6 years ago changelog.txt 5 years ago give.php 5 years ago license.txt 6 years ago phpcs.xml.dist 5 years ago readme.txt 5 years ago uninstall.php 5 years ago wpml-config.xml 6 years ago
uninstall.php
136 lines
1 <?php
2 /**
3 * Uninstall Give
4 *
5 * @package Give
6 * @subpackage Uninstall
7 * @copyright Copyright (c) 2016, GiveWP
8 * @license https://opensource.org/licenses/gpl-license GNU Public License
9 * @since 1.0
10 */
11
12 // Exit if accessed directly.
13 if ( ! defined( 'WP_UNINSTALL_PLUGIN' ) ) {
14 exit;
15 }
16
17 // Load Give file.
18 include_once( 'give.php' );
19
20 /**
21 * Initialize the main Give class, which includes loading the code necessary to process the uninstall.
22 * This is included manually because the plugins_loaded hook does not run on uninstall.
23 *
24 * @since 2.7.4
25 */
26 give()->init();
27
28 global $wpdb, $wp_roles;
29
30
31 if ( give_is_setting_enabled( give_get_option( 'uninstall_on_delete' ) ) ) {
32
33 // Delete All the Custom Post Types.
34 $give_taxonomies = [ 'form_category', 'form_tag' ];
35 $give_post_types = [ 'give_forms', 'give_payment' ];
36 foreach ( $give_post_types as $post_type ) {
37
38 $give_taxonomies = array_merge( $give_taxonomies, get_object_taxonomies( $post_type ) );
39 $items = get_posts(
40 [
41 'post_type' => $post_type,
42 'post_status' => 'any',
43 'numberposts' => - 1,
44 'fields' => 'ids',
45 ]
46 );
47
48 if ( $items ) {
49 foreach ( $items as $item ) {
50 wp_delete_post( $item, true );
51 }
52 }
53 }
54
55 // Delete All the Terms & Taxonomies.
56 foreach ( array_unique( array_filter( $give_taxonomies ) ) as $taxonomy ) {
57
58 $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 ) );
59
60 // Delete Terms.
61 if ( $terms ) {
62 foreach ( $terms as $term ) {
63 $wpdb->delete( $wpdb->term_taxonomy, [ 'term_taxonomy_id' => $term->term_taxonomy_id ] );
64 $wpdb->delete( $wpdb->terms, [ 'term_id' => $term->term_id ] );
65 }
66 }
67
68 // Delete Taxonomies.
69 $wpdb->delete( $wpdb->term_taxonomy, [ 'taxonomy' => $taxonomy ], [ '%s' ] );
70 }
71
72 // Delete the Plugin Pages.
73 $give_created_pages = [ 'success_page', 'failure_page', 'history_page' ];
74 foreach ( $give_created_pages as $p ) {
75 $page = give_get_option( $p, false );
76 if ( $page ) {
77 wp_delete_post( $page, true );
78 }
79 }
80
81 // Delete Capabilities.
82 Give()->roles = new Give_Roles();
83 Give()->roles->remove_caps();
84
85 // Delete the Roles.
86 $give_roles = [ 'give_manager', 'give_accountant', 'give_worker', 'give_donor' ];
87 foreach ( $give_roles as $role ) {
88 remove_role( $role );
89 }
90
91 // Remove all database tables.
92 $wpdb->query( "DROP TABLE IF EXISTS {$wpdb->prefix}give_donors" );
93 $wpdb->query( "DROP TABLE IF EXISTS {$wpdb->prefix}give_donormeta" );
94 $wpdb->query( "DROP TABLE IF EXISTS {$wpdb->prefix}give_donationmeta" );
95 $wpdb->query( "DROP TABLE IF EXISTS {$wpdb->prefix}give_formmeta" );
96 $wpdb->query( "DROP TABLE IF EXISTS {$wpdb->prefix}give_logs" );
97 $wpdb->query( "DROP TABLE IF EXISTS {$wpdb->prefix}give_logmeta" );
98 $wpdb->query( "DROP TABLE IF EXISTS {$wpdb->prefix}give_comments" );
99 $wpdb->query( "DROP TABLE IF EXISTS {$wpdb->prefix}give_commentmeta" );
100 $wpdb->query( "DROP TABLE IF EXISTS {$wpdb->prefix}give_sequential_ordering" );
101 $wpdb->query( "DROP TABLE IF EXISTS {$wpdb->prefix}give_sessions" );
102
103 // Remove tables which are supported with backward compatibility.
104 $wpdb->query( "DROP TABLE IF EXISTS {$wpdb->prefix}give_customers" );
105 $wpdb->query( "DROP TABLE IF EXISTS {$wpdb->prefix}give_customermeta" );
106 $wpdb->query( "DROP TABLE IF EXISTS {$wpdb->prefix}give_paymentmeta" );
107
108 // Cleanup Cron Events.
109 wp_clear_scheduled_hook( 'give_daily_scheduled_events' );
110 wp_clear_scheduled_hook( 'give_weekly_scheduled_events' );
111 wp_clear_scheduled_hook( 'give_daily_cron' );
112 wp_clear_scheduled_hook( 'give_weekly_cron' );
113
114 // Get all options.
115 $give_option_names = $wpdb->get_col(
116 $wpdb->prepare(
117 "SELECT option_name FROM {$wpdb->options} where option_name LIKE '%%%s%%'",
118 'give'
119 )
120 );
121
122 if ( ! empty( $give_option_names ) ) {
123 // Convert option name to transient or option name.
124 $new_give_option_names = [];
125
126 // Delete all the Plugin Options.
127 foreach ( $give_option_names as $option ) {
128 if ( false !== strpos( $option, 'give_cache' ) ) {
129 Give_Cache::delete( $option );
130 } else {
131 delete_option( $option );
132 }
133 }
134 }
135 }
136