为每个用户保存自定义数据

时间:2011-02-11 作者:lostInTransit

我允许用户在我的wordpress网站上保存一些注释。他们只有在登录网站后才能这样做。

现在,我想将他们的笔记保存在数据库表中,并将其与用户id关联,即如果用户保存了2个笔记,当他们登录并转到“我的页面”时,他们应该能够看到他们保存的2个笔记。

有人能告诉我怎么做吗?我可以在用户注册时找到许多关于保存自定义用户元数据的信息。但在用户登录后,找不到有关保存与用户帐户关联的信息的任何帮助。

非常感谢。

1 个回复
最合适的回答,由SO网友:Bainternet 整理而成

看看update_user_meta如果用户正在注册或登录,您可以保存用户数据,这只是您传递给它的用户ID的问题。

在登录后保存用户数据的功能中说:

function save_user_data_7231(){
    global $current_user;
    if is_user_logged_in{ //check if user is logged in.
        if (isset($_POST[\'Notes\'])){
            // get current user info
            get_currentuserinfo();
            $old_notes = get_user_meta($current_user->ID, \'user_notes\', true);
            if (isset($old_notes)&& is_array($old_notes)){
                //if we saved already more the one notes
                $old_notes[] = $_POST[\'Notes\'];
                update_user_meta( $current_user->ID, \'user_notes\', $old_notes);
            }
            if (isset($old_notes)&& !is_array($old_notes)){
                //if we saved only one note before
                $new_notes = array($old_notes,$_POST[\'Notes\']);
                update_user_meta( $current_user->ID, \'user_notes\', $new_notes)
            }
            if (!isset($old_notes)){
                //first note we are saving fr this user
                update_user_meta( $current_user->ID, \'user_notes\', $_POST[\'Notes\'])
            }
        }
    } 
}
它们将显示您可以使用的注释get_user_meta

function get_user_notes_654(){
    global $current_user;
    if is_user_logged_in{ //check if user is logged in.
        // get current user info
        get_currentuserinfo();
        $old_notes = get_user_meta($current_user->ID, \'user_notes\', true);
        if (!isset($old_notes)){
            $re = \'No Notes YET!\';
        }
        if (isset($old_notes)){//we have notes. Removed the extra ! here.
            if (is_array($old_notes)){//more then one
                foreach($old_notes as $note){
                    $re .= \'<strong>note:</strong>\' . $note . \'<br />\'; 
                }
            }else{//just one
                $re = \'<strong>note:</strong>\' . $old_notes . \'<br />\';
            }
        }
        re .=\'//add note form  would come here\';
        return $re;
    }
}
希望这有帮助

结束

相关推荐