/** * Setup hooks. */ public static function setup() { static::setupInstall(); static::setupProfiler(); static::setupAdmin(); if (!Elasticsearch::isAvailable()) { return; } if (Config::option('user_index_version') < Config::option('plugin_index_version')) { return; } static::setupSync(); static::setupQueryIntegration(); static::setupWooCommerce(); static::setupWooCommerceAdmin(); }
private static function getStatusText() { if (!Elasticsearch::isAvailable()) { return ['Unable to connect', '#e14d43']; } if (Config::option('user_index_version') < Config::option('plugin_index_version')) { return ['Reindex required', '#e14d43']; } if ($time = Config::option('is_indexing')) { if ($time + 20 < time()) { return ['Indexing process interrupted', '#e14d43']; } return ['Indexing...', '#ccaf0b']; } if (!Config::option('enable_integration')) { return ['Disabled Integration', '#999']; } return ['Enabled', '#a3b745']; }
/** * Set refresh_interval on all indexes. * * @param string $interval */ public function setRefreshInterval($interval = '1s') { $sites = is_multisite() ? wp_get_sites() : [['blog_id' => get_current_blog_id()]]; foreach ($sites as $site) { $index = $this->getIndexName($site['blog_id']); Elasticsearch::setSettings($index, ['index' => ['refresh_interval' => $interval]]); } }