FILE: /var/www/html/wp-includes/build/pages/options-connectors/page-wp-admin.php
SIZE: 10290 bytes
MODIFIED: 2026-08-26 05:34:27

CONTENT:
<?php
/**
 * Page: options-connectors (wp-admin integrated)
 * Auto-generated by build process.
 * Do not edit this file manually.
 *
 * This version integrates with the standard WordPress admin interface,
 * keeping the wp-admin sidebar and scripts/styles intact.
 *
 * @package wp
 */

// Global storage for options-connectors routes and menu items
global $wp_options_connectors_wp_admin_routes, $wp_options_connectors_wp_admin_menu_items;
$wp_options_connectors_wp_admin_routes     = array();
$wp_options_connectors_wp_admin_menu_items = array();

/**
 * Register a route for the options-connectors-wp-admin page.
 *
 * @param string      $path           Route path (e.g., '/types/$type/edit/$id').
 * @param string|null $content_module Script module ID for content (stage/inspector).
 * @param string|null $route_module   Script module ID for route lifecycle hooks.
 */
function wp_register_options_connectors_wp_admin_route( $path, $content_module = null, $route_module = null ) {
	global $wp_options_connectors_wp_admin_routes;

	$route = array( 'path' => $path );
	if ( ! empty( $content_module ) ) {
		$route['content_module'] = $content_module;
	}
	if ( ! empty( $route_module ) ) {
		$route['route_module'] = $route_module;
	}

	$wp_options_connectors_wp_admin_routes[] = $route;
}

/**
 * Register a menu item for the options-connectors-wp-admin page.
 * Note: Menu items are registered but not displayed in single-page mode.
 *
 * @param string $id        Menu item ID.
 * @param string $label     Display label.
 * @param string $to        Route path to navigate to.
 * @param string $parent_id Optional. Parent menu item ID.
 */
function wp_register_options_connectors_wp_admin_menu_item( $id, $label, $to, $parent_id = '' ) {
	global $wp_options_connectors_wp_admin_menu_items;

	$menu_item = array(
		'id'    => $id,
		'label' => $label,
		'to'    => $to,
	);

	if ( ! empty( $parent_id ) ) {
		$menu_item['parent'] = $parent_id;
	}

	$wp_options_connectors_wp_admin_menu_items[] = $menu_item;
}

/**
 * Get all registered routes for the options-connectors-wp-admin page.
 *
 * @return array Array of route objects.
 */
function wp_get_options_connectors_wp_admin_routes() {
	global $wp_options_connectors_wp_admin_routes;
	return $wp_options_connectors_wp_admin_routes ?? array();
}

/**
 * Get all registered menu items for the options-connectors-wp-admin page.
 *
 * @return array Array of menu item objects.
 */
function wp_get_options_connectors_wp_admin_menu_items() {
	global $wp_options_connectors_wp_admin_menu_items;
	return $wp_options_connectors_wp_admin_menu_items ?? array();
}

/**
 * Preload REST API data for the options-connectors-wp-admin page.
 * Automatically called during page rendering.
 */
function wp_options_connectors_wp_admin_preload_data() {
	// Define paths to preload - same for all pages
	// This must exactly match the _fields list in packages/core-data/src/entities.js,
	// same fields in the same order, or the preload is never consumed.
	$preload_paths = array(
		'/?_fields=description,gmt_offset,home,image_max_bit_depth,image_sizes,image_size_threshold,image_strip_meta,name,site_icon,site_icon_url,site_logo,timezone_string,url,page_for_posts,page_on_front,show_on_front',
		array( '/wp/v2/settings', 'OPTIONS' ),
	);

	// Use rest_preload_api_request to gather the preloaded data
	$preload_data = array_reduce(
		$preload_paths,
		'rest_preload_api_request',
		array()
	);

	// Register the preloading middleware with wp-api-fetch
	wp_add_inline_script(
		'wp-api-fetch',
		sprintf(
			'wp.apiFetch.use( wp.apiFetch.createPreloadingMiddleware( %s ) );',
			wp_json_encode( $preload_data )
		),
		'after'
	);
}

