options_api = $options_api; $this->options = $options; } /** * Enable CDN option, save CDN URL & delete RocketCDN status transient * * @since 3.5 * * @param string $cdn_url CDN URL. * @return void */ public function enable( $cdn_url ) { $this->options->set( 'cdn', 1 ); $this->options->set( 'cdn_cnames', [ $cdn_url ] ); $this->options->set( 'cdn_zone', [ 'all' ] ); $this->options_api->set( 'settings', $this->options->get_options() ); delete_transient( 'rocketcdn_status' ); rocket_clean_domain(); } /** * Disable CDN option, remove CDN URL & user token, delete RocketCDN status transient * * @since 3.5 * * @return void */ public function disable() { $this->options->set( 'cdn', 0 ); $this->options->set( 'cdn_cnames', [] ); $this->options->set( 'cdn_zone', [] ); $this->options_api->set( 'settings', $this->options->get_options() ); delete_option( 'rocketcdn_user_token' ); delete_transient( 'rocketcdn_status' ); rocket_clean_domain(); } /** * Get current CDN cnames. * * @return array */ public function get_cdn_cnames() { return $this->options->get( 'cdn_cnames', [] ); } }