null, 'labels' => [ 'name' => 'Вариации поиска', 'singular_name' => 'Вариации поиска', 'add_new' => 'Добавить', 'add_new_item' => 'Добавить', 'edit_item' => 'Редактировать', 'new_item' => 'Вариации поиска', 'view_item' => 'Просмотреть', 'search_items' => 'Поиск', 'not_found' => 'Не найдено', 'not_found_in_trash' => 'Не найдено', 'parent_item_colon' => '', 'menu_name' => 'Вариации поиска', ], 'description' => '', 'menu_icon' => 'dashicons-media-document', 'publicly_queryable' => false, 'public' => true, 'exclude_from_search' => null, 'show_ui' => true, 'show_in_nav_menus' => false, 'show_in_menu' => true, 'rest_base' => null, 'menu_position' => 49, 'hierarchical' => true, 'supports' => ['title'], 'show_in_rest' => true, 'taxonomies' => [], 'has_archive' => true, 'rewrite' => true, 'query_var' => true ]); register_post_type('currencies', [ 'label' => null, 'labels' => [ 'name' => 'Валюты', 'singular_name' => 'Валюты', 'add_new' => 'Добавить', 'add_new_item' => 'Добавить', 'edit_item' => 'Редактировать', 'new_item' => 'Валюты', 'view_item' => 'Просмотреть', 'search_items' => 'Поиск', 'not_found' => 'Не найдено', 'not_found_in_trash' => 'Не найдено', 'parent_item_colon' => '', 'menu_name' => 'Валюты', ], 'description' => '', 'menu_icon' => 'dashicons-money-alt', 'publicly_queryable' => false, 'public' => true, 'exclude_from_search' => null, 'show_ui' => true, 'show_in_nav_menus' => false, 'show_in_menu' => true, 'rest_base' => null, 'menu_position' => 49, 'hierarchical' => true, 'supports' => ['title'], 'show_in_rest' => true, 'taxonomies' => [], 'has_archive' => true, 'rewrite' => true, 'query_var' => true ]); } public function enqueueScripts() { $directory = plugins_url().'/ajax-search/'; wp_enqueue_style("AjaxSearch-style", "{$directory}assets/style.css"); wp_enqueue_script("AjaxSearch-cookie", "{$directory}assets/cookie.js", ['jquery'], null, true); wp_enqueue_script("AjaxSearch-script", "{$directory}assets/script.js", ['AjaxSearch-cookie'], null, true); global $wpdb; $ress = $wpdb->get_results("SELECT * FROM {$wpdb->prefix}postmeta WHERE meta_key = 'estate-price-object' AND meta_value != ''"); $curs = $arr = []; $currencies = get_posts([ 'numberposts' => -1, 'post_status' => 'publish', 'post_type' => 'currencies' ]); foreach( $currencies as $cur ){ $curs[$cur->ID] = get_post_meta($cur->ID, '_currencies_course', true)*1; } foreach( $ress as $res ){ $prc = $res->meta_value*1; $arr[$res->post_id] = [0 => $prc]; foreach( $curs as $id => $cur ){ $arr[$res->post_id][$id] = $cur * $prc; } } wp_localize_script("AjaxSearch-script", 'currencies', $arr); } public function addMetaBox() { add_meta_box("AjaxSearch-box", 'AjaxSearch', [$this, 'metaBox'], 'search-variations', 'normal', 'high'); add_meta_box("AjaxSearch-box", 'AjaxSearch', [$this, 'metaBoxСurrencies'], 'currencies', 'normal', 'high'); } public function savePost( $ID = null, $post = null, $update = null ) { if( isset($_POST['AjaxSearch']) && is_array($_POST['AjaxSearch']) && $post ){ foreach( $_POST['AjaxSearch'] as $key => $val ){ update_post_meta($post->ID, $key, $val); } } } public function metaBox() { $postID = $_GET['post']; include __DIR__ . '/meta-box.php'; } public function metaBoxСurrencies() { $postID = $_GET['post']; include __DIR__ . '/currencies.php'; } public function ajaxSearchVariations() { echo '
'.static::getVariations().'
'; } public function ajaxSearchVariationActive() { echo '
'; } public function editCurrencies() { $ul = ''; $posts = get_posts([ 'numberposts' => -1, 'post_status' => 'publish', 'post_type' => 'currencies' ]); foreach( $posts as $post ){ $ul .= '
  • '.$post->post_title.'
  • '; } echo '

    USD / $

    '; } static function getVariations() { require_once __DIR__ . '/vendor/phpExcelReader/Excel/reader.php'; $variations = []; $html = ''; $upload = wp_upload_dir(); $posts = get_posts([ 'numberposts' => -1, 'post_status' => 'publish', 'post_type' => 'search-variations' ]); if( is_array($posts) ){ foreach( $posts as $post ){ $variations[$post->ID] = [ 'name' => get_post_meta($post->ID, '_variation_meta', true), 'icon' => get_post_meta($post->ID, '_variation_svg', true), 'title' => $post->post_title, 'vars' => [] ]; $sht = get_post_meta($post->ID, '_variation_sht', true); $fileID = get_post_meta($post->ID, '_variation_file', true); $attached = get_post_meta($fileID, '_wp_attached_file', true); $_key = get_post_meta($post->ID, '_variation_key', true); $_val = get_post_meta($post->ID, '_variation_val', true); if( is_readable($upload['basedir'].'/'.$attached) && isset($sht) && $sht*1 > -1 && isset($fileID) && $fileID*1 > -1 ){ $data = new Spreadsheet_Excel_Reader(); $data->setOutputEncoding('UTF-8'); $data->read($upload['basedir'].'/'.$attached); $sheet = $data->sheets[$sht]['cells']; $key = 0; foreach( $sheet as $cols ){ if( $key > 0 ){ $variations[$post->ID]['vars'][$cols[$_key]][] = $cols[$_val]; } $key++; } } } } foreach( $variations as $item ){ $ul = "

    {$item['icon']}{$item['title']}

    "; if( count($item['vars']) > 0 ){ $i = 0; foreach( $item['vars'] as $val => $vars ){ $vars[] = $val; $ul .= "
  • $val
  • "; $i++; } } $html .= ""; } return "
    $html
    "; } static function getSelectUl( $acfID ) { global $wpdb; $postID = $wpdb->get_var("SELECT post_id FROM {$wpdb->prefix}postmeta WHERE meta_key = '_variation_acf' AND meta_value = '$acfID'"); $post = get_post($postID); $html = $active = ''; if( $postID && !empty($postID) && $post ){ require_once __DIR__ . '/vendor/phpExcelReader/Excel/reader.php'; $vars = []; $upload = wp_upload_dir(); $sht = get_post_meta($post->ID, '_variation_sht', true); $_key = get_post_meta($post->ID, '_variation_key', true); $_val = get_post_meta($post->ID, '_variation_val', true); $name = get_post_meta($post->ID, '_variation_meta', true); $fileID = get_post_meta($post->ID, '_variation_file', true); $attached = get_post_meta($fileID, '_wp_attached_file', true); if( is_readable($upload['basedir'].'/'.$attached) && isset($sht) && $sht*1 > -1 && isset($fileID) && $fileID*1 > -1 ){ $data = new Spreadsheet_Excel_Reader(); $data->setOutputEncoding('UTF-8'); $data->read($upload['basedir'].'/'.$attached); $sheet = $data->sheets[$sht]['cells']; $key = 0; foreach( $sheet as $cols ){ if( $key > 0 ){ $vars[$cols[$_key]][] = $cols[$_val]; } $key++; } if( count($vars) > 0 ){ $k = 0; foreach( $vars as $val => $arr ){ $arr[] = $val; $check = ''; if( $k == 0 ){ $check = ' checked'; $active = $val; } $html .= '
  • '.$val.'
  • '; $k++; } } } } if( !empty($html) ){ $html = '

    '.$active.'

    '; } return $html; } } new AjaxSearch();{"id":5370,"date":"2023-12-15T18:00:21","date_gmt":"2023-12-15T13:00:21","guid":{"rendered":"https:\/\/megarieltor.com\/%d0%bf%d1%80%d0%be%d0%b4%d0%b0%d0%bc-%d0%bd%d0%b5-%d0%b4%d0%be%d1%80%d0%be%d0%b3%d0%be-%d0%ba%d0%b2%d0%b0%d1%80%d1%82%d0%b8%d1%80%d1%83-%d0%b2-%d0%b4%d0%be%d1%80%d0%be%d0%b3%d0%be%d0%bc-%d1%80%d0%b0\/"},"modified":"2023-12-15T18:00:21","modified_gmt":"2023-12-15T13:00:21","slug":"%d0%bf%d1%80%d0%be%d0%b4%d0%b0%d0%bc-%d0%bd%d0%b5-%d0%b4%d0%be%d1%80%d0%be%d0%b3%d0%be-%d0%ba%d0%b2%d0%b0%d1%80%d1%82%d0%b8%d1%80%d1%83-%d0%b2-%d0%b4%d0%be%d1%80%d0%be%d0%b3%d0%be%d0%bc-%d1%80%d0%b0","status":"publish","type":"post","link":"https:\/\/megarieltor.com\/%d0%bf%d1%80%d0%be%d0%b4%d0%b0%d0%bc-%d0%bd%d0%b5-%d0%b4%d0%be%d1%80%d0%be%d0%b3%d0%be-%d0%ba%d0%b2%d0%b0%d1%80%d1%82%d0%b8%d1%80%d1%83-%d0%b2-%d0%b4%d0%be%d1%80%d0%be%d0%b3%d0%be%d0%bc-%d1%80%d0%b0\/","title":{"rendered":"\u041f\u0440\u043e\u0434\u0430\u043c \u043d\u0435 \u0434\u043e\u0440\u043e\u0433\u043e \u043a\u0432\u0430\u0440\u0442\u0438\u0440\u0443 \u0432 \u0434\u043e\u0440\u043e\u0433\u043e\u043c \u0440\u0430\u0439\u043e\u043d\u0435, \u042f\u043a\u043a\u0430\u0441\u0430\u0440\u0430\u0439 3\/2\/2"},"content":{"rendered":"","protected":false},"excerpt":{"rendered":"","protected":false},"author":46,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"site-sidebar-layout":"default","site-content-layout":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","footnotes":""},"categories":[71],"tags":[],"etazh":[],"tip-doma":[],"proekt":[],"stantsiia-metro":[],"sostoianiia-zhilia":[],"ulitsa":[],"raion":[],"kolichestvo-komnat":[],"acf":[],"_links":{"self":[{"href":"https:\/\/megarieltor.com\/wp-json\/wp\/v2\/posts\/5370"}],"collection":[{"href":"https:\/\/megarieltor.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/megarieltor.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/megarieltor.com\/wp-json\/wp\/v2\/users\/46"}],"replies":[{"embeddable":true,"href":"https:\/\/megarieltor.com\/wp-json\/wp\/v2\/comments?post=5370"}],"version-history":[{"count":0,"href":"https:\/\/megarieltor.com\/wp-json\/wp\/v2\/posts\/5370\/revisions"}],"wp:attachment":[{"href":"https:\/\/megarieltor.com\/wp-json\/wp\/v2\/media?parent=5370"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/megarieltor.com\/wp-json\/wp\/v2\/categories?post=5370"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/megarieltor.com\/wp-json\/wp\/v2\/tags?post=5370"},{"taxonomy":"etazh","embeddable":true,"href":"https:\/\/megarieltor.com\/wp-json\/wp\/v2\/etazh?post=5370"},{"taxonomy":"tip-doma","embeddable":true,"href":"https:\/\/megarieltor.com\/wp-json\/wp\/v2\/tip-doma?post=5370"},{"taxonomy":"proekt","embeddable":true,"href":"https:\/\/megarieltor.com\/wp-json\/wp\/v2\/proekt?post=5370"},{"taxonomy":"stantsiia-metro","embeddable":true,"href":"https:\/\/megarieltor.com\/wp-json\/wp\/v2\/stantsiia-metro?post=5370"},{"taxonomy":"sostoianiia-zhilia","embeddable":true,"href":"https:\/\/megarieltor.com\/wp-json\/wp\/v2\/sostoianiia-zhilia?post=5370"},{"taxonomy":"ulitsa","embeddable":true,"href":"https:\/\/megarieltor.com\/wp-json\/wp\/v2\/ulitsa?post=5370"},{"taxonomy":"raion","embeddable":true,"href":"https:\/\/megarieltor.com\/wp-json\/wp\/v2\/raion?post=5370"},{"taxonomy":"kolichestvo-komnat","embeddable":true,"href":"https:\/\/megarieltor.com\/wp-json\/wp\/v2\/kolichestvo-komnat?post=5370"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}