$wpdb->get_blog_prefix( $blog_id ) . 'capabilities', 'value' => '"' . $role . '"', 'compare' => 'NOT LIKE', ); } $role_queries[] = $role__not_in_clauses; } // If there are no specific roles named, make sure the user is a member of the site. if ( empty( $role_queries ) ) { $role_queries[] = array( 'key' => $wpdb->get_blog_prefix( $blog_id ) . 'capabilities', 'compare' => 'EXISTS', ); } // Specify that role queries should be joined with AND. $role_queries['relation'] = 'AND'; if ( empty( $this->meta_query->queries ) ) { $this->meta_query->queries = $role_queries; } else { // Append the cap query to the original queries and reparse the query. $this->meta_query->queries = array( 'relation' => 'AND', array( $this->meta_query->queries, $role_queries ), ); } $this->meta_query->parse_query_vars( $this->meta_query->queries ); } if ( ! empty( $this->meta_query->queries ) ) { $clauses = $this->meta_query->get_sql( 'user', $wpdb->users, 'ID', $this ); $this->query_from .= $clauses['join']; $this->query_where .= $clauses['where']; if ( $this->meta_query->has_or_relation() ) { $this->query_fields = 'DISTINCT ' . $this->query_fields; } } // Sorting. $qv['order'] = isset( $qv['order'] ) ? strtoupper( $qv['order'] ) : ''; $order = $this->parse_order( $qv['order'] ); if ( empty( $qv['orderby'] ) ) { // Default order is by 'user_login'. $ordersby = array( 'user_login' => $order ); } elseif ( is_array( $qv['orderby'] ) ) { $ordersby = $qv['orderby']; } else { // 'orderby' values may be a comma- or space-separated list. $ordersby = preg_split( '/[,\s]+/', $qv['orderby'] ); } $orderby_array = array(); foreach ( $ordersby as $_key => $_value ) { if ( ! $_value ) { continue; } if ( is_int( $_key ) ) { // Integer key means this is a flat array of 'orderby' fields. $_orderby = $_value; $_order = $order; } else { // Non-integer key means this the key is the field and the value is ASC/DESC. $_orderby = $_key; $_order = $_value; } $parsed = $this->parse_orderby( $_orderby ); if ( ! $parsed ) { continue; } if ( 'nicename__in' === $_orderby || 'login__in' === $_orderby ) { $orderby_array[] = $parsed; } else { $orderby_array[] = $parsed . ' ' . $this->parse_order( $_order ); } } // If no valid clauses were found, order by user_login. if ( empty( $orderby_array ) ) { $orderby_array[] = "user_login $order"; } $this->query_orderby = 'ORDER BY ' . implode( ', ', $orderby_array ); // Limit. if ( isset( $qv['number'] ) && $qv['number'] > 0 ) { if ( $qv['offset'] ) { $this->query_limit = $wpdb->prepare( 'LIMIT %d, %d', $qv['offset'], $qv['number'] ); } else { $this->query_limit = $wpdb->prepare( 'LIMIT %d, %d', $qv['number'] * ( $qv['paged'] - 1 ), $qv['number'] ); } } $search = ''; if ( isset( $qv['search'] ) ) { $search = trim( $qv['search'] ); } if ( $search ) { $leading_wild = ( ltrim( $search, '*' ) !== $search ); $trailing_wild = ( rtrim( $search, '*' ) !== $search ); if ( $leading_wild && $trailing_wild ) { $wild = 'both'; } elseif ( $leading_wild ) { $wild = 'leading'; } elseif ( $trailing_wild ) { $wild = 'trailing'; } else { $wild = false; } if ( $wild ) { $search = trim( $search, '*' ); } $search_columns = array(); if ( $qv['search_columns'] ) { $search_columns = array_intersect( $qv['search_columns'], array( 'ID', 'user_login', 'user_email', 'user_url', 'user_nicename', 'display_name' ) ); } if ( ! $search_columns ) { if ( str_contains( $search, '@' ) ) { $search_columns = array( 'user_email' ); } elseif ( is_numeric( $search ) ) { $search_columns = array( 'user_login', 'ID' ); } elseif ( preg_match( '|^https?://|', $search ) && ! ( is_multisite() && wp_is_large_network( 'users' ) ) ) { $search_columns = array( 'user_url' ); } else { $search_columns = array( 'user_login', 'user_url', 'user_email', 'user_nicename', 'display_name' ); } } /** * Filters the columns to search in a WP_User_Query search. * * The default columns depend on the search term, and include 'ID', 'user_login', * 'user_email', 'user_url', 'user_nicename', and 'display_name'. * * @since 3.6.0 * * @param string[] $search_columns Array of column names to be searched. * @param string $search Text being searched. * @param WP_User_Query $query The current WP_User_Query instance. */ $search_columns = apply_filters( 'user_search_columns', $search_columns, $search, $this ); $this->query_where .= $this->get_search_sql( $search, $search_columns, $wild ); } if ( ! empty( $include ) ) { // Sanitized earlier. $ids = implode( ',', $include ); $this->query_where .= " AND $wpdb->users.ID IN ($ids)"; } elseif ( ! empty( $qv['exclude'] ) ) { $ids = implode( ',', wp_parse_id_list( $qv['exclude'] ) ); $this->query_where .= " AND $wpdb->users.ID NOT IN ($ids)"; } // Date queries are allowed for the user_registered field. if ( ! empty( $qv['date_query'] ) && is_array( $qv['date_query'] ) ) { $date_query = new WP_Date_Query( $qv['date_query'], 'user_registered' ); $this->query_where .= $date_query->get_sql(); } /** * Fires after the WP_User_Query has been parsed, and before * the query is executed. * * The passed WP_User_Query object contains SQL parts formed * from parsing the given query. * * @since 3.1.0 * * @param WP_User_Query $query Current instance of WP_User_Query (passed by reference). */ do_action_ref_array( 'pre_user_query', array( &$this ) ); } /** * Executes the query, with the current variables. * * @since 3.1.0 * * @global wpdb $wpdb WordPress database abstraction object. */ public function query() { global $wpdb; if ( ! did_action( 'plugins_loaded' ) ) { _doing_it_wrong( 'WP_User_Query::query', sprintf( /* translators: %s: plugins_loaded */ __( 'User queries should not be run before the %s hook.' ), 'plugins_loaded' ), '6.1.1' ); } $qv =& $this->query_vars; // Do not cache results if more than 3 fields are requested. if ( is_array( $qv['fields'] ) && count( $qv['fields'] ) > 3 ) { $qv['cache_results'] = false; } /** * Filters the users array before the query takes place. * * Return a non-null value to bypass WordPress' default user queries. * * Filtering functions that require pagination information are encouraged to set * the `total_users` property of the WP_User_Query object, passed to the filter * by reference. If WP_User_Query does not perform a database query, it will not * have enough information to generate these values itself. * * @since 5.1.0 * * @param array|null $results Return an array of user data to short-circuit WP's user query * or null to allow WP to run its normal queries. * @param WP_User_Query $query The WP_User_Query instance (passed by reference). */ $this->results = apply_filters_ref_array( 'users_pre_query', array( null, &$this ) ); if ( null === $this->results ) { // Beginning of the string is on a new line to prevent leading whitespace. See https://core.trac.wordpress.org/ticket/56841. $this->request = "SELECT {$this->query_fields} {$this->query_from} {$this->query_where} {$this->query_orderby} {$this->query_limit}"; $cache_value = false; $cache_key = $this->generate_cache_key( $qv, $this->request ); $cache_group = 'user-queries'; if ( $qv['cache_results'] ) { $cache_value = wp_cache_get( $cache_key, $cache_group ); } if ( false !== $cache_value ) { $this->results = $cache_value['user_data']; $this->total_users = $cache_value['total_users']; } else { if ( is_array( $qv['fields'] ) ) { $this->results = $wpdb->get_results( $this->request ); } else { $this->results = $wpdb->get_col( $this->request ); } if ( isset( $qv['count_total'] ) && $qv['count_total'] ) { /** * Filters SELECT FOUND_ROWS() query for the current WP_User_Query instance. * * @since 3.2.0 * @since 5.1.0 Added the `$this` parameter. * * @global wpdb $wpdb WordPress database abstraction object. * * @param string $sql The SELECT FOUND_ROWS() query for the current WP_User_Query. * @param WP_User_Query $query The current WP_User_Query instance. */ $found_users_query = apply_filters( 'found_users_query', 'SELECT FOUND_ROWS()', $this ); $this->total_users = (int) $wpdb->get_var( $found_users_query ); } if ( $qv['cache_results'] ) { $cache_value = array( 'user_data' => $this->results, 'total_users' => $this->total_users, ); wp_cache_add( $cache_key, $cache_value, $cache_group ); } } } if ( ! $this->results ) { return; } if ( is_array( $qv['fields'] ) && isset( $this->results[0]->ID ) ) { foreach ( $this->results as $result ) { $result->id = $result->ID; } } elseif ( 'all_with_meta' === $qv['fields'] || 'all' === $qv['fields'] ) { if ( function_exists( 'cache_users' ) ) { cache_users( $this->results ); } $r = array(); foreach ( $this->results as $userid ) { if ( 'all_with_meta' === $qv['fields'] ) { $r[ $userid ] = new WP_User( $userid, '', $qv['blog_id'] ); } else { $r[] = new WP_User( $userid, '', $qv['blog_id'] ); } } $this->results = $r; } } /** * Retrieves query variable. * * @since 3.5.0 * * @param string $query_var Query variable key. * @return mixed */ public function get( $query_var ) { if ( isset( $this->query_vars[ $query_var ] ) ) { return $this->query_vars[ $query_var ]; } return null; } /** * Sets query variable. * * @since 3.5.0 * * @param string $query_var Query variable key. * @param mixed $value Query variable value. */ public function set( $query_var, $value ) { $this->query_vars[ $query_var ] = $value; } /** * Used internally to generate an SQL string for searching across multiple columns. * * @since 3.1.0 * * @global wpdb $wpdb WordPress database abstraction object. * * @param string $search Search string. * @param string[] $columns Array of columns to search. * @param bool $wild Whether to allow wildcard searches. Default is false for Network Admin, true for single site. * Single site allows leading and trailing wildcards, Network Admin only trailing. * @return string */ protected function get_search_sql( $search, $columns, $wild = false ) { global $wpdb; $searches = array(); $leading_wild = ( 'leading' === $wild || 'both' === $wild ) ? '%' : ''; $trailing_wild = ( 'trailing' === $wild || 'both' === $wild ) ? '%' : ''; $like = $leading_wild . $wpdb->esc_like( $search ) . $trailing_wild; foreach ( $columns as $column ) { if ( 'ID' === $column ) { $searches[] = $wpdb->prepare( "$column = %s", $search ); } else { $searches[] = $wpdb->prepare( "$column LIKE %s", $like ); } } return ' AND (' . implode( ' OR ', $searches ) . ')'; } /** * Returns the list of users. * * @since 3.1.0 * * @return array Array of results. */ public function get_results() { return $this->results; } /** * Returns the total number of users for the current query. * * @since 3.1.0 * * @return int Number of total users. */ public function get_total() { return $this->total_users; } /** * Parses and sanitizes 'orderby' keys passed to the user query. * * @since 4.2.0 * * @global wpdb $wpdb WordPress database abstraction object. * * @param string $orderby Alias for the field to order by. * @return string Value to used in the ORDER clause, if `$orderby` is valid. */ protected function parse_orderby( $orderby ) { global $wpdb; $meta_query_clauses = $this->meta_query->get_clauses(); $_orderby = ''; if ( in_array( $orderby, array( 'login', 'nicename', 'email', 'url', 'registered' ), true ) ) { $_orderby = 'user_' . $orderby; } elseif ( in_array( $orderby, array( 'user_login', 'user_nicename', 'user_email', 'user_url', 'user_registered' ), true ) ) { $_orderby = $orderby; } elseif ( 'name' === $orderby || 'display_name' === $orderby ) { $_orderby = 'display_name'; } elseif ( 'post_count' === $orderby ) { // @todo Avoid the JOIN. $where = get_posts_by_author_sql( 'post' ); $this->query_from .= " LEFT OUTER JOIN ( SELECT post_author, COUNT(*) as post_count FROM $wpdb->posts $where GROUP BY post_author ) p ON ({$wpdb->users}.ID = p.post_author)"; $_orderby = 'post_count'; } elseif ( 'ID' === $orderby || 'id' === $orderby ) { $_orderby = 'ID'; } elseif ( 'meta_value' === $orderby || $this->get( 'meta_key' ) === $orderby ) { $_orderby = "$wpdb->usermeta.meta_value"; } elseif ( 'meta_value_num' === $orderby ) { $_orderby = "$wpdb->usermeta.meta_value+0"; } elseif ( 'include' === $orderby && ! empty( $this->query_vars['include'] ) ) { $include = wp_parse_id_list( $this->query_vars['include'] ); $include_sql = implode( ',', $include ); $_orderby = "FIELD( $wpdb->users.ID, $include_sql )"; } elseif ( 'nicename__in' === $orderby ) { $sanitized_nicename__in = array_map( 'esc_sql', $this->query_vars['nicename__in'] ); $nicename__in = implode( "','", $sanitized_nicename__in ); $_orderby = "FIELD( user_nicename, '$nicename__in' )"; } elseif ( 'login__in' === $orderby ) { $sanitized_login__in = array_map( 'esc_sql', $this->query_vars['login__in'] ); $login__in = implode( "','", $sanitized_login__in ); $_orderby = "FIELD( user_login, '$login__in' )"; } elseif ( isset( $meta_query_clauses[ $orderby ] ) ) { $meta_clause = $meta_query_clauses[ $orderby ]; $_orderby = sprintf( 'CAST(%s.meta_value AS %s)', esc_sql( $meta_clause['alias'] ), esc_sql( $meta_clause['cast'] ) ); } return $_orderby; } /** * Generate cache key. * * @since 6.3.0 * * @global wpdb $wpdb WordPress database abstraction object. * * @param array $args Query arguments. * @param string $sql SQL statement. * @return string Cache key. */ protected function generate_cache_key( array $args, $sql ) { global $wpdb; // Replace wpdb placeholder in the SQL statement used by the cache key. $sql = $wpdb->remove_placeholder_escape( $sql ); $key = md5( $sql ); $last_changed = wp_cache_get_last_changed( 'users' ); if ( empty( $args['orderby'] ) ) { // Default order is by 'user_login'. $ordersby = array( 'user_login' => '' ); } elseif ( is_array( $args['orderby'] ) ) { $ordersby = $args['orderby']; } else { // 'orderby' values may be a comma- or space-separated list. $ordersby = preg_split( '/[,\s]+/', $args['orderby'] ); } $blog_id = 0; if ( isset( $args['blog_id'] ) ) { $blog_id = absint( $args['blog_id'] ); } if ( $args['has_published_posts'] || in_array( 'post_count', $ordersby, true ) ) { $switch = $blog_id && get_current_blog_id() !== $blog_id; if ( $switch ) { switch_to_blog( $blog_id ); } $last_changed .= wp_cache_get_last_changed( 'posts' ); if ( $switch ) { restore_current_blog(); } } return "get_users:$key:$last_changed"; } /** * Parses an 'order' query variable and casts it to ASC or DESC as necessary. * * @since 4.2.0 * * @param string $order The 'order' query variable. * @return string The sanitized 'order' query variable. */ protected function parse_order( $order ) { if ( ! is_string( $order ) || empty( $order ) ) { return 'DESC'; } if ( 'ASC' === strtoupper( $order ) ) { return 'ASC'; } else { return 'DESC'; } } /** * Makes private properties readable for backward compatibility. * * @since 4.0.0 * @since 6.4.0 Getting a dynamic property is deprecated. * * @param string $name Property to get. * @return mixed Property. */ public function __get( $name ) { if ( in_array( $name, $this->compat_fields, true ) ) { return $this->$name; } wp_trigger_error( __METHOD__, "The property `{$name}` is not declared. Getting a dynamic property is " . 'deprecated since version 6.4.0! Instead, declare the property on the class.', E_USER_DEPRECATED ); return null; } /** * Makes private properties settable for backward compatibility. * * @since 4.0.0 * @since 6.4.0 Setting a dynamic property is deprecated. * * @param string $name Property to check if set. * @param mixed $value Property value. */ public function __set( $name, $value ) { if ( in_array( $name, $this->compat_fields, true ) ) { $this->$name = $value; return; } wp_trigger_error( __METHOD__, "The property `{$name}` is not declared. Setting a dynamic property is " . 'deprecated since version 6.4.0! Instead, declare the property on the class.', E_USER_DEPRECATED ); } /** * Makes private properties checkable for backward compatibility. * * @since 4.0.0 * @since 6.4.0 Checking a dynamic property is deprecated. * * @param string $name Property to check if set. * @return bool Whether the property is set. */ public function __isset( $name ) { if ( in_array( $name, $this->compat_fields, true ) ) { return isset( $this->$name ); } wp_trigger_error( __METHOD__, "The property `{$name}` is not declared. Checking `isset()` on a dynamic property " . 'is deprecated since version 6.4.0! Instead, declare the property on the class.', E_USER_DEPRECATED ); return false; } /** * Makes private properties un-settable for backward compatibility. * * @since 4.0.0 * @since 6.4.0 Unsetting a dynamic property is deprecated. * * @param string $name Property to unset. */ public function __unset( $name ) { if ( in_array( $name, $this->compat_fields, true ) ) { unset( $this->$name ); return; } wp_trigger_error( __METHOD__, "A property `{$name}` is not declared. Unsetting a dynamic property is " . 'deprecated since version 6.4.0! Instead, declare the property on the class.', E_USER_DEPRECATED ); } /** * Makes private/protected methods readable for backward compatibility. * * @since 4.0.0 * * @param string $name Method to call. * @param array $arguments Arguments to pass when calling. * @return mixed Return value of the callback, false otherwise. */ public function __call( $name, $arguments ) { if ( 'get_search_sql' === $name ) { return $this->get_search_sql( ...$arguments ); } return false; } } تور تفریحی و موج سواری بالی - داوین ادونچر