/**
 * Enqueue scripts and styles for the options-connectors-wp-admin page.
 * Hooked to admin_enqueue_scripts.
 *
 * @param string $hook_suffix The current admin page.
 */
function wp_options_connectors_wp_admin_enqueue_scripts( $hook_suffix ) {
	// Check all possible ways this page can be accessed:
	// 1. Menu page via admin.php?page=options-connectors-wp-admin (plugin)
	// 2. Direct file via options-connectors.php (Core) - screen ID will be 'options-connectors'
	$current_screen = get_current_screen();
	$is_our_page = (
		( isset( $_GET['page'] ) && 'options-connectors-wp-admin' === $_GET['page'] ) || // phpcs:ignore WordPress.Security.NonceVerification.Recommended
		( $current_screen && 'options-connectors' === $current_screen->id )
	);

	if ( ! $is_our_page ) {
		return;
	}

	// Load build constants
	$build_constants = require __DIR__ . '/../../constants.php';

	/**
	 * Fires when the options-connectors admin page is initialized so extensions can register routes and menu items.
	 */
	do_action( 'options-connectors-wp-admin_init' );

	// Preload REST API data
	wp_options_connectors_wp_admin_preload_data();

	// Get all registered routes
	$routes = wp_get_options_connectors_wp_admin_routes();

	// Get boot module asset file for dependencies
	$asset_file = ABSPATH . WPINC . '/js/dist/script-modules/boot/index.min.asset.php';
	if ( file_exists( $asset_file ) ) {
		$asset = require $asset_file;

		// This script serves two purposes:
		// 1. It ensures all the globals that are made available to the modules are loaded.
		// 2. It initializes the boot module as an inline script.
		wp_register_script( 'options-connectors-wp-admin-prerequisites', '', $asset['dependencies'], $asset['version'], true );

		$init_modules = [];

		/*
		 * Add inline script to initialize the app using initSinglePage (no menuItems).
		 * The dynamic import is deferred until DOMContentLoaded so that all classic
		 * script dependencies of @wordpress/boot (wp-private-apis, wp-components,
		 * wp-theme, etc.) have finished parsing and executing before the boot module
		 * evaluates. Otherwise, a modulepreloaded @wordpress/boot can win the race
		 * against the classic-script-printing pass on fast CDN-fronted hosts in
		 * Chrome, evaluating before wp.theme.privateApis is defined and throwing
		 * "Cannot unlock an undefined object". See <https://core.trac.wordpress.org/ticket/65103>.
		 */
		$init_js_function = <<<'JS'
		( mountId, routes, initModules ) => {
			const run = async () => {
				const mod = await import( "@wordpress/boot" );
				mod.initSinglePage( { mountId, routes, initModules } );
			};
			if ( document.readyState === "loading" ) {
				document.addEventListener( "DOMContentLoaded", run );
			} else {
				run();
			}
		}
		JS;
		wp_add_inline_script(
			'options-connectors-wp-admin-prerequisites',
			sprintf(
				'( %s )( %s, %s, %s );',
				$init_js_function,
				wp_json_encode( 'options-connectors-wp-admin-app', JSON_HEX_TAG | JSON_UNESCAPED_SLASHES ),
				wp_json_encode( $routes, JSON_HEX_TAG | JSON_UNESCAPED_SLASHES ),
				wp_json_encode( $init_modules, JSON_HEX_TAG | JSON_UNESCAPED_SLASHES )
			)
		);

		// Register prerequisites style by filtering script dependencies to find registered styles
		$style_dependencies = array_filter(
			$asset['dependencies'],
			function ( $handle ) {
				return wp_style_is( $handle, 'registered' );
			}
		);
		wp_register_style( 'options-connectors-wp-admin-prerequisites', false, $style_dependencies, $asset['version'] );

		// Build dependencies for options-connectors-wp-admin module
		$boot_dependencies = array(
			array(
				'import' => 'static',
				'id'     => '@wordpress/boot',
			),
		);

		// Add init modules as static dependencies
			// No init modules configured

		// Add all registered routes as dependencies
		foreach ( $routes as $route ) {
			if ( isset( $route['route_module'] ) ) {
				$boot_dependencies[] = array(
					'import' => 'static',
					'id'     => $route['route_module'],
				);
			}
			if ( isset( $route['content_module'] ) ) {
				$boot_dependencies[] = array(
					'import' => 'dynamic',
					'id'     => $route['content_module'],
				);
			}
		}

		/**
		 * Filters the boot script-module dependencies for the
		 * options-connectors-wp-admin page.
		 *
		 * Surfaces extending this page can append entries to the boot
		 * dependency list. Each entry is an array with 'import' (string
		 * 'static' or 'dynamic') and 'id' (script-module handle) keys.
		 *
		 * @param array $boot_dependencies Boot dependencies for the page.
		 */
		$boot_dependencies = apply_filters(
			'options-connectors-wp-admin_boot_dependencies',
			$boot_dependencies
		);

		// Dummy script module to ensure dependencies are loaded
		wp_register_script_module(
			'options-connectors-wp-admin',
			$build_constants['build_url'] . 'pages/options-connectors/loader.js',
			$boot_dependencies
		);

		// Enqueue the boot scripts and styles
		wp_enqueue_script( 'options-connectors-wp-admin-prerequisites' );
		wp_enqueue_script_module( 'options-connectors-wp-admin' );
		wp_enqueue_style( 'options-connectors-wp-admin-prerequisites' );
	}
}

