at path:
ROOT
/
wp-content
/
plugins
/
if-so
/
uninstall.php
run:
R
W
Run
admin
DIR
2026-06-16 01:07:17
R
W
Run
extensions
DIR
2026-06-16 01:07:17
R
W
Run
includes
DIR
2026-06-16 01:07:17
R
W
Run
languages
DIR
2026-06-16 01:07:17
R
W
Run
logs
DIR
2026-06-21 08:49:51
R
W
Run
public
DIR
2026-06-16 01:07:17
R
W
Run
rest
DIR
2026-06-16 01:07:17
R
W
Run
services
DIR
2026-06-16 01:07:17
R
W
Run
LICENSE.txt
17.67 KB
2026-06-16 01:07:17
R
W
Run
Delete
Rename
README.txt
39.15 KB
2026-06-16 01:07:17
R
W
Run
Delete
Rename
if-so.php
3.01 KB
2026-06-16 01:07:17
R
W
Run
Delete
Rename
index.php
26 By
2026-06-16 01:07:17
R
W
Run
Delete
Rename
uninstall.php
2.46 KB
2026-06-16 01:07:17
R
W
Run
Delete
Rename
wpml-config.xml
86 By
2026-06-16 01:07:17
R
W
Run
Delete
Rename
error_log
up
📄
uninstall.php
Save
<?php /** * Fired when the plugin is uninstalled. * * When populating this file, consider the following flow * of control: * * - This method should be static * - Check if the $_REQUEST content actually is the plugin name * - Run an admin referrer check to make sure it goes through authentication * - Verify the output of $_GET makes sense * - Repeat with other user roles. Best directly by using the links/query string parameters. * - Repeat things for multisite. Once for a single site in the network, once sitewide. * * This file may be updated more in future version of the Boilerplate; however, this is the * general skeleton and outline for how the file should work. * * For more information, see the following discussion: * https://github.com/tommcfarlin/WordPress-Plugin-Boilerplate/pull/123#issuecomment-28541913 * * @link https://if-so.com * @since 1.0.0 * * @package IfSo */ require_once ('services/plugin-settings-service/plugin-settings-service.class.php'); use IfSo\Services; // If uninstall not called from WordPress, then exit. if ( ! defined( 'WP_UNINSTALL_PLUGIN' ) ) { exit; } function ifso_delete_plugin() { require_once plugin_dir_path( __FILE__ ) . 'includes/ifso-constants.php'; require_once IFSO_PLUGIN_BASE_DIR . 'services/license-service/license-service.class.php'; require_once IFSO_PLUGIN_BASE_DIR . 'services/license-service/geo-license-service.class.php'; global $wpdb; $posts = get_posts( array( 'numberposts' => -1, 'post_type' => 'ifso_triggers', 'post_status' => 'any' ) ); foreach ( $posts as $post ) { wp_delete_post( $post->ID, true ); delete_post_meta($post->ID, 'ifso_trigger_default'); delete_post_meta($post->ID, 'ifso_trigger_rules'); delete_post_meta($post->ID, 'ifso_trigger_version'); } delete_option('ifso_groups_data'); //Remove "groups" data Services\LicenseService\LicenseService::get_instance()->clear_license(); Services\GeoLicenseService\GeoLicenseService::get_instance()->clear_license(); $tables_created_by_ifso = ["{$wpdb->prefix}ifso_local_user","{$wpdb->prefix}ifso_daily_sessions"]; foreach($tables_created_by_ifso as $table){ $wpdb->query("DROP TABLE IF EXISTS {$table}"); } } function ifso_is_remove_checked() { $settings_service = Services\PluginSettingsService\PluginSettingsService::get_instance(); $to_remove = $settings_service->removePluginDataOption->get(); return $to_remove; } if ( ifso_is_remove_checked() ) { ifso_delete_plugin(); }