В плагине wp я добавляю дополнительное поле для загрузки, чтобы он загружал документ и отображал его URL.
Вот что у меня есть:
add_action( 'show_user_profile', 'extra_user_profile_fields' );
add_action( 'edit_user_profile', 'extra_user_profile_fields' );
function extra_user_profile_fields( $user ) {
?>
<h3><?php _e("Extra Information", "blank"); ?></h3>
<table class="form-table">
<tr>
<th scope="row">My Document</th>
<td><input type="file" name="my_document" value="" />
<?php
$doc = get_user_meta( $user->ID, 'my_document', true );
if (!isset($doc['error'])) {
$doc = $doc['url'];
echo "<img src='$doc' />";
} else {
$doc = $doc['error'];
echo $doc;
}
?>
</td>
</tr>
</table>
<?php
}
add_action( 'personal_options_update', 'yoursite_save_extra_user_profile_fields' );
add_action( 'edit_user_profile_update', 'yoursite_save_extra_user_profile_fields' );
function yoursite_save_extra_user_profile_fields( $user_id ) {
if ( !current_user_can( 'edit_user', $user_id ) )
return false;
if( $_FILES['my_document']['error'] === UPLOAD_ERR_OK ) {
$_POST['action'] = 'wp_handle_upload';
$upload_overrides = array( 'test_form' => false );
$upload = wp_handle_upload( $_FILES['my_document'], $upload_overrides );
update_user_meta( $user_id, 'my_document', $upload );
}
}
Поле загрузки фактически отображается на странице профиля пользователя, и когда я прикрепляю файл, оно отображается, и, наконец, когда я нажимаю кнопку обновить кнопку «Обновить профиль», я получаю «Профиль обновлен».вверху, но я не вижу ничего в папке загрузки, а также там нет ссылки / URL.
Как это исправить?