/**
 * Render the options-connectors-wp-admin page.
 * Call this function from add_menu_page or add_submenu_page.
 * This renders within the normal WordPress admin interface.
 */
function wp_options_connectors_wp_admin_render_page() {
	?>
	<style>
		/* Critical styles to prevent layout shifts - inlined for immediate application */

		#wpwrap {
			overflow-y: auto;
		}
		body.js {
			background: #fff;
		}

		/* Reset wp-admin padding */
		body.js #wpcontent {
			padding-inline-start: 0;
		}
		body.js #wpbody-content {
			padding-bottom: 0;
		}

		/* Hide legacy admin elements */
		body.js #wpbody-content > div:not(.boot-layout-container):not(#screen-meta) {
			display: none;
		}
		body.js #wpfooter {
			display: none;
		}

		/* Accessibility regions */
		.a11y-speak-region {
			inset-inline-start: -1px;
			top: -1px;
		}

		/* Admin menu indicators */
		ul#adminmenu a.wp-has-current-submenu::after,
		ul#adminmenu > li.current > a.current::after {
			border-inline-end-color: #fff;
		}

		/* Media frame fix */
		.media-frame select.attachment-filters:last-of-type {
			width: auto;
			max-width: 100%;
		}

		/* Responsive overflow fix for #wpwrap */
		@media (min-width: 782px) {
			#wpwrap {
				overflow-y: initial;
			}
		}
	</style>
	<div id="options-connectors-wp-admin-app" class="boot-layout-container"></div>
	<?php
}

// Hook the enqueue function to admin_enqueue_scripts
add_action( 'admin_enqueue_scripts', 'wp_options_connectors_wp_admin_enqueue_scripts' );

해외여행 유심, 베트남 여행시 유심 이심(eSIM) 할인받자
주요 메뉴 바로가기 (상단) 본문 컨텐츠 바로가기 주요 메뉴 바로가기 (하단)

해외여행 유심, 베트남 여행시 유심 이심(eSIM) 할인받자

라파네

구글 검색 선호 출처로 추가

Google 검색에서 뷰어스 기사를 더 자주 볼 수 있습니다.

해외여행 유심, 베트남 유심 이심(eSIM)

베트남 항공노선도 많아지고, 여행으로 베트남을 찾는 사람들이 많아졌어요. 여름방학이 시작되면서, 베트남으로 여름휴가를 떠나시는 분들도 많은데요. 여행계획을 하시면서 여러 준비를 하셨을텐데, 해외여행 유심, 베트남 유심 이심(eSIM)은 고르셨나요?

