HEX
Server: Apache/2.4.63 (Unix)
System: Linux pinkman.beget.ru 5.10.258-0-beget-acl #1 SMP Mon Jun 8 11:35:04 UTC 2026 x86_64
User: kulikosl (3031)
PHP: 8.4.6
Disabled: NONE
Upload Files
File: /home/k/kulikosl/kulikosl.beget.tech/public_html/back/zootheme 2612/functions/fields.php
<?php
add_action('add_meta_boxes', 'my_extra_fields', 1);

function my_extra_fields() {
	add_meta_box( 'extra_fields', 'Параметры', 'extra_fields_clinics_func', 'clinics', 'normal', 'high'  );
	add_meta_box( 'extra_fields', 'Параметры', 'extra_fields_clinics_func', 'pharmacy', 'normal', 'high'  );
	add_meta_box( 'extra_fields', 'Параметры', 'extra_fields_clinics_func', 'grooming', 'normal', 'high'  );
	add_meta_box( 'extra_fields', 'Параметры', 'extra_fields_clinics_func', 'shops', 'normal', 'high'  );
	add_meta_box( 'extra_fields', 'Параметры', 'extra_fields_services_func', 'services', 'normal', 'high'  );
    add_meta_box( 'extra_fields', 'Параметры', 'extra_fields_sto_func', 'sto', 'normal', 'high'  );
    add_meta_box( 'extra_fields', 'Параметры', 'extra_fields_doctors_func', 'doctors', 'normal', 'high'  );
    add_meta_box( 'extra_fields', 'Параметры', 'extra_fields_benefits_func', 'benefits', 'normal', 'high'  );
    add_meta_box( 'extra_fields', 'Параметры', 'extra_fields_actions_func', 'actions', 'normal', 'high'  );
       

global $post;

    if(!empty($post))
    {
        $pageTemplate = get_post_meta($post->ID, '_wp_page_template', true);

        if($pageTemplate == 'about.php' )
        {
         add_meta_box( 'extra_fields', 'О компании', 'extra_fields_about_func', 'page', 'normal', 'high'  ); 
         } 
         
         
    }	 
}



// код блока
function extra_fields_benefits_func( $post ){
?>

<p><b>Текст</b><Br />
<textarea name="extra[text]" style="width: 100%" rows="3"><?php echo get_post_meta($post->ID,'text',1);?></textarea>
</p>
 
 <input type="hidden" name="extra_fields_nonce" value="<?php echo wp_create_nonce(__FILE__); ?>" />
<?php
} 



// код блока
function extra_fields_actions_func( $post ){
?>

<p><b>Кратко</b><Br />
<textarea name="extra[short]" style="width: 100%" rows="3"><?php echo get_post_meta($post->ID,'short',1);?></textarea>
</p>
 
 <input type="hidden" name="extra_fields_nonce" value="<?php echo wp_create_nonce(__FILE__); ?>" />
<?php
} 









// код блока
function extra_fields_services_func( $post ){
global $wpdb;
$sorts=array();
if(get_post_meta($post->ID,'clinics',true))$sorts=get_post_meta($post->ID,'clinics',1);  
?>

<p><b>Ярлык (только у родительской страницы)</b><Br />
<textarea name="extra[slug]" style="width: 100%" rows="1"><?php echo get_post_meta($post->ID,'slug',1);?></textarea>
</p>
<p><b>Короткий текст (в баннер страницы)</b><Br />
<textarea name="extra[short]" style="width: 100%" rows="10"><?php echo get_post_meta($post->ID,'short',1);?></textarea>
</p> 
<p><b>Выберите клиники, оказывающие данную услугу</b><Br />

<ul class="adds">
<input name="sorts[]" value="111111111111" type="hidden">	                
<?php 
 

$sel=$wpdb->get_results("SELECT ID,post_title FROM $wpdb->posts WHERE post_type='clinics' AND post_parent=0 AND post_status='publish'",ARRAY_A);
if($sel){
foreach($sel as $se){
 
?>
<li><label><input name="clinics[]" value="<?php echo $se['ID'];?>" type="checkbox" <?php if(in_array($se['ID'], $sorts))echo 'checked';?>><?php echo $se['post_title'];?></label>
<?php 
  
}		           
}		           
?>  
</ul>
</p> 
<p><b>Поле для скрипта (не для карты)</b><Br />
<textarea name="extra[reserv]" style="width: 100%" rows="10"><?php echo get_post_meta($post->ID,'reserv',1);?></textarea>
</p> 
 <input type="hidden" name="extra_fields_nonce" value="<?php echo wp_create_nonce(__FILE__); ?>" />
<?php
} 
 
