/** * Sets the enctype for file upload forms. * * @since 1.0 * @return str */ function kbs_maybe_set_enctype() { if (kbs_file_uploads_are_enabled()) { $output = ' enctype="multipart/form-data"'; echo apply_filters('kbs_maybe_set_enctype', $output); } }
/** * Attach files to a ticket. * * @since 1.0 * @param arr $attachment $_FILES * @param int $ticket_id The ticket ID * @return int The attachment ID. */ function kbs_attach_file_to_ticket($attachment, $ticket_id) { if (!kbs_file_uploads_are_enabled()) { return false; } add_filter('upload_dir', 'kbs_set_upload_dir'); if ($_FILES[$attachment]['error'] !== UPLOAD_ERR_OK) { return false; } require_once ABSPATH . 'wp-admin/includes/image.php'; require_once ABSPATH . 'wp-admin/includes/file.php'; require_once ABSPATH . 'wp-admin/includes/media.php'; $attach_id = media_handle_upload($attachment, $ticket_id); return $attach_id; }
/** * Display a form file upload field. * * @since 1.0 * @param obj $field Field post object * @param arr $settings Field settings * @return str $type input field */ function kbs_display_form_file_upload_field($field, $settings) { if (!kbs_file_uploads_are_enabled()) { return; } $placeholder = !empty($settings['placeholder']) ? ' placeholder="' . esc_attr($settings['placeholder']) . '"' : ''; $class = !empty($settings['input_class']) ? esc_attr($settings['input_class']) : ''; $multiple = kbs_get_option('file_uploads') > 1 ? ' multiple' : ''; $class = implode(' ', array_map('sanitize_html_class', explode(' ', $class))); do_action('kbs_before_form_field', $field, $settings); do_action('kbs_before_form_' . $settings['type'] . '_field', $field, $settings); $output = sprintf('<input type="file" name="%1$s[]" id="%1$s"%2$s%3$s%4$s />', esc_attr($field->post_name), !empty($class) ? ' class="' . $class . ' kbs-input"' : '', $placeholder, $multiple); $output = apply_filters('kbs_display_form_file_upload_field', $output, $field, $settings); echo $output; do_action('kbs_after_form_field', $field, $settings); do_action('kbs_after_form_' . $settings['type'] . '_field', $field, $settings); }