* This file is part of the ManageWP Worker plugin.
* (c) ManageWP LLC <contact@managewp.com>
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
class MWP_Action_GetComponentsStats extends MWP_Action_Abstract
public function execute(array $params = array())
$this->wpdb = $this->container->getWordPressContext()->getDb();
if ($this->container->getWordPressContext()->isMultisite()) {
return $this->getNetworkStats($params);
$options = $this->getOptions($params);
$stateAction = new MWP_Action_GetState();
$stateAction->setContainer($this->container);
$stateData = $stateAction->execute($options);
$siteUrl = $this->container->getWordPressContext()->getSiteUrl();
private function getNetworkStats(array $params = array())
$network_blogs = $this->wpdb->get_results("select `blog_id`, `site_id`, `domain`, `path` from `{$this->wpdb->blogs}`");
if (empty($network_blogs)) {
$options = $this->getOptions($params);
$current_blog_id = get_current_blog_id();
foreach ($network_blogs as $network_blog) {
switch_to_blog($network_blog->blog_id);
$stateAction = new MWP_Action_GetState();
$stateAction->setContainer($this->container);
$network_blog_url = rtrim($network_blog->domain, '/').'/'.trim($network_blog->path, '/');
$data[$network_blog_url] = $stateAction->execute($options);
switch_to_blog($current_blog_id);
private function getOptions(array $params = array())
if (isset($params['getPluginStats']) && $params['getPluginStats'] === true) {
$options['plugins'] = array(
if (isset($params['getThemeStats']) && $params['getThemeStats'] === true) {
$options['themes'] = array(