Diff: STRATO-apps/wordpress_03/app/wp-content/plugins/paid-memberships-pro/uninstall.php

Keine Baseline-Datei – Diff nur gegen leer.
Zur Liste
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 +