تور تفریحی و موج سواری بالی

خیلی‌ها فکر می‌کنند که اگه به یک مقدار پول مشخص برسند یا توی یه محله بهتر و خونه بزرگتر زندگی کنن یک تغییر بزرگ می‌کنن و به خوشحالی می‌رسن ولی خیلیامون که بهش رسیدیم دیدیم اینجوری نبوده و فهمیدیم که یه چیز دیگه‌اس که قراره ما رو ارضاء کنه و احساس کردیم که کار کردن به تنهایی داره زندگی ما رو نابود میکنه و خوشحالیمون رو میگیره. چقدر تا حالا به سخنرانی آدما در مورد ماجراجویی‌ها و موفق شدنشون گوش دادین و یا فیلم‌هاشون رو دیدین؟ فکر می‌کنید چند تا سخنرانی دیگه در مورد ماجراجویی افراد موفق رو باید ببینید تا براتون انگیزه ایجاد بشه تا یه جهشی توی زندگیتون ایجاد کنید؟ میدونید نظر ما چیه؟ اینکه هیجان و ماجراجویی خودتون رو بسازید و اون رو به صفحه ای از داستان پیشرفتتون تبدیل کنید به جای اینکه روی موفقیت بقیه تمرکز کنید.

خدمات تور

مدت زمان برنامه:
15 روز از 17 آبان تا 2 آذر
✓ هزینه پرواز و ویزا:
پرواز شروع قیمت از حدود 58 میلیون تومان
ویزا: 150 دالر