// код блока
function extra_fields_doctors_func( $post ){
?>
<?php $number=1; $name='Маленькая фотография 1к1'; include (TEMPLATEPATH . '/functions/loadcustomeimage.php'); ?>
<p><b>Кратко</b><Br />
<textarea name="extra[short]" style="width: 100%" rows="2"><?php echo get_post_meta($post->ID,'short',1);?></textarea>
</p>
<p><b>Стаж</b><Br />
<textarea name="extra[staj]" style="width: 100%" rows="1"><?php echo get_post_meta($post->ID,'staj',1);?></textarea>
</p>


<p><b>Дипломы</b><Br />
<div  class="bgrays">
<div id="result">
<?php if(get_post_meta($post->ID,'sort',true)){
	
 
	foreach(get_post_meta($post->ID,'sort',1) as $img){
	 $thumb_url = wp_get_attachment_image_src($img,'medium', true);
	echo '<div class="imblock" style="background-image:url('.$thumb_url[0].')"><input type="hidden" value="'.$img.'" name="sort[]"><span class="deletegallimage"><i class="fa fa-trash-o" aria-hidden="true"></i></span></div>';
	}
}?>	
</div>
<div  style="clear: both"></div>
</div>
<p></p>
<span class="btn addimage">Добавить изображение</span> 
</p>
<p><b>Расписание (код)</b><Br />
<textarea name="extra[rasp]" style="width: 100%" rows="4"><?php echo get_post_meta($post->ID,'rasp',1);?></textarea>
</p>

<p><b>Показывать на страницах услуг</b><Br />

<ul class="adds">
<input name="sorts[]" value="111111111111" type="hidden">	                
<?php 
global $wpdb;
$sorts=array();
if(get_post_meta($post->ID,'sorts',true))$sorts=get_post_meta($post->ID,'sorts',1);   

$sel=$wpdb->get_results("SELECT ID,post_title FROM $wpdb->posts WHERE post_type='services' AND post_parent=0 AND post_status='publish'",ARRAY_A);
if($sel){
foreach($sel as $se){
 
?>
<li><label><input name="sorts[]" value="<?php echo $se['ID'];?>" type="checkbox" <?php if(in_array($se['ID'], $sorts))echo 'checked';?>><?php echo $se['post_title'];?></label>
<?php 
$id=$se['ID'];
$sel1=$wpdb->get_results("SELECT ID,post_title FROM $wpdb->posts WHERE post_type='services' AND post_parent=$id AND post_status='publish'",ARRAY_A);
if($sel1)
{echo '<ul>';
foreach($sel1 as $se){
?>
<li><label><input name="sorts[]" value="<?php echo $se['ID'];?>"  type="checkbox"  <?php if(in_array($se['ID'], $sorts))echo 'checked';?>><?php echo $se['post_title'];?></label>
<?php 
}
echo '</ul>';
}
}		           
}		           
?>  
		              
	                                     
                </ul>




</p> 
 <input type="hidden" name="extra_fields_nonce" value="<?php echo wp_create_nonce(__FILE__); ?>" />
<?php
}