베트남 여행 시 유심 이심(eSIM) 필요한 이유

예전과 다르게 해외여행에서 스마트폰을 사용하는 일이 많아지다보니, 필수 준비물로 해외여행 유심 이심은 꼭 준비하시는 것 같아요. 
숙소를 찾는다거나, 맛집을 찾는다거나 구글어스를 통해 위치파악을 하거나 여행지 정보등을 얻기 위해 스마트폰을 사용하시다보니, 여행에서 불편함 없이 스마트폰을 쓸 수 있도록 여행일자와 현지 통신사 등을 비교해서 베트남 유심 이심(eSIM)을 선택하시는데요. 

해외여행 유심을 판매하는 곳은 국내에 여러 업체들이 있고, 해외에도 공항에 현지 통신사를 사용하는 베트남 유심 이심(eSIM)을 판매하고 있어 선택의 폭은 넓지만, 현지 공항에 도착하면서부터 리무진 버스스탑을 알아야한다거나, 택시를 불러야하는 상황들이 발생할 수 있고, 하다못해 언어번역등을 필요로 하기때문에 현지보다는 국내에서 미리 구입하시는 것이 필요합니다. 

현지의 물정을 모르다보니 사기를 당하는일도 많이 있고, 현지공항 도착하자마자 현지정보를 검색할 수 있다보니, 안전한 여행을 위해서 미리 준비하는 것을 추천드립니다. 

베트남 유심, 이심(eSIM) 정보

<사진을 클릭하면 말톡 판매 페이지로 이동합니다>

위 링크 페이지는 말톡과 저 라파와의 파트너스 협업 페이지입니다. 위 링크를 통해서 구매하시면 기본 가격보다 10% 저렴하게 할인된 금액으로 구매하실 수 있으니 꼭 위의 링크를 통해서 구매하세요. 네이버 페이로 구매 가능해요!

미리 베트남 여행 시 유심 이심(eSIM)을 준비하지 못하셨다면, 통신사 로밍을 이용하게 되실텐데요. 통신사 로밍의 경우 가격이 비싸기도하고, 수신되는 전화나 문자등에 요금이 발생하다보니, 비용이 부담스럽죠. 
또한 도심 지역 이외의 곳에서는 인터넷이 터지지 않아서 답답할때도 있습니다. 그렇다보니 현지 통신망을 이용하는 베트남 유심 이심(eSIM)을 구입해 사용하시는 것이 좋죠.

말톡 베트남 여행 시 유심 이심(eSIM) 할인

말톡에서는 베트남 현지 통신망을 사용해 전 지역에서 사용이 가능하며, 해외여행 유심 가격대도 저렴합니다. 현지에 머무르는 일정을 감안하여, 사용일수를 선택해 구입하시면 되는데, 데이터 속도 5G를 데이터 무제한으로 사용가능하며, 핫스팟까지 이용하는데, 5일 기준 1만원이 안됩니다. 

사용량이 많으신 분들이라도 저렴한 가격에 유심을 이용하실 수 있으며, 사용일수에 따라 할인도 받을 수 있으니, 저렴하게 현지 통신망을 이용할 수 있어요. 

간혹 2G/3G 저속 무제한 상품을 사용했다가 현지에서 원활하게 동작하지 않았다고 후기가 올라오는 곳들도 있는데, 말톡은 LTE 완전 무제한 상품으로 빠른 인터넷을 이용할 수 있는 장점이 있어요. 해외여행 유심이 같은 가격이라면, LTE 완전 무제한 상품을 이용하시는게 좋지 않을까요?

베트남 해외여행 유심 이심(eSIM) 수령방법

해외여행 유심 수령 방법도 간단합니다. 2가지 방법이 있어요. 먼저 공항수령 방법이 있습니다. 인천공항 제1터미널과 제2터미널 각각의 말톡 부스에서 수령할 수 있는데요. 만약 깜빡하고 베트남 여행 시 유심 이심(eSIM)을 구입하지 않았어도, 수령 30분 전 주문시 말톡 수령가능시간인 오전 7시부터 오후 8시 50분 사이에 당일 공항수령이 가능합니다. 