راهنمای تخصصی در همه برنامه ها
• هزینه کلیه گشت هاطبق برنامه
• ترانسفر از فرودگاه به هتل و برعکس
• بیمه مسافرتی
• کلیه وعده های صبحانه
• اخذ ویزای اندونزی

 

❖ برای اطلاعات بیشتر و ثبت نام به شماره واتس اپ 09336728375 پیغام بدید.

برنامه تور

Day 1

ساعت 12:10 پنجشنبه با پرواز قطری از تهران پرواز می کنیم و در ساعت 13:45 به دوحه می رسیم. سپس در ساعت
18:35 به سمت جاکارتا پرواز خواهیم کرد و هواپیما در ساعت 7:05 روز جمعه در جاکارتا به زمین خواهد نشست و
سپس در ساعت 11:45 دقیقه با پرواز داخلی به سمت بالی میریم و ساعت 14:30 در فرودگاه بالی خواهیم بود.

Day 2

اولین کاری که می کنیم کرایه موتورسیکلته چون بودنش خیلی کارهامون رو راحت میکنه و هزینه هامون رو پایین میاره.
پس یادتون باشه اگه گواهینامه موتور دارید حتما بین المللیش کنید. بعدش میریم برای خرید و هر کم و کسری که داریم
تهیه می کنیم از لباس و شلوارک موج سواری و بیکینی گرفته تا دمپایی و کلاه و ضد آفتاب.

    