// код блока
function extra_fields_clinics_func( $post ){
?>
<p><b>Название клиники</b><Br />
<textarea name="extra[title]" style="width: 100%" rows="1"><?php echo get_post_meta($post->ID,'title',1);?></textarea>
</p>
<p><b>Адрес</b><Br />
<textarea name="extra[adress]" id="ya_address" style="width: 100%" rows="1"><?php echo get_post_meta($post->ID,'adress',1);?></textarea><span id="ya_address" class="btn">Получить координаты</span>
<br><input id="ya_latitude" readonly name="extra[ya_latitude]" value="<?php echo get_post_meta($post->ID,'ya_latitude',1);?>">
<br><input id="ya_longitude" readonly name="extra[ya_longitude]" value="<?php echo get_post_meta($post->ID,'ya_longitude',1);?>">
<br><input id="yandexadress" readonly name="extra[yandexadress]" style="width: 100%" value="<?php echo get_post_meta($post->ID,'yandexadress',1);?>">
</p>
<p><b>Метро</b><Br />
<textarea name="extra[metro]" style="width: 100%" rows="1"><?php echo get_post_meta($post->ID,'metro',1);?></textarea>
</p>
<p><b>Уточнение</b><Br />
<textarea name="extra[metro1]" style="width: 100%" rows="1"><?php echo get_post_meta($post->ID,'metro1',1);?></textarea>
</p>
<p><b>Время работы</b><Br />
<textarea name="extra[time]" style="width: 100%" rows="1"><?php echo get_post_meta($post->ID,'time',1);?></textarea>
</p> 
<p><b>Телефон</b><Br />
<textarea name="extra[phone]" style="width: 100%" rows="1"><?php echo get_post_meta($post->ID,'phone',1);?></textarea>
</p> 
<?php $dops=array();
if(get_post_meta($post->ID,'dops',true))$dops=get_post_meta($post->ID,'dops',1);?>
<p><b>Груминг салон</b><Br />
<input type="checkbox" name="dops[]" value="Груминг" <?php if(in_array('Груминг', $dops))echo 'checked';?>  >
</p>
<p><b>Аптека</b><Br />
<input type="checkbox" name="dops[]" value="Аптека"  <?php if(in_array('Аптека', $dops))echo 'checked';?> >
</p>

<p><b>Фото</b><Br />
<div  class="bgrays">
<div id="result">
<?php if(get_post_meta($post->ID,'sort',true)){
	
 
	foreach(get_post_meta($post->ID,'sort',1) as $img){
	 $thumb_url = wp_get_attachment_image_src($img,'medium', true);
	echo '<div class="imblock" style="background-image:url('.$thumb_url[0].')"><input type="hidden" value="'.$img.'" name="sort[]"><span class="deletegallimage"><i class="fa fa-trash-o" aria-hidden="true"></i></span></div>';
	}
}?>	
</div>
<div  style="clear: both"></div>
</div>
<p></p>
<span class="btn addimage">Добавить изображение</span> 
</p>

<p><b>Выберите врачей клиники</b><Br />

<ul class="adds">
 	                
<?php global $wpdb;
$sorts=array();
if(get_post_meta($post->ID,'doctors',true))$sorts=get_post_meta($post->ID,'doctors',1); 

$sel=$wpdb->get_results("SELECT ID,post_title FROM $wpdb->posts WHERE post_type='doctors' AND post_parent=0 AND post_status='publish'",ARRAY_A);
if($sel){
foreach($sel as $se){
 
?>
<li><label><input name="doctors[]" value="<?php echo $se['ID'];?>" type="checkbox" <?php if(in_array($se['ID'], $sorts))echo 'checked';?>><?php echo $se['post_title'];?></label>
<?php 
  
}		           
}		           
?>  
</ul>
</p>
<p><b>Скрипт карты</b><Br />
<textarea name="extra[map]" style="width: 100%" rows="6"><?php echo get_post_meta($post->ID,'map',1);?></textarea>
</p>
<p><b>Id цен (только число берем <a href="/wp-admin/options-general.php?page=zoo_port_price_options" target="_blank">отсюда</a></b><Br />
<input name="extra[reserv]" type="number" style="width: 300px" value="<?php echo get_post_meta($post->ID,'reserv',1);?>">
</p> 
<p><b>Поле для отзывов</b><Br />
<textarea name="extra[reviews]" style="width: 100%" rows="6"><?php echo get_post_meta($post->ID,'reviews',1);?></textarea>
</p>
<input type="hidden" name="extra_fields_nonce" value="<?php echo wp_create_nonce(__FILE__); ?>" />
<?php
} 
 	
 















// код блока
function extra_fields_about_func( $post ){
?>
<input type="hidden" name="extra[test]"  value="1">

<p><b>Фото в слайдер</b><Br />
<div  class="bgrays">
<div id="result">
<?php if(get_post_meta($post->ID,'sort',true)){
	
 
	foreach(get_post_meta($post->ID,'sort',1) as $img){
	 $thumb_url = wp_get_attachment_image_src($img,'medium', true);
	echo '<div class="imblock" style="background-image:url('.$thumb_url[0].')"><input type="hidden" value="'.$img.'" name="sort[]"><span class="deletegallimage"><i class="fa fa-trash-o" aria-hidden="true"></i></span></div>';
	}
}?>	
	
	
	
	
</div>

<div  style="clear: both"></div>
</div>
<p></p>
<span class="btn addimage">Добавить изображение</span> 
</p>
<input type="hidden" name="extra_fields_nonce" value="<?php echo wp_create_nonce(__FILE__); ?>" />
<?php
}











// код блока
function extra_fields_sto_func( $post ){
?>
<p><b>Об СТО (небольшой текст)</b><Br />
<textarea name="extra[about]" style="width: 100%" rows="10"><?php echo get_post_meta($post->ID,'about',1);?></textarea>
</p>
<h1>Доступы</h1>
<p><b>Логин</b><Br />
<input name="extra[user_email]" style="width: 500px"   type="email" value="<?php echo get_post_meta($post->ID,'user_email',1);?>">
</p>
<p><b>Пароль</b><Br />
<input name="extra[user_password]" style="width: 500px"   type="text" value="<?php echo get_post_meta($post->ID,'user_password',1);?>">
</p>
<h1>Контакты</h1>
<p><b>Телефон</b><Br />
<input name="extra[sto_phone]" class="phones" style="width: 500px" type="text" value="<?php echo get_post_meta($post->ID,'sto_phone',1);?>">
</p> 
<p><b>Телефон (дополнительный)</b><Br />
<input name="extra[sto_phone_1]" class="phones" style="width: 500px" type="text" value="<?php echo get_post_meta($post->ID,'sto_phone_1',1);?>"></p>
<p><b>Telegram</b><Br />
<textarea name="extra[sto_telegram]" class="tele" style="width: 500px" rows="1"><?php echo get_post_meta($post->ID,'sto_telegram',1);?></textarea>
</p>
<p><b>WhatsApp</b><Br />
<textarea name="extra[sto_whatapp]" style="width: 500px" rows="1"><?php echo get_post_meta($post->ID,'sto_whatapp',1);?></textarea>
</p>
<p><b>Instagramm (ссылка)</b><Br />
<input name="extra[sto_inst]" style="width: 100%" type="url" value="<?php echo get_post_meta($post->ID,'sto_inst',1);?>">
</p>
<p><b>Сайт (ссылка)</b><Br />
<input name="extra[sto_url]" style="width: 100%" type="url" value="<?php echo get_post_meta($post->ID,'sto_url',1);?>">
</p>
<p><b>Адрес СТО (город, улица и т.д)</b><Br />
Введите полный адрес вашего СТО. При необходимости вы можете исправить его положение на карте, нажав "Показать на карте".
<input name="extra[sto_addr]" style="width: 100%" id="getadress" type="text" value="<?php echo get_post_meta($post->ID,'sto_addr',1);?>">
</p>
<?php 
$coords='55.76, 37.64';
$center='Россия, Москва, Тверская, д. 7';	

if(get_post_meta($post->ID,'sto_coords',true)){
$coords=get_post_meta($post->ID,'sto_coords',1);	
}
if(get_post_meta($post->ID,'sto_adress',true)){
$center=get_post_meta($post->ID,'sto_adress',1);	
}

//echo '<br>'.$center;
//echo '<br>'.$coords;
?>
<p>
<button id="show" class="btn button" data-coords="<?php echo $coords;?>" data-adres="<?php echo $center;?>">Показать на карте</button>
</p>

 
<input name="extra[sto_coords]" readonly id="ypoint" style="width: 100%" type="hiddens" value="<?php echo $coords;?>">
 
 
<input name="extra[sto_adress]" readonly id="address" style="width: 100%" type="hiddens" value="<?php echo $center;?>">
<input name="extra[sto_city]" readonly id="sto_city" style="width: 100%" type="hiddens" value="<?php echo get_post_meta($post->ID,'sto_city',1);?>">
<input name="extra[sto_region]" readonly id="sto_region" style="width: 100%" type="hiddens" value="<?php echo get_post_meta($post->ID,'sto_region',1);?>">
<input name="extra[sto_country]" readonly id="sto_country" style="width: 100%" type="hiddens" value="<?php echo get_post_meta($post->ID,'sto_country',1);?>">
 

<div id="editor"></div>
<div id="map" style="height: 400px; border: 0px solid red"></div>








<input type="hidden" name="extra_fields_nonce" value="<?php echo wp_create_nonce(__FILE__); ?>" />
<?php
} 
 	
 


// код блока
function extra_fields_users_func( $post ){
?>
<p><b>Фамилия</b><Br />
<textarea name="extra[last_name]" style="width: 100%" rows="1"><?php echo get_post_meta($post->ID,'last_name',1);?></textarea>
</p>
<p><b>Имя</b><Br />
<textarea name="extra[first_name]" style="width: 100%" rows="1"><?php echo get_post_meta($post->ID,'first_name',1);?></textarea>
</p>

<p><b>Email</b><Br />
<textarea name="extra[user_email]" style="width: 100%" rows="1"><?php echo get_post_meta($post->ID,'user_email',1);?></textarea>
</p>
 
<p><b>VK ID</b><Br />
<textarea name="extra[vk_id]" style="width: 100%" rows="1"><?php echo get_post_meta($post->ID,'vk_id',1);?></textarea>
</p>
  
<p><b>Пароль</b><Br />
<textarea name="extra[user_password]" style="width: 100%" rows="1"><?php echo get_post_meta($post->ID,'user_password',1);?></textarea>
</p>
 
<input type="hidden" name="extra_fields_nonce" value="<?php echo wp_create_nonce(__FILE__); ?>" />
<?php
}

 
 // включаем обновление полей при сохранении
add_action('save_post', 'my_extra_fields_update', 0);

/* Сохраняем данные, при сохранении поста */
function my_extra_fields_update( $post_id ){
	
	
 
	
	
	// базовая проверка
	if (
		   empty( $_POST['extra'] )
		|| ! wp_verify_nonce( $_POST['extra_fields_nonce'], __FILE__ )
		|| wp_is_post_autosave( $post_id )
		|| wp_is_post_revision( $post_id )
	)
		return false;

 

	// Все ОК! Теперь, нужно сохранить/удалить данные
	if($_POST['sort']):update_post_meta($post_id,'sort',$_POST['sort']);else:delete_post_meta($post_id,'sort');endif;
	if($_POST['sorts']):update_post_meta($post_id,'sorts',$_POST['sorts']);else:delete_post_meta($post_id,'sorts');endif;
     if($_POST['dops']):update_post_meta($post_id,'dops',$_POST['dops']);else:delete_post_meta($post_id,'dops');endif;

	if($_POST['crit']):update_post_meta($post_id,'crit',$_POST['crit']);else:delete_post_meta($post_id,'crit');endif;
	if($_POST['ansi']):update_post_meta($post_id,'ansi',$_POST['ansi']);else:delete_post_meta($post_id,'ansi');endif;
	if($_POST['contest']):update_post_meta($post_id,'contest',$_POST['contest']);else:delete_post_meta($post_id,'contest');endif;
	if($_POST['clinics']):update_post_meta($post_id,'clinics',$_POST['clinics']);else:delete_post_meta($post_id,'clinics');endif;
if($_POST['doctors']):update_post_meta($post_id,'doctors',$_POST['doctors']);else:delete_post_meta($post_id,'doctors');endif;

	
	
	for ($i = 1; $i <= 100; $i++) {
	delete_post_meta($post_id,'name_'.$i);
	delete_post_meta($post_id,'max_'.$i);
	delete_post_meta($post_id,'min_'.$i);
	}
	
	
	
	
	//$_POST['extra'] = array_map( 'sanitize_text_field', $_POST['extra'] );
	foreach( $_POST['extra'] as $key => $value ){
		if( empty($value) ){
			delete_post_meta( $post_id, $key ); // удаляем поле если значение пустое
			continue;
		}

		update_post_meta( $post_id, $key, $value ); // add_post_meta() работает автоматически
	}
	  
	return $post_id;
}