12ответ(ов) в теме
василий
не в сети 2 дня
На сайте с 20.03.2013
Участник
Тем 25
Сообщения 178
1
21:33

Здраствуйте.
Попытался добавить в форму свои зависимые поля для выбора города в зависимости от выбора региона по инструкции из статьи

Вы не можете просматривать опубликованные ссылки

Поля добавились в форму и данные из этих полей сохраняются в базу при публикации записи,но при редактировании записи эти поля пустые т.е. не отображаются уже введённые и сохранённые данные.Я думал что я что-то сделал не так поэтому добавил поле точно как в статье

Вы не можете просматривать опубликованные ссылки

но результат тот же в форме редактирование записи сохранённые данные в поле не выводится.
Отсюда вопрос-как вывести уже сохранённые данные в добавленном поле в форме редактирования записи.

0
василий
не в сети 2 дня
На сайте с 20.03.2013
Участник
Тем 25
Сообщения 178
2
21:02

Ответте хоть что нибудь. Может данный функционал не актуален для новой версии плагина?

0
Андрей CS
не в сети 2 дня
На сайте с 30.11.-0001
Администратор
Тем 71
Сообщения 16936
3
21:09

не понятно, о каких зависимых полях идет речь, таких полей никогда не было.

0
василий
не в сети 2 дня
На сайте с 20.03.2013
Участник
Тем 25
Сообщения 178
4
21:20

Я знаю. Я пытался сам добавить в форму зависимые поля на основе статьи

Вы не можете просматривать опубликованные ссылки
0
Андрей CS
не в сети 2 дня
На сайте с 30.11.-0001
Администратор
Тем 71
Сообщения 16936
5
21:24

ну хорошо, тогда указывайте на каком этапе возникает проблема, приводите свой код

0
василий
не в сети 2 дня
На сайте с 20.03.2013
Участник
Тем 25
Сообщения 178
6
21:28

Дело в том что и при точном копироании кода из статьи для добавлении поля типа текст в форме редактирования записи в поле нет уже сохраннёного значения при публикации.

0
василий
не в сети 2 дня
На сайте с 20.03.2013
Участник
Тем 25
Сообщения 178
7
21:35

Я же пробовал добавлять поля так

add_filter('public_form_rcl','add_custom_field_publicform',10,2);
function add_custom_field_publicform($fls,$data){
        //делаем проверку на тип записи
        if($data->post_type!='post') return $fls;

        $fls .= '<label>Страна <span class="required">*</span>:</label> 
       <select id="dhtmlgoodies_country" name="dhtmlgoodies_country" onchange="getCityList(this)">
<option value="">Выберите страну</option>
<option value="ru">Россия</option>
<option value="ua">Украина</option>
<option value="us">США</option>
</select>';
     return $fls;              
    }
	
	add_filter('public_form_rcl','add_custom_field_publicform1',10,2);
function add_custom_field_publicform1($fls1,$data){
        //делаем проверку на тип записи
        if($data->post_type!='post') return $fls1;

       $fls1 .= '<label>Город <span class="required">*</span>:</label> 
       <select id="dhtmlgoodies_city" name="dhtmlgoodies_city">';
        
        return $fls1;  
                   
    }
	add_action('update_post_rcl','save_fielddata_publicform',10,2);
function save_fielddata_publicform($post_ID, $postdata){
    global $wpdb;
    if($postdata['post_type']!='post') return false;
    
    if(isset($_POST['dhtmlgoodies_city'])) $field = $_POST['dhtmlgoodies_city'];
    else $field = 0;
    
    update_post_meta($post_ID,'dhtmlgoodies_city',$field);
}
add_action('update_post_rcl','save_fielddata_publicform1',10,2);
function save_fielddata_publicform1($post_ID, $postdata){
    global $wpdb;
    if($postdata['post_type']!='post') return false;
    
    if(isset($_POST['dhtmlgoodies_country'])) $field = $_POST['dhtmlgoodies_country'];
    else $field = 0;
    
    update_post_meta($post_ID,'dhtmlgoodies_country',$field);
}

Данные с полей сохраняются в базу но форме редактирования поста поля пустые

0
Андрей CS
не в сети 2 дня
На сайте с 30.11.-0001
Администратор
Тем 71
Сообщения 16936
8
10:23

Я так понимаю, вам следует внутри функции add_custom_field_publicform() делать проверку на существующее значение и назначать атрибут selected для тега option, используйте функцию ВП для проверки selected():

$fls .= '<label>Страна <span class="required">*</span>:</label> 
       <select id="dhtmlgoodies_country" name="dhtmlgoodies_country" onchange="getCityList(this)">
<option value="">Выберите страну</option>
<option '.selected($value,'ru',false).' value="ru">Россия</option>
<option '.selected($value,'ua',false).' value="ua">Украина</option>
<option '.selected($value,'us',false).' value="us">США</option>
</select>';

значение переменной $value получайте из произвольного поля

0
василий
не в сети 2 дня
На сайте с 20.03.2013
Участник
Тем 25
Сообщения 178
9
20:00

Спасибо

0
василий
не в сети 2 дня
На сайте с 20.03.2013
Участник
Тем 25
Сообщения 178
10
21:19

А как вывести значение города при редактировании записи ведь сравнивать несчем

0
Андрей CS
не в сети 2 дня
На сайте с 30.11.-0001
Администратор
Тем 71
Сообщения 16936
11
22:00

при редактировании записи в адресной строке обязательно передается идентификатор записи, используйте его, чтобы получить у публикации текущие значения произвольного поля.
Кроме того, в фильтре public_form_rcl вы можете получить все данные редактируемого поста из объекта $data

0
василий
не в сети 2 дня
На сайте с 20.03.2013
Участник
Тем 25
Сообщения 178
12
22:51

Спасибо большое

0
Тема закрыта. Публикация новых сообщений запрещена.