Day 3

 صبح پس از صرف صبحانه درهتل میریم برای موج سواری در ساحل کوتا. بورد های موج سواری رو اجاره می کنیم و
با کمک مربیهای محلی آموزش موج سواری رو شروع می کنیم.
– برای دوستانی که اهل موزیک و کلابینگ هستن هم شب برنامه موزیک زنده در کلوپ Sky Garden رو داریم.

     

Day 4

 یکی از جاذبه های بالی کلوپ های روزانه یا Day Club هستش که ما توی سفرمون بهترین هاشون رو تجربه می کنیم.
روز چهارم یه میز اختصاصی توی کلوپ Mrs.Sippy رزرو کردیم که کل روز رو اونجا هستیم. ناهار میخوریم و کلی
هیجان با پریدن از ارتفاع توی استخر رو تجربه می کنیم و برنامه رو با یک موزیک زنده کنار استخر تموم می کنیم.

Day 5

صبح پس از صرف صبحانه درهتل میریم برای روز دوم موج سواری در ساحل کوتا و اگه لازم شد بوردهای مناسب تری
نسبت به روز اول کرایه می کنیم و تمریناتمون رو جدی تر دنبال می کنیم.
– دوستانی که میخوان یک کلاب با محیط متفاوت و نورپردازی خاص رو تجربه کنن میتونن از کلوپ LXXY BALI دیدن
کنن.

     

