is_activation_mode(); } /** * The current user's full-screen preference. Off by default: Recast opens inside the WordPress admin. * * @return bool */ public static function fullscreen() { $value = get_user_meta( get_current_user_id(), self::META_FULLSCREEN, true ); return '1' === (string) $value; } /** * The current user's colour theme: auto, light or dark. * * @return string */ public static function theme() { $value = (string) get_user_meta( get_current_user_id(), self::META_THEME, true ); return in_array( $value, self::THEMES, true ) ? $value : 'auto'; } /** * Stores display preferences for the current user. * * @param array $prefs Keys fullscreen (bool) and theme (string). * @return void */ public static function save( array $prefs ) { $user = get_current_user_id(); if ( array_key_exists( 'fullscreen', $prefs ) ) { $on = in_array( $prefs['fullscreen'], array( true, 1, '1', 'true', 'yes' ), true ); update_user_meta( $user, self::META_FULLSCREEN, $on ? '1' : '0' ); } if ( isset( $prefs['theme'] ) && in_array( $prefs['theme'], self::THEMES, true ) ) { update_user_meta( $user, self::META_THEME, $prefs['theme'] ); } } /** * Where the exit link goes: the admin page the user came from, else the subscriptions list. * * @return string */ public static function exit_url() { $referer = wp_get_referer(); if ( $referer ) { $safe = wp_validate_redirect( $referer, '' ); if ( $safe && 0 === strpos( $safe, admin_url() ) && false === strpos( $safe, 'page=' . Menu::SLUG ) ) { return $safe; } } if ( function_exists( 'wcs_get_subscriptions' ) ) { return Hpos::is_enabled() ? admin_url( 'admin.php?page=wc-orders--shop_subscription' ) : admin_url( 'edit.php?post_type=shop_subscription' ); } return admin_url(); } /** * Data for the admin app. * * @return array */ public static function for_js() { return array( 'fullscreen' => self::is_active(), 'preference' => self::fullscreen(), 'theme' => self::theme(), 'exitUrl' => self::exit_url(), ); } }