diff --git a/plugins/woocommerce-admin/includes/class-wc-admin-api-init.php b/plugins/woocommerce-admin/includes/class-wc-admin-api-init.php index 2de8a756006..f5d14254317 100644 --- a/plugins/woocommerce-admin/includes/class-wc-admin-api-init.php +++ b/plugins/woocommerce-admin/includes/class-wc-admin-api-init.php @@ -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'; } /** diff --git a/plugins/woocommerce-admin/includes/class-wc-admin-install.php b/plugins/woocommerce-admin/includes/class-wc-admin-install.php index c7ff6579d16..ffcbc01f900 100644 --- a/plugins/woocommerce-admin/includes/class-wc-admin-install.php +++ b/plugins/woocommerce-admin/includes/class-wc-admin-install.php @@ -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(); diff --git a/plugins/woocommerce-admin/includes/notes/class-wc-admin-notes.php b/plugins/woocommerce-admin/includes/notes/class-wc-admin-notes.php index bfb4b70c298..3674fab32b4 100644 --- a/plugins/woocommerce-admin/includes/notes/class-wc-admin-notes.php +++ b/plugins/woocommerce-admin/includes/notes/class-wc-admin-notes.php @@ -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. */ diff --git a/plugins/woocommerce-admin/uninstall.php b/plugins/woocommerce-admin/uninstall.php index ddc500f2d26..4dca624bc44 100644 --- a/plugins/woocommerce-admin/uninstall.php +++ b/plugins/woocommerce-admin/uninstall.php @@ -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' ); diff --git a/plugins/woocommerce-admin/woocommerce-admin.php b/plugins/woocommerce-admin/woocommerce-admin.php index 69a0e3e81eb..d04133e86ed 100755 --- a/plugins/woocommerce-admin/woocommerce-admin.php +++ b/plugins/woocommerce-admin/woocommerce-admin.php @@ -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';