用户个人资料中添加字段上的wp插件未发生文件上传

时间:2019-02-24 22:50:59

标签: php wordpress

在wp插件中,我添加了一个额外的上载字段,以便它可以上载文档并显示其网址。

这就是我所拥有的:

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 );
    }
}

上载字段实际上显示在用户个人资料页面上,当我附加文件时显示,最后单击更新“更新个人资料”按钮时,我得到“个人资料已更新”。在顶部,但我看不到上载文件夹中的任何内容,也没有显示任何链接/网址。

我该如何解决?

0 个答案:

没有答案