Я пытаюсь выяснить, как программно установить значение поля файла, вложенного в поле повторителя.
У меня есть поле повторителя под названием «документы», и я заполняю его данными из API через код ниже:
// Process Documents
$documents = $report_item->Documents;
$formatted_documents = array();
foreach ($documents as $doc) {
$file_name = str_replace("/", "-", trim(str_replace(" ", "-", $report_item->ReportTitle)) . "--" . trim(str_replace(" ", "-", $doc->DocumentTitle)) . ".pdf");
$file_data = q4_upload_file($file_name, $doc->DocumentPath, $post_id);
array_push($formatted_documents, array(
"document_category" => $doc->DocumentCategory,
"document_file_size" => $doc->DocumentFileSize,
"document_file_type" => $doc->DocumentFileType,
"document_id" => $doc->DocumentId,
"document_order" => $doc->DocumentOrder,
"document_path" => $doc->DocumentPath,
"document_title" => $doc->DocumentTitle,
"document_type" => $doc->DocumentType,
"language_id" => $doc->LanguageId,
"report_workflow_id" => $doc->ReportWorkflowId,
"revision_number" => $doc->RevisionNumber,
"thumbnail_path" => $doc->ThumbnailPath,
"workflow_id" => $doc->WorkflowId,
"file" => $file_data
));
}
update_field( 'documents', $formatted_documents, $post_id );
Теперь все данные сохраняются правильно, кроме файла.
В настоящее время у меня есть настраиваемое поле файла для использования массива в качестве возвращаемого значения и это массив, который я пытаюсь сохранить для его значения.
return array(
'pid' =>$post_id,
'url' => $upload_url . "q4-reports/" . $file_name,
'file'=>$file,
'attach_id'=>$attachment_id,
'filename' => $file_name
);
К сожалению, это не работает. Я также попытался сделать так, чтобы возвращаемое поле имело значение 'url', а переменная $ file_data в первом фрагменте кода была URL-адресом файла в папке wp-contents / uploads /, но это тоже не сработало.