PluginProbe
WPFunnels – Funnel Builder for WooCommerce with Checkout & One Click Upsell / 3.12.11
WPFunnels – Funnel Builder for WooCommerce with Checkout & One Click Upsell v3.12.11
3.13.3 3.13.2 3.13.1 3.13.0 3.12.13 3.12.12 3.12.11 3.12.10 3.12.9 3.12.8 3.12.7 3.12.6 3.12.5 3.12.4 3.12.3 3.12.1 3.12.2 3.12.0 3.11.1 3.11.0 3.10.9 3.10.8 3.10.7 3.10.6 2.8.16 All 261 releases
wpfunnels / includes / utils / class-wpfnl-uninstall-cleanup.php

class-wpfnl-uninstall-cleanup.php in WPFunnels – Funnel Builder for WooCommerce with Checkout & One Click Upsell 3.12.11, at includes/utils/class-wpfnl-uninstall-cleanup.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 /**
4 * UninstallCleanup: cleans all data during uninstallation
5 *
6 * @package WPFunnels
7 * @since 3.0.13
8 */
9 class UninstallCleanup {
10
11 public static function init() {
12 $general_settings = get_option( '_wpfunnels_general_settings', []);
13
14 if(isset($general_settings['uninstall_cleanup']) && $general_settings['uninstall_cleanup'] == 'on') {
15 self::deleteAllFunnels();
16 self::deleteAllSteps();
17 self::deleteAllDBTables();
18 self::deleteAllOptionsValue();
19 }
20 }
21
22 /**
23 * deleteAllFunnels: deletes all funnel data during uninstallation.
24 *
25 * @since 3.0.13
26 * @return void
27 */
28 public static function deleteAllFunnels() {
29
30 $funnel_ids = get_posts(
31 array(
32 'fields' => 'ids',
33 'numberposts' => - 1,
34 'post_type' => 'wpfunnels',
35 )
36 );
37
38 if(!empty($funnel_ids)) {
39 foreach ( $funnel_ids as $funnel_id ) {
40 wp_delete_post( $funnel_id );
41 }
42 }
43 }
44
45 /**
46 * deleteAllSteps: deletes all funnel steps
47 *
48 * @since 3.0.13
49 * @return void
50 */
51 public static function deleteAllSteps() {
52 $funnel_step_ids = get_posts(
53 array(
54 'fields' => 'ids',
55 'numberposts' => - 1,
56 'post_type' => 'wpfunnel_steps',
57 )
58 );
59
60 if(!empty($funnel_step_ids)) {
61 foreach ( $funnel_step_ids as $funnel_step_id ) {
62 wp_delete_post( $funnel_step_id );
63 }
64 }
65 }
66
67 /**
68 * deleteAllDBTables: deletes all plugin custom tables
69 *
70 * @since 3.0.13
71 * @return void
72 */
73 public static function deleteAllDBTables() {
74
75 global $wpdb;
76
77 $sql = 'DROP TABLE IF EXISTS %1s';
78
79 $wpfnl_tables = array(
80 $wpdb->prefix . 'wpfnl_analytics_meta',
81 $wpdb->prefix . 'wpfnl_analytics',
82 );
83 $wpfnl_tables = implode( ', ', $wpfnl_tables );
84
85 $wpdb->query( $wpdb->prepare( $sql, $wpfnl_tables ) );
86 }
87
88 /**
89 * deleteAllOptionsValue: deletes plugins generic options data
90 *
91 * @since 3.0.13
92 * @return void
93 */
94 public static function deleteAllOptionsValue() {
95
96 global $wpdb;
97
98 $option_ids_sql = "SELECT `option_id` FROM {$wpdb->options} WHERE `option_name` LIKE '%wpfunnels%' OR `option_name` LIKE '%wpfnl%'";
99 $funnels_option_ids = $wpdb->get_results( $option_ids_sql, ARRAY_A );
100
101 $funnels_option_ids = array_column( $funnels_option_ids, 'option_id' );
102 $funnels_option_ids = implode( ', ', $funnels_option_ids );
103 $option_sql = "DELETE FROM {$wpdb->options} WHERE `option_id` IN ({$funnels_option_ids})";
104
105 $wpdb->query( $option_sql );
106 }
107 }
108
109 UninstallCleanup::init();
110