Settings. Orders, user accounts and * products are never touched. */ if (!defined('ABSPATH')) { exit; } if (!defined('WP_UNINSTALL_PLUGIN')) { exit; } // Pro uses the same data, so while it's installed, deleting this plugin removes // nothing. Pro's uninstall runs this file when Pro itself is deleted. if (!defined('CREWCOMMERCE_PRO_UNINSTALLING') && file_exists(WP_PLUGIN_DIR . '/crewcommerce-pro/crewcommerce-pro.php')) { return; } function crewcommerce_uninstall_site() { global $wpdb; $settings = get_option('crewcommerce_settings', array()); if (empty($settings['delete_data_on_uninstall'])) { return; } $company_ids = get_posts(array( 'post_type' => 'crewcommerce_company', 'post_status' => 'any', 'numberposts' => -1, 'fields' => 'ids', )); foreach ($company_ids as $company_id) { wp_delete_post($company_id, true); } foreach (array('crewcommerce_team_members', 'crewcommerce_approval_workflows') as $table) { $wpdb->query("DROP TABLE IF EXISTS {$wpdb->prefix}{$table}"); // phpcs:ignore WordPress.DB.PreparedSQL.InterpolatedNotPrepared, WordPress.DB.DirectDatabaseQuery, WordPress.DB.DirectDatabaseQuery.SchemaChange } $suffix = is_multisite() ? '_' . get_current_blog_id() : ''; foreach (array('_crewcommerce_company_id', '_crewcommerce_role') as $key) { delete_metadata('user', 0, $key . $suffix, '', true); } foreach (array('crewcommerce_settings', 'crewcommerce_schema_version', 'crewcommerce_endpoints_version') as $option) { delete_option($option); } } if (is_multisite()) { foreach (get_sites(array('fields' => 'ids', 'number' => 0)) as $site_id) { switch_to_blog($site_id); crewcommerce_uninstall_site(); restore_current_blog(); } } else { crewcommerce_uninstall_site(); }