true, 'textdomain' => 'jetpack-idc', ) ); Assets::enqueue_script( 'jp_identity_crisis_banner' ); wp_add_inline_script( 'jp_identity_crisis_banner', static::get_initial_state(), 'before' ); add_action( 'admin_notices', array( static::class, 'render_container' ) ); } } /** * Create the container element for the IDC banner. */ public static function render_container() { ?>
esc_url_raw( rest_url() ), 'WP_API_nonce' => wp_create_nonce( 'wp_rest' ), 'wpcomHomeUrl' => ( is_array( $idc_urls ) && array_key_exists( 'wpcom_url', $idc_urls ) ) ? $idc_urls['wpcom_url'] : null, 'currentUrl' => ( is_array( $idc_urls ) && array_key_exists( 'current_url', $idc_urls ) ) ? $idc_urls['current_url'] : null, 'redirectUri' => isset( $_SERVER['REQUEST_URI'] ) ? str_replace( '/wp-admin/', '/', filter_var( wp_unslash( $_SERVER['REQUEST_URI'] ) ) ) : '', 'tracksUserData' => Jetpack_Tracks_Client::get_connected_user_tracks_identity(), 'tracksEventData' => array( 'isAdmin' => $is_admin, 'currentScreen' => $current_screen ? $current_screen->id : false, 'blogID' => Jetpack_Options::get_option( 'id' ), 'platform' => static::get_platform(), ), 'isSafeModeConfirmed' => Identity_Crisis::$is_safe_mode_confirmed, 'consumerData' => static::get_consumer_data(), 'isAdmin' => $is_admin, 'possibleDynamicSiteUrlDetected' => $possible_dynamic_site_url_detected, /** * Use the filter to provide custom HTML elecontainer ID. * * @since 0.10.0 * * @param string|null $containerID The container ID. */ 'containerID' => apply_filters( 'identity_crisis_container_id', null ), ); } /** * Get the package consumer data. * * @return array */ public static function get_consumer_data() { if ( null !== static::$consumers ) { return static::$consumers; } $consumers = apply_filters( 'jetpack_idc_consumers', array() ); if ( ! $consumers ) { return array(); } usort( $consumers, function ( $c1, $c2 ) { $priority1 = ( array_key_exists( 'priority', $c1 ) && (int) $c1['priority'] ) ? (int) $c1['priority'] : 10; $priority2 = ( array_key_exists( 'priority', $c2 ) && (int) $c2['priority'] ) ? (int) $c2['priority'] : 10; return $priority1 <=> $priority2; } ); $consumer_chosen = null; $consumer_url_length = 0; foreach ( $consumers as $consumer ) { if ( empty( $consumer['admin_page'] ) || ! is_string( $consumer['admin_page'] ) ) { continue; } if ( isset( $_SERVER['REQUEST_URI'] ) && str_starts_with( filter_var( wp_unslash( $_SERVER['REQUEST_URI'] ) ), $consumer['admin_page'] ) && strlen( $consumer['admin_page'] ) > $consumer_url_length ) { $consumer_chosen = $consumer; $consumer_url_length = strlen( $consumer['admin_page'] ); } } static::$consumers = $consumer_chosen ? $consumer_chosen : array_shift( $consumers ); return static::$consumers; } /** * Get the site platform. * * @return string */ private static function get_platform() { $host = new Host(); if ( $host->is_woa_site() ) { return 'woa'; } if ( $host->is_vip_site() ) { return 'vip'; } if ( $host->is_newspack_site() ) { return 'newspack'; } return 'self-hosted'; } }