language_manager = $language_manager; $this->catalog = $catalog; $this->settings = $settings; $this->flags = new FlagRegistry(); } /** Renders the current wizard step. */ public function render() { if ( ! current_user_can( AdminModule::capability() ) ) { wp_die( esc_html__( 'You are not allowed to set up ShapeTranslate.', 'shapetranslate' ), '', array( 'response' => 403 ) ); } $step = $this->current_step(); ?>

render_notice(); ?> render_progress( $step ); ?>
render_step( $step ); ?>
{$method}(); } /** Selects the site default language. */ private function render_step_1() { $languages = $this->language_manager->get_languages(); $catalog = $this->catalog->get_languages(); ?>

form_start( 1 ); ?> form_end( __( 'Continue', 'shapetranslate' ) ); ?> language_manager->get_languages(); $default = $this->language_manager->get_default_id(); $catalog = $this->catalog->get_languages(); $used = wp_list_pluck( $languages, 'locale' ); ?>

form_start( 2 ); ?>
flags->get_flag_html( $language ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped -- Sanitized by FlagRegistry::get_flag_html(). ?> aria-label="" />
form_end( __( 'Continue', 'shapetranslate' ), 1, 'continue' ); ?> 'shapetranslate_setup_remove_language', 'language' => $language_id, ), admin_url( 'admin-post.php' ) ), 'shapetranslate_setup_remove_language_' . $language_id ); } /** Chooses how a language appears in public URLs. */ private function render_step_3() { $url = $this->settings->get_section( 'url' ); $mode = isset( $url['mode'] ) ? (string) $url['mode'] : LanguageHostResolver::MODE_DIRECTORY; $languages = $this->language_manager->get_languages(); $hosts = new LanguageHostResolver( $this->settings ); $base = $hosts->get_base_host(); $sample = empty( $languages ) ? 'en' : $languages[0]['url_slug']; $site = untrailingslashit( LanguageHostResolver::site_url() ); $scheme = 0 === strpos( $site, 'https://' ) ? 'https://' : 'http://'; ?>

form_start( 3 ); ?> > form_end( __( 'Continue', 'shapetranslate' ), 2 ); ?> settings->get_section( 'switcher' ); $menus = current_user_can( 'edit_theme_options' ) ? wp_get_nav_menus() : array(); ?>

form_start( 4 ); ?> form_end( __( 'Continue', 'shapetranslate' ), 3 ); ?> language_manager->get_languages( true ); ?>

[shapetranslate_switcher]

Switcher writes that snippet for you.', 'shapetranslate' ); ?>

form_start( 5 ); ?> form_end( __( 'Finish Setup', 'shapetranslate' ), 4 ); ?>

    $label ) : ?>
  1. >
settings->get_setup_step(); return min( 5, max( 1, $step ) ); } /** Renders a wizard notice. */ private function render_notice() { // phpcs:ignore WordPress.Security.NonceVerification.Recommended -- Read-only allowlisted notice. $notice = isset( $_GET['shapetranslate_notice'] ) ? sanitize_key( wp_unslash( $_GET['shapetranslate_notice'] ) ) : ''; if ( 'setup_error' === $notice ) { $key = 'shapetranslate_setup_error_' . get_current_user_id(); $message = get_transient( $key ); delete_transient( $key ); printf( '

%s

', esc_html( is_string( $message ) ? $message : __( 'ShapeTranslate could not save this setup step.', 'shapetranslate' ) ) ); } elseif ( 'setup_complete' === $notice ) { echo '

' . esc_html__( 'ShapeTranslate setup is complete.', 'shapetranslate' ) . '

'; } } }