* Remove table data on plugin deactivate

* Fix uninstall classes and move table deletion to uninstall
This commit is contained in:
Joshua T Flowers 2019-06-13 00:16:08 +08:00 committed by GitHub
parent b83ef86add
commit 81ffa853f3
5 changed files with 45 additions and 9 deletions

View File

@ -89,13 +89,6 @@ class WC_Admin_Api_Init {
require_once WC_ADMIN_ABSPATH . 'includes/data-stores/class-wc-admin-reports-customers-data-store.php';
require_once WC_ADMIN_ABSPATH . 'includes/data-stores/class-wc-admin-reports-customers-stats-data-store.php';
require_once WC_ADMIN_ABSPATH . 'includes/data-stores/class-wc-admin-reports-stock-stats-data-store.php';
// Data triggers.
require_once WC_ADMIN_ABSPATH . 'includes/data-stores/class-wc-admin-notes-data-store.php';
// CRUD classes.
require_once WC_ADMIN_ABSPATH . 'includes/notes/class-wc-admin-note.php';
require_once WC_ADMIN_ABSPATH . 'includes/notes/class-wc-admin-notes.php';
}
/**

View File

@ -273,6 +273,19 @@ class WC_Admin_Install {
WC_Admin_Notes_Historical_Data::add_note();
WC_Admin_Notes_Welcome_Message::add_welcome_note();
}
/**
* Delete all data from tables.
*/
public static function delete_table_data() {
global $wpdb;
$tables = self::get_tables();
foreach ( $tables as $table ) {
$wpdb->query( "TRUNCATE TABLE {$table}" ); // WPCS: unprepared SQL ok.
}
}
}
WC_Admin_Install::init();

View File

@ -22,6 +22,26 @@ class WC_Admin_Notes {
*/
const QUEUE_GROUP = 'wc-admin-notes';
/**
* Queue instance.
*
* @var WC_Queue_Interface
*/
protected static $queue = null;
/**
* Get queue instance.
*
* @return WC_Queue_Interface
*/
public static function queue() {
if ( is_null( self::$queue ) ) {
self::$queue = WC()->queue();
}
return self::$queue;
}
/**
* Hook appropriate actions.
*/

View File

@ -7,7 +7,10 @@
defined( 'WP_UNINSTALL_PLUGIN' ) || exit;
WC_Admin::instance()->includes();
require_once dirname( __FILE__ ) . '/woocommerce-admin.php';
WC_Admin_Feature_Plugin::instance()->includes();
WC_Admin_Reports_Sync::clear_queued_actions();
WC_Admin_Notes::clear_queued_actions();
WC_Admin_Install::delete_table_data();
wp_clear_scheduled_hook( 'wc_admin_daily' );

View File

@ -61,7 +61,7 @@ class WC_Admin_Feature_Plugin {
}
/**
* Install DB and create cron events when activated,
* Install DB and create cron events when activated.
*
* @return void
*/
@ -125,6 +125,13 @@ class WC_Admin_Feature_Plugin {
require_once WC_ADMIN_ABSPATH . 'includes/class-wc-admin-events.php';
require_once WC_ADMIN_ABSPATH . 'includes/class-wc-admin-api-init.php';
// Data triggers.
require_once WC_ADMIN_ABSPATH . 'includes/data-stores/class-wc-admin-notes-data-store.php';
// CRUD classes.
require_once WC_ADMIN_ABSPATH . 'includes/notes/class-wc-admin-note.php';
require_once WC_ADMIN_ABSPATH . 'includes/notes/class-wc-admin-notes.php';
// Admin note providers.
// @todo These should be bundled in the features/ folder, but loading them from there currently has a load order issue.
require_once WC_ADMIN_ABSPATH . 'includes/notes/class-wc-admin-notes-new-sales-record.php';