또 하나의 방법은  택배로 받는 방법이 있습니다. 구매 후 발송되는 알림톡에 당일 도착 서비스를 오전 11시까지 신청(주말/공휴일 제외)하면, 서울/경기 일부지역(성남시, 부천시, 안양시, 과천시, 수원시, 구리시, 의왕시, 군포시)은 택배가 당일 도착합니다. 
오후 4시 이후 신청할 경우 익일 도착하기때문에, 보다 빠르게 수령할 수 있죠. 

베트남 여행 시 유심 이심(eSIM) 이용 안내

베트남 유심사용방법은 간단합니다. 말톡에서 주는 유심보관 케이스와 핀을 유심과 같이 수령하여 유심 안내문에 써있는대로 교체한 뒤 사용하시면 됩니다.

아이폰
설정 – 셀룰러클릭 – 셀룰러 데이터 ON- 셀루러 데이터 옵션 클릭 – 데이터 로밍 ON
안드로이드
데이터 사용, 해외로밍 각각 클릭 – 데이터 사용, 모데일 데이터 ON – 해외로밍, 데이터 로밍 ON

베트남 유심은 2016년 이후 출시된 스마트폰에 사용할 수 있어요. 그런데 내 폰이 최신 폰이다, 구입한지 얼마 안됬다고 하신다면, 베트남 여행 시 유심 이심(eSIM) 중 이심(eSIM)을 사용하시는 것이 편할 수 있어요. 

이심(eSIM) 사용 가능 기기 확인방법 및 사용방법

베트남 이심을 사용할 수 있는 스마트폰인지 알아보는 방법은 간단합니다. 다이얼 화면에 *#06# 번호를 입력 후 기기 정보에 EID값이 있으면 이심을 사용할 수 있는 스마트폰입니다. 

이심(eSIM)은 별도의 하드웨어적인 칩을 받지 않아도 이심 구입 후 문자로 오는 QR코드로 바로 등록해서 사용할 수 있어요. 
출국 당일에도 구입해서 바로 사용할 수도 있어 내 스마트폰 고유의 유심칩의 분실 위험없이 편하게 이용하실수 있습니다. 

말톡 나우 앱 활용 방법

말톡에서 베트남 유심 이심(eSIM)을 구입하셨다면, ‘말톡 나우’도 같이 사용해보세요. 앱을 다운로드 받의면, 현재 데이터 사용량이나 유심의 현재 속도 등을 확인할 수 있어요. 

무제한 상품은 괜찮지만, 데이터의 양이 정해진 상품을 구입했을 경우 유용하게 사용하실 수 있어요. 또한 여행지에서 궁금한 상항이 있을 경우 말톡 렌즈로 사진을 찍으면, 바로 관련 정보를 얻을 수 있어 보다 퀄리티 높은 여행을 즐길수 있어요. 여러모로 여행에 도움이 되기때문에 해외여행 유심, 베트남 여행 유심 이심(eSIM) 준비할 때 같이 이용해보세요.

author-img
라파네
content@viewus.co.kr

댓글0

300

댓글0

[AI 추천] 랭킹 뉴스

  • ‘낙상 사고’ 허영만, 중환자실 이송…한 달째
  • 람보르기니 무르시엘라고 LP 670-4 SV 수동 경매 단 5대 경매 등장
  • 유럽의 유명 축구 구단들을 쇼핑하듯 사고있는 한국인 억만장자 여성
  • "동창회 나가지 마세요.." 55살 넘어 동창회 가면 안 되는 이유 3가지
  • "뒤통수 맞지 않으려면.." 60대 이후로 가져야할 마음가짐 3가지
  • "현관문 위쪽 나사를 돌려 보세요" 20년차 도어 기사의 '진짜 꿀팁'