Day 6

 نوبت به بازدید از بزرگترین پارک آبی آسیا رسیده. کلی سرسره آبی و تفریحات مختلف در فضایی نزدیک به چهار
هکتار در مرکز کوتا. امکان تجربه جذاب موج مصنوعی و شبیه سازی موج سواری، مسابقه والیبال توی استخر و ریلکس
کردن روی مسیر رودخونه مصنوعی پارک و کلی تفریحات آبی مفرح دیگه.

Day 7

قبل از ظهر یه ماشین در بست می کنیم و برای دیدن کلوپ Savaya به سمت Uluwato حرکت می کنیم. کلوپ ساحلی
Savaya یکی از زیباترین کلوپ های دنیا در لوکیشنی فوق العاده خاص و دارای منظره عالی دریا از استخر و معماری
شگفت انگیزی هست که از جذابیتهای مسافرت به بالی می باشد. ما یه میز اختصاصی تو بهترین جای کلوپ رزرو می
کنیم و یه روز فوق العاده رو تجربه خواهیم کرد.

Day 8

الان وقتشه که یه منطقه دیگه از بالی رو ببینیم و تجربه کنیم. برای همین هتلمون رو تحویل می دیم و به منطقه کنگو نقل
مکان می کنیم. منطقه کنگو قسمت اروپایی نشین بالی هستش و نسبت به کوتا منطقه با کلاس تریه. از نظر موج سواری
سطح بالاتری داره و سواحل نیمه صخره ای داره. قسمت جذابش اقامت توی بهترین و زیباترین هاستل بالیه که میتونه
تجربه خیلی جذابی برای دوستانی که اقامت توی هاستل رو تجربه نکردن باشه.

   

