Diff: STRATO-apps/wordpress_03/app/wp-content/plugins/paid-memberships-pro/uninstall.php
Keine Baseline-Datei – Diff nur gegen leer.
1
-
1
+
<?php
2
+
/**
3
+
* Leave no trace...
4
+
* Use this file to remove all elements added by plugin, including database table
5
+
*/
6
+
7
+
// exit if uninstall/delete not called
8
+
if (!defined('ABSPATH') && !defined('WP_UNINSTALL_PLUGIN'))
9
+
exit();
10
+
11
+
if ( get_option( 'pmpro_uninstall', 0 ) ) {
12
+
// otherwise remove pages
13
+
$pmpro_pages = array(
14
+
'account' => get_option( 'pmpro_account_page_id' ),
15
+
'billing' => get_option( 'pmpro_billing_page_id' ),
16
+
'cancel' =>get_option( 'pmpro_cancel_page_id' ),
17
+
'checkout' => get_option( 'pmpro_checkout_page_id' ),
18
+
'confirmation' => get_option( 'pmpro_confirmation_page_id' ),
19
+
'invoice' => get_option( 'pmpro_invoice_page_id' ),
20
+
'levels' => get_option( 'pmpro_levels_page_id' ),
21
+
'login' => get_option( 'pmpro_login_page_id' ),
22
+
'member_profile_edit' => get_option( 'pmpro_member_profile_edit_page_id' )
23
+
);
24
+
25
+
foreach ( $pmpro_pages as $pmpro_page_id => $pmpro_page ) {
26
+
$shortcode_prefix = 'pmpro_';
27
+
$shortcode = '[' . $shortcode_prefix . $pmpro_page_id . ']';
28
+
$post = get_post( $pmpro_page );
29
+
30
+
// If shortcode is found at the beginning of the page content and it is the only content that exists, remove the page
31
+
if ( strpos( $post->post_content, $shortcode ) === 0 && strcmp( $post->post_content, $shortcode ) === 0 )
32
+
wp_delete_post( $post->ID, true ); // Force delete (no trash)
33
+
}
34
+
35
+
// otherwise remove db tables
36
+
global $wpdb;
37
+
38
+
$tables = array(
39
+
'pmpro_discount_codes',
40
+
'pmpro_discount_codes_levels',
41
+
'pmpro_discount_codes_uses',
42
+
'pmpro_memberships_categories',
43
+
'pmpro_memberships_pages',
44
+
'pmpro_memberships_users',
45
+
'pmpro_membership_levels',
46
+
'pmpro_membership_orders',
47
+
'pmpro_membership_levelmeta',
48
+
'pmpro_membership_ordermeta',
49
+
'pmpro_groups',
50
+
'pmpro_membership_levels_groups',
51
+
'pmpro_subscriptions',
52
+
'pmpro_subscriptionmeta'
53
+
);
54
+
55
+
foreach($tables as $table){
56
+
$delete_table = $wpdb->prefix . $table;
57
+
// setup sql query
58
+
$sql = "DROP TABLE `$delete_table`";
59
+
// run the query
60
+
$wpdb->query($sql);
61
+
}
62
+
63
+
//delete options
64
+
global $wpdb;
65
+
$sqlQuery = "DELETE FROM $wpdb->options WHERE option_name LIKE 'pmpro_%'";
66
+
$wpdb->query($sqlQuery);
67
+
68
+
// Delete all Action Scheduler scheduled actions
69
+
$wpdb->query("DELETE FROM {$wpdb->prefix}actionscheduler_actions WHERE hook LIKE 'pmpro_%'");
70
+
71
+
}
72
+