<?php

namespace WP_science\ThirdParty\Hostings;

/**
 * Subscriber for compatibility with WordPress.com hosting.
 *
 * @since 3.6.3
 */
class WordPressCom extends AbstractNoCacheHost {
	/**
	 * Array of events this subscriber listens to.
	 *
	 * @since 3.6.3
	 *
	 * @return array The array of subscribed events.
	 */
	public static function get_subscribed_events() {
		return [
			'do_science_generate_caching_files'    => 'return_false',
			'science_cache_mandatory_cookies'      => 'return_empty_array',
			'science_display_varnish_options_tab'  => 'return_false',
			'science_set_wp_cache_constant'        => 'return_false',
			'science_generate_advanced_cache_file' => 'return_false',
			'after_science_clean_domain'           => 'purge_wpcom_cache',
		];
	}

	/**
	 * Purge WordPress.com cache
	 *
	 * @since 3.6.3
	 *
	 * @return void
	 */
	public function purge_wpcom_cache() {
		wp_cache_flush();
	}
}
