=' ) ) { QuickSync_Events::init(); } } public static function allowed_redirect_hosts( $hosts ) { $parsed = wp_parse_url( QUICKSYNC_API_BASE ); if ( ! empty( $parsed['host'] ) ) { $hosts[] = $parsed['host']; } $hosts[] = 'wordpress.org'; return $hosts; } public static function options() { $defaults = array( 'token' => '', 'hmac_secret' => '', 'store_id' => '', 'key_id' => '', 'home_url' => '', 'connected_at' => 0, 'safe_mode' => 0, 'last_event_at' => 0, 'last_error' => '', 'account_email' => '', 'diagnostics' => array(), 'diagnostics_checked_at' => 0, 'review_dismissed' => 0, 'purge_on_uninstall' => 0, ); $stored = get_option( 'quicksync_connection', array() ); if ( ! is_array( $stored ) ) { $stored = array(); } return array_merge( $defaults, $stored ); } public static function update_options( $patch ) { $current = self::options(); update_option( 'quicksync_connection', array_merge( $current, $patch ), false ); } public static function is_connected() { $opts = self::options(); return '' !== $opts['token']; } public static function masked_token() { $token = (string) self::options()['token']; if ( '' === $token ) { return ''; } $tail = substr( $token, -4 ); return 'qs_plugin_••••' . $tail; } public static function current_home_url() { return untrailingslashit( home_url() ); } }