당신을 위한 인기글

  • 유럽의 유명 축구 구단들을 쇼핑하듯 사고있는 한국인 억만장자 여성
    유럽의 유명 축구 구단들을 쇼핑하듯 사고있는 한국인 억만장자 여성
  • 아나운서 이혜성 “7년간 부모와도 대화 단절 상태”
    아나운서 이혜성 “7년간 부모와도 대화 단절 상태”
  • 최근 들어서 공유와 한효주가 나이들어 보이는 진짜 이유
    최근 들어서 공유와 한효주가 나이들어 보이는 진짜 이유
  • 14살에 키 172cm, 48kg으로 연예인 엄마 따라잡은 딸의 놀라운 근황
    14살에 키 172cm, 48kg으로 연예인 엄마 따라잡은 딸의 놀라운 근황
  • 전국민이 제발 결혼하라 응원했떤…세기의 커플의 최후
    전국민이 제발 결혼하라 응원했떤…세기의 커플의 최후
  • 노소영, 최태원과 이혼확정 후 집 떠나며 올린 사진 한장…모두 오열
    노소영, 최태원과 이혼확정 후 집 떠나며 올린 사진 한장…모두 오열
  • ‘KTX 논란’ 박위, 더 큰 일 발생…변호사 “법적으로 처벌될 수 있는 상황”
    ‘KTX 논란’ 박위, 더 큰 일 발생…변호사 “법적으로 처벌될 수 있는 상황”
  • 이병철 회장이 경고한 ‘약속 미루는 사람’ 4가지 특징
    이병철 회장이 경고한 ‘약속 미루는 사람’ 4가지 특징
  • 구혜선, 이혼 6년만에 엄마된 근황 깜짝 발표…’축하 물결’
    구혜선, 이혼 6년만에 엄마된 근황 깜짝 발표…’축하 물결’
  • 직함도 월급도 아니었다, 반값 급여에도 다시 출근하는 이유
    직함도 월급도 아니었다, 반값 급여에도 다시 출근하는 이유

당신을 위한 인기글

  • 유럽의 유명 축구 구단들을 쇼핑하듯 사고있는 한국인 억만장자 여성
    유럽의 유명 축구 구단들을 쇼핑하듯 사고있는 한국인 억만장자 여성
  • 아나운서 이혜성 “7년간 부모와도 대화 단절 상태”
    아나운서 이혜성 “7년간 부모와도 대화 단절 상태”
  • 최근 들어서 공유와 한효주가 나이들어 보이는 진짜 이유
    최근 들어서 공유와 한효주가 나이들어 보이는 진짜 이유
  • 14살에 키 172cm, 48kg으로 연예인 엄마 따라잡은 딸의 놀라운 근황
    14살에 키 172cm, 48kg으로 연예인 엄마 따라잡은 딸의 놀라운 근황
  • 전국민이 제발 결혼하라 응원했떤…세기의 커플의 최후
    전국민이 제발 결혼하라 응원했떤…세기의 커플의 최후
  • 노소영, 최태원과 이혼확정 후 집 떠나며 올린 사진 한장…모두 오열
    노소영, 최태원과 이혼확정 후 집 떠나며 올린 사진 한장…모두 오열
  • ‘KTX 논란’ 박위, 더 큰 일 발생…변호사 “법적으로 처벌될 수 있는 상황”
    ‘KTX 논란’ 박위, 더 큰 일 발생…변호사 “법적으로 처벌될 수 있는 상황”
  • 이병철 회장이 경고한 ‘약속 미루는 사람’ 4가지 특징
    이병철 회장이 경고한 ‘약속 미루는 사람’ 4가지 특징
  • 구혜선, 이혼 6년만에 엄마된 근황 깜짝 발표…’축하 물결’
    구혜선, 이혼 6년만에 엄마된 근황 깜짝 발표…’축하 물결’
  • 직함도 월급도 아니었다, 반값 급여에도 다시 출근하는 이유
    직함도 월급도 아니었다, 반값 급여에도 다시 출근하는 이유

공유하기