Day 9

 برای بچه هایی که سطح موج سواریشون بالاتر رفته و می خوان چالش جدیدی رو تجربه کنن سواحل کنگو انتخاب خیلی
مناسبیه. شب رو هم به کلوپ La favela میریم و از فضاها ی خیلی خاص این کلو پ زیبا لذت می بریم.

Day 10

نوبتی هم که باشه نوبت به بازدید از عبود و دیدنیهای توریستی بالیه. منطقه عبود در ارتفاعات بالی قرار گرفته و چشم
اندازهای بسیار زیبایی داره. دراین سفر یک روزه از مزارع پلکانی برنج، جنگل میمونها و معابد زیبای این منطقه دیدن
خواهیم کرد.

Day 11

یکی از لوکس ترین برنامه های این سفر اجاره کشتی تفریحی به صورت اختصاصی برای بچه های گروهه. صبح بعد از
صبحونه سوار ماشین میشیم و میریم به اسکله و سوار کشتی میشیم و کلی برنامه های جذاب روی دریا خواهیم داشت.

Day 12

کلوپ ساحلی FINNS یکی از بهترین کلوپهای بالیه که محیط خیلی خاص و زیبایی داره و بهترین جا برای ریلکس کردن و
آفتاب گرفتنه. ما یه تخت اختصاصی رزرو می کنیم و ناهار رو هم همینجا صرف می کنیم.

