'jpg,jpeg,png,pdf,doc,docx','max_size_mb'=>'5','multiple'=>'0','save_to_media'=>'1')); } public function render($field,$value='') { ?>
conditional_attrs($field); ?> data-field-id=""> render_label($field); ?> class="wmf-input wmf-file-input">

Erlaubt: — Max. MB

render_description($field); ?>
'.'.$t,$types)); } public function validate($value,$field) { $key=$field['id']; if(!isset($_FILES['wmf_files']['error'][$key])) return true; $err=$_FILES['wmf_files']['error'][$key]; if(is_array($err)) $err=array_filter($err,fn($e)=>$e!==UPLOAD_ERR_NO_FILE); if(empty($err)||$err===UPLOAD_ERR_NO_FILE) { if(!empty($field['required'])&&$field['required']==='1') return sprintf('Bitte laden Sie eine Datei für „%s" hoch.',$field['label']); return true; } $max=intval($field['max_size_mb']??5)*1024*1024; $sizes=$_FILES['wmf_files']['size'][$key]; if(is_array($sizes)) { foreach($sizes as $s) if($s>$max) return sprintf('Max. %s MB erlaubt.',$field['max_size_mb']??5); } elseif($sizes>$max) return sprintf('Max. %s MB erlaubt.',$field['max_size_mb']??5); return true; } public function sanitize($v,$f) { return $v; } public static function handle_upload($field,$form_id) { $key=$field['id']; if(!isset($_FILES['wmf_files']['tmp_name'][$key])) return array(); require_once ABSPATH.'wp-admin/includes/image.php'; require_once ABSPATH.'wp-admin/includes/file.php'; require_once ABSPATH.'wp-admin/includes/media.php'; $tmp=$_FILES['wmf_files']['tmp_name'][$key]; $names=$_FILES['wmf_files']['name'][$key]; $results=array(); if(!is_array($tmp)) { $tmp=array($tmp); $names=array($names); } foreach($tmp as $i=>$t) { if(empty($t)||!is_uploaded_file($t)) continue; $upload=wp_handle_upload(array( 'tmp_name'=>$t,'name'=>$names[$i],'type'=>mime_content_type($t),'error'=>0,'size'=>filesize($t) ),array('test_form'=>false)); if(isset($upload['url'])) { if(!empty($field['save_to_media'])&&$field['save_to_media']==='1') { $att=array('post_mime_type'=>$upload['type'],'post_title'=>sanitize_file_name($names[$i]),'post_content'=>'','post_status'=>'inherit'); $att_id=wp_insert_attachment($att,$upload['file']); wp_update_attachment_metadata($att_id,wp_generate_attachment_metadata($att_id,$upload['file'])); $results[]=array('url'=>$upload['url'],'attachment_id'=>$att_id,'name'=>$names[$i]); } else { $results[]=array('url'=>$upload['url'],'name'=>$names[$i]); } } } return $results; } }