PluginProbe
SellKit – Funnel builder and checkout optimizer for WooCommerce to sell more, faster / 2.3.6
SellKit – Funnel builder and checkout optimizer for WooCommerce to sell more, faster v2.3.6
2.6.0 trunk 1.1.0 1.1.4 1.2.1 1.2.2 1.2.3 1.2.5 1.2.9 1.3.1 1.3.2 1.5.0 1.5.1 1.5.4 1.5.7 1.5.8 1.5.9 1.6.2 1.6.5 1.6.8 1.7.2 1.7.4 1.7.5 1.7.9 1.8.1 All 42 releases
sellkit / uninstall.php

uninstall.php in SellKit – Funnel builder and checkout optimizer for WooCommerce to sell more, faster 2.3.6, at uninstall.php

110 lines 2.4 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 /**
3 * Sellkit Uninstall
4 *
5 * Uninstalling Sellkit deletes tables, and options.
6 *
7 * @package Sellkit\Uninstaller
8 * @version NEXT
9 */
10
11 defined( 'WP_UNINSTALL_PLUGIN' ) || exit;
12
13 // Include file of Database Class.
14 require_once dirname( __FILE__ ) . '/includes/db.php';
15
16 $options = get_option( 'sellkit', [] );
17 $multisite_delete_switch = is_multisite() ? get_site_option( 'delete_data' ) : false;
18
19 if ( '1' === $options['delete_data'] || '1' === $multisite_delete_switch ) {
20 // Drop Sellkit admin tables.
21 Sellkit\Database::drop_all_tables();
22
23 // Delete sellkit option from wp_options.
24 delete_option( 'sellkit' );
25
26 if ( is_multisite() ) {
27 sellkit_multisite_remove_tables();
28 sellkit_multisite_remove_data();
29 }
30
31 sellkit_delete_posts();
32 }
33
34 /**
35 * Deletes posts.
36 *
37 * @since 1.3.2
38 * @return void
39 */
40 function sellkit_delete_posts() {
41 global $wpdb;
42
43 $posts_id = $wpdb->prefix . 'posts.id';
44 $meta_id = $wpdb->prefix . 'postmeta.post_id';
45 $posts = $wpdb->prefix . 'posts'; // phpcs:ignore
46 $meta = $wpdb->prefix . 'postmeta';
47 $post_type = $wpdb->prefix . 'posts.post_type'; //phpcs:ignore
48
49 // phpcs:disable
50 $wpdb->query(
51 "DELETE $posts, $meta
52 FROM $posts
53 INNER JOIN $meta ON $meta_id = $posts_id
54 WHERE $post_type IN ( 'sellkit-funnels', 'sellkit_step' )"
55 );
56 // phpcs:enable
57
58 // Unset sellkit cookie.
59 setcookie( 'sellkit_contact_segmentation', null, -1, '/' );
60
61 // Clear any cached data that has been removed.
62 wp_cache_flush();
63
64 // Temporary option.
65 update_option( 'sellkit_pro_delete_data', '1' );
66 }
67
68 /**
69 * Removes tables.
70 *
71 * @since 1.3.2
72 * @return void
73 */
74 function sellkit_multisite_remove_tables() {
75 global $wpdb;
76
77 $database_name = DB_NAME;
78
79 // phpcs:disable
80 $query = $wpdb->get_results( "
81 SELECT CONCAT( 'DROP TABLE ', GROUP_CONCAT(table_name) , ';' )
82 AS statement FROM information_schema.tables
83 WHERE table_schema = '$database_name' AND ( table_name LIKE '%_sellkit_contact_segmentation' OR table_name LIKE '%_sellkit_applied_funnel' );
84 " );
85
86 if ( ! empty( $query[0]->statement ) ) {
87 $wpdb->query( $query[0]->statement );
88 }
89 // phpcs:enable
90 }
91
92 /**
93 * Removes multisite data.
94 *
95 * @since 1.3.2
96 * @return void
97 */
98 function sellkit_multisite_remove_data() {
99 $sites = get_sites();
100
101 foreach ( $sites as $site ) {
102 switch_to_blog( $site->blog_id );
103 sellkit_delete_posts();
104 delete_option( 'sellkit' );
105 restore_current_blog();
106 }
107
108 delete_site_option( 'delete_data' );
109 }
110