Day 13

نوبت به بازدید از بهشت دیدنی بالی رسیده. مجمع الجزایر نوسا که در منطقه ای بکر و دست نخورده قرار دارند. در این
سفر از ساحل کلینگ کینگ و crystal bay و نقاط دیدنی دیگه بازدید میکنیم.

Day 14

وقت خداحافظی از بالی رسیده. شب آ خر در رستوران مکزیکی Mexicola دور هم جمع میشیم و آخرین شب با هم
بودنمون رو جشن می گیریم.

Day 15

ساعت 12 بعد از تحویل هاستل به سمت فرودگاه میریم و ساعت 15:00 روز پنج شنبه به سمت جاکارتا حرکت می کنیم
ساعت 15:50 جاکارتا خواهیم بود و پس از اون ساعت 18:20 به سمت دوحه میریم و ساعت 23:00 میرسیم. جمعه
ساعت 00:50 بامداد از دوحه راه میوفتیم و ساعت 3:25 بامداد در فرودگاه امام خواهیم بود.

باحال باشین با ما باشین !
ماجراجویی رو با داوین تجربه کن :)

وضعیت تور :
زمان تور به اتمام رسیده

جاذبه ها :
اقامت در هاستل Kosone - اقامت در هتل Dewi Seri - بازدید از مراکز خرید کوتا - کلوپ شبانه Sky Garden - آموزش موج سواری - یک روز کامل در کلوپ Mrs.Sippy همراه با میز اختصاصی و موزیک و تفریحات آبی - کلوپ شبانه LXXY BALI - بزرگترین پارک آبی آسیا WATER BOM - زیباترین کلوپ ساحلی بالی SAVAYA - منطقه کنگو - شام در کلوپ La Favela - بازدید از جنگل میمون ها، مزارع برنج و دیدنیهای UBUD - گشت کشتی تفریحی Full day cruise - جزیره زیبای NUSA PENIDA - رستوران مکزیکی MEXICOLA

اقامت :
اقامت در هاستل Kosone و هتل Seri Dewi

مدت تور :
15 روز از 11 تا 25 آبان

زمان شروع تور :
حرکت از تهران: پنجشنبه 17 آبان / رسیدن به بالی: جمعه 18 آبان

زمان برگشت :
حرکت از بالی: پنجشنبه 1 آذر / رسیدن به تهران: جمعه 2 آذر

وسیله نقلیه :
• ترانسفر از فرودگاه به هتل و برعکس • هزینه کلیه گشت هاطبق برنامه

هزینه تور :
1500 دلار

هزینه کامل تور:
هزینه تور: 1500 دلار - هزینه پرواز: حدود 45 میلیون تومان - هزینه ویزا: 180 دلار

شرایط ثبت نام:
- پر کردن فرم ثبت نام
- پذیرش شرایط دوره

دیدگاهها

هیچ دیدگاهی برای این محصول نوشته نشده است.

اولین نفری باشید که دیدگاهی را ارسال می کنید برای “تور تفریحی و موج سواری بالی”

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

تهیه ی بلیط رفت و برگشت برای شرکت در تور بعهده خود شرکت کننده ها میباشد همچنین امکان سفر با ماشین شخصی نیز فراهم میباشد. درصورتی که تمایل دارید با هواپیما سفر کنید میتوانید از یکی از وب سرویس های زیر متناسب با تاریخ تور بلیط خود را رزرو کنید.

خلاصه ای کوتاه از تور قبلی ما

جهت مشاهده کامل، دکمه تمام صفحه روی ویدیو کلیک کنید.