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

Подробнее https://formidableforms.com/knowledgebase / frm_validate_field_entry / # kb-change-the-value-in-a-field

Код работает так, как ожидалось, но вместо того, чтобы возвращать точное скопированное значение поля, он отображает его идентификатор.

Я попытался заменить $_POST['item_meta'][140] на get_the_title( $_POST['item_meta'][140] );, но теперь в поле нет значения.

add_filter('frm_validate_field_entry', 'copy_my_field', 10, 3);
function copy_my_field($errors, $posted_field, $posted_value){
  if ( $posted_field->id == 128 ) { //change 25 to the ID of the field to change
    $_POST['item_meta'][$posted_field->id] = $_POST['item_meta'][140]; 
//Change 20 to the ID of the field to copy  }
  return $errors;
}

Спасибо.

1
Danstan Ongubo 15 Мар 2021 в 10:44

1 ответ

Лучший ответ

Если я понимаю ваш вопрос и то, что вы говорите ... $_POST['item_meta'][140] - это идентификатор сообщения, название которого вы хотите найти?

Это не проверено, но если $_POST['item_meta'][140] - идентификатор сообщения, тогда будет получен заголовок.

add_filter('frm_validate_field_entry', 'copy_my_field', 10, 3);
function copy_my_field($errors, $posted_field, $posted_value) {
    if ($posted_field->id == 128) {
        //get the post object from post ID
        $post = get_post($_POST['item_meta'][140]);
        $_POST['item_meta'][$posted_field->id] = $post->post_title;
    }
    return $errors;
}
1
Howard E 16 Мар 2021 в 10:04