2018-09-17 14:32:03 +00:00
|
|
|
<?php
|
|
|
|
/**
|
|
|
|
* REST API WC System Status Tools Controller
|
|
|
|
*
|
|
|
|
* Handles requests to the /system_status/tools/* endpoints.
|
|
|
|
*
|
2018-09-17 19:13:19 +00:00
|
|
|
* @package WooCommerce Admin/API
|
2018-09-17 14:32:03 +00:00
|
|
|
*/
|
|
|
|
|
|
|
|
defined( 'ABSPATH' ) || exit;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* System status tools controller.
|
|
|
|
*
|
2018-09-17 19:13:19 +00:00
|
|
|
* @package WooCommerce Admin/API
|
|
|
|
* @extends WC_REST_System_Status_Tools_Controller
|
2018-09-17 14:32:03 +00:00
|
|
|
*/
|
2018-09-17 19:13:19 +00:00
|
|
|
class WC_Admin_REST_System_Status_Tools_Controller extends WC_REST_System_Status_Tools_Controller {
|
2018-09-17 14:32:03 +00:00
|
|
|
|
|
|
|
/**
|
|
|
|
* Endpoint namespace.
|
|
|
|
*
|
|
|
|
* @var string
|
|
|
|
*/
|
|
|
|
protected $namespace = 'wc/v3';
|
|
|
|
|
|
|
|
/**
|
|
|
|
* A list of available tools for use in the system status section.
|
|
|
|
* 'button' becomes 'action' in the API.
|
|
|
|
*
|
|
|
|
* @return array
|
|
|
|
*/
|
|
|
|
public function get_tools() {
|
|
|
|
return array_merge(
|
|
|
|
parent::get_tools(),
|
|
|
|
array(
|
|
|
|
'rebuild_stats' => array(
|
2018-09-28 15:34:33 +00:00
|
|
|
'name' => __( 'Rebuild reports data', 'wc-admin' ),
|
|
|
|
'button' => __( 'Rebuild reports', 'wc-admin' ),
|
|
|
|
'desc' => __( 'This tool will rebuild all of the information used by the reports.', 'wc-admin' ),
|
2018-09-17 14:32:03 +00:00
|
|
|
),
|
|
|
|
)
|
|
|
|
);
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Actually executes a tool.
|
|
|
|
*
|
|
|
|
* @param string $tool Tool.
|
|
|
|
* @return array
|
|
|
|
*/
|
|
|
|
public function execute_tool( $tool ) {
|
2018-10-22 16:20:14 +00:00
|
|
|
$ran = true;
|
2018-09-17 14:32:03 +00:00
|
|
|
$message = '';
|
|
|
|
|
|
|
|
switch ( $tool ) {
|
|
|
|
case 'rebuild_stats':
|
2019-01-15 01:53:02 +00:00
|
|
|
WC_Admin_Reports_Orders_Stats_Data_Store::queue_order_stats_repopulate_database();
|
2018-09-28 15:34:33 +00:00
|
|
|
$message = __( 'Rebuilding reports data in the background . . .', 'wc-admin' );
|
2018-09-17 14:32:03 +00:00
|
|
|
break;
|
|
|
|
default:
|
|
|
|
return parent::execute_tool( $tool );
|
|
|
|
}
|
|
|
|
|
|
|
|
return array(
|
|
|
|
'success' => $ran,
|
|
|
|
'message' => $message,
|
|
|
|
);
|
|
|
|
}
|
|
|
|
}
|