将前端注册表中添加的额外字段插入数据库

时间:2013-03-13 作者:MidhuN

我在自定义注册表中添加了一些额外字段,如first\\u name、middle name、last\\u name等。我还想在DB中添加这些细节。现在,数据库中只插入用户名、电子邮件、显示名和user\\u nice name。如何将前端添加的额外字段添加到DB?

下面是我用来创建登录/注册/忘记页面的模板

<?php
/*
Template Name: Registration Template
*/
get_header();?>
<div id="login-register-password">

<?php global $user_ID, $user_identity; get_currentuserinfo(); if (!$user_ID) { ?>

<ul class="tabs_login">
    <li class="active_login"><a href="#tab1_login">Login</a></li>
    <li><a href="#tab2_login">Register</a></li>
    <li><a href="#tab3_login">Forgot?</a></li>
</ul>
<div class="tab_container_login">
    <div id="tab1_login" class="tab_content_login">

        <?php $register = $_GET[\'register\']; $reset = $_GET[\'reset\']; if ($register == true) { ?>

        <h3>Success!</h3>
        <p>Check your email for the password and then return to log in.</p>

        <?php } elseif ($reset == true) { ?>

        <h3>Success!</h3>
        <p>Check your email to reset your password.</p>

        <?php } else { ?>

        <?php } ?>

        <form method="post" action="<?php bloginfo(\'url\') ?>/wp-login.php" class="wp-user-form">
            <div class="username">
                <label for="user_login"><?php _e(\'Username\');_e("/");_e("Email"); ?>: </label>
                <input type="text" name="log" value="<?php echo esc_attr(stripslashes($user_login)); ?>" size="20" id="user_login" tabindex="11" />
            </div>
            <div class="password">
                <label for="user_pass"><?php _e(\'Password\'); ?>: </label>
                <input type="password" name="pwd" value="" size="20" id="user_pass" tabindex="12" />
            </div>
            <div class="login_fields">
                <div class="rememberme">
                    <label for="rememberme">
                        <input type="checkbox" name="rememberme" value="forever" checked="checked" id="rememberme" tabindex="13" /> Remember me
                    </label>
                </div>
                <?php do_action(\'login_form\'); ?>
                <input type="submit" name="user-submit" value="<?php _e(\'Login\'); ?>" tabindex="14" class="user-submit" />
                <input type="hidden" name="redirect_to" value="<?php echo $_SERVER[\'REQUEST_URI\']; ?>" />
                <input type="hidden" name="user-cookie" value="1" />
            </div>
        </form>
    </div>
    <div id="tab2_login" class="tab_content_login" style="display:none;">
        <h3>Sign Up</h3>
        <p>We encourage you to do a one-time signup with us to be able to download content from this website</p>
        <form method="post" action="<?php echo site_url(\'wp-login.php?action=register\', \'login_post\') ?>" class="wp-user-form">
            <div class="username">
                <label for="title"><?php _e(\'Title\'); ?>: </label>
                <Select>
                    <option>Mr</option>
                    <option>Ms</option>
                    <option>Mrs</option>
                </select>
            </div>
            <div class="username">
                <label for="user_login"><?php _e(\'First Name\'); ?>: </label>
                <input type="text" name="first_name" value="<?php echo esc_attr(stripslashes($first_name)); ?>" size="20" id="first_name" tabindex="101" required/>
            </div>
            <div class="username">
                <label for="user_login"><?php _e(\'Middle Name\'); ?>: </label>
                <input type="text" name="middle_name" value="<?php echo esc_attr(stripslashes($middle_name)); ?>" size="20" id="middle_name" tabindex="101" />
            </div>
            <div class="username">
                <label for="user_login"><?php _e(\'Last Name\'); ?>: </label>
                <input type="text" name="last_name" value="<?php echo esc_attr(stripslashes($last_name)); ?>" size="20" id="last_name" tabindex="101" required/>
            </div>
            <div class="username">
                <label for="user_login"><?php _e(\'Username\'); ?>: </label>
                <input type="text" name="user_login" value="<?php echo esc_attr(stripslashes($user_name)); ?>" size="20" id="user_login" tabindex="101" required />
            </div>
            <div class="password">

                <label for="user_email"><?php _e(\'Email Address\'); ?>: </label>
                <input type="text" name="user_email" value="<?php echo esc_attr(stripslashes($user_email)); ?>" size="25" id="user_email" tabindex="102" required/>
            </div>
            <div class="password">
                <label for="organisation"><?php _e(\'Organisation\'); ?>: </label>
                <input type="text" name="organisation" value="<?php echo esc_attr(stripslashes($user_org)); ?>" size="25" id="organisation" tabindex="102" />
            </div>
            <div class="password">
                <label for="Designation"><?php _e(\'Designation\'); ?>: </label>
                <input type="text" name="Designation" value="<?php echo esc_attr(stripslashes($user_desig)); ?>" size="25" id="designation" tabindex="102"/>
            </div>
            <div class="password">
                <label for="Designation"><?php _e(\'Which Product are you interested in\'); ?>: </label>
                <Select>
                    <option>COREDC</option>
                    <option>COREAE</option>
                    <option>COREQROPS</option>
                    <option>CORE Point Solutions</option>
                    <option>Just Exploring</option>
                </select>
            </div>
            <div style="width:100px;position:relative;float:left;margin: 7px 0 0 0;">
                <input type="button" name="user-cancel" value="<?php _e(\'Cancel\'); ?>" id="user-cancel" tabindex="103" />
            </div>
            <div class="login_fields">
                <?php do_action(\'register_form\'); ?>
                <input type="submit" name="user-submit" value="<?php _e(\'Sign up!\'); ?>" class="user-signup" tabindex="103" />
                <?php $register = $_GET[\'register\']; if($register == true) { echo \'<p>Check your email for the password!</p>\'; } ?>
                <input type="hidden" name="redirect_to" value="<?php echo $_SERVER[\'REQUEST_URI\']; ?>?register=true" />
                <input type="hidden" name="user-cookie" value="1" />
            </div>
        </form>
    </div>
    <div id="tab3_login" class="tab_content_login" style="display:none;">
        <h3>Lose something?</h3>
        <p>Enter your username or email to reset your password.</p>
        <form method="post" action="<?php echo site_url(\'wp-login.php?action=lostpassword\', \'login_post\') ?>" class="wp-user-form">
            <div class="username">
                <label for="user_login" class="hide"><?php _e(\'Username or Email\'); ?>: </label>
                <input type="text" name="user_login" value="" size="20" id="user_login" tabindex="1001" />
            </div>
            <div class="login_fields">
                <?php do_action(\'login_form\', \'resetpass\'); ?>
                <input type="submit" name="user-submit" value="<?php _e(\'Reset my password\'); ?>" class="user-submit" tabindex="1002" />
                <?php $reset = $_GET[\'reset\']; if($reset == true) { echo \'<p>A message will be sent to your email address.</p>\'; } ?>
                <input type="hidden" name="redirect_to" value="<?php echo $_SERVER[\'REQUEST_URI\']; ?>?reset=true" />
                <input type="hidden" name="user-cookie" value="1" />
            </div>
        </form>
    </div>
</div>

<?php } else { // is logged in ?>

<div class="sidebox">
    <h3>Welcome, <?php echo $user_identity; ?></h3>
    <div class="usericon">
        <?php global $userdata; get_currentuserinfo(); echo get_avatar($userdata->ID, 60); ?>

    </div>
    <div class="userinfo">
        <p>You&rsquo;re logged in as <strong><?php echo $user_identity; ?></strong></p>
        <p>
            <a href="<?php echo wp_logout_url(\'index.php\'); ?>">Log out</a> | 
            <?php if (current_user_can(\'manage_options\')) { 
                echo \'<a href="\' . admin_url() . \'">\' . __(\'Admin\') . \'</a>\'; } else { 
                echo \'<a href="\' . admin_url() . \'profile.php">\' . __(\'Profile\') . \'</a>\'; } ?>
        </p>
    </div>
</div>

<?php } ?>

</div>

<?php get_footer(); ?>

3 个回复
SO网友:montrealist

为什么反对使用用户元?我就是这样做的,我把所有额外的个人资料都存储在wp_usermeta 利用表格update_user_meta.

<?php

// first validate all $_POST data
$validated = $this->validate_and_sanitize();

$username = $validated[\'uname\'];
$password = $validated[\'pass\'];
$email = $validated[\'email\'];

$new_user_id = wp_create_user($username, $password, $email);

if ( is_wp_error($new_user_id) && array_key_exists(\'existing_user_login\', $new_user_id->errors)) {
    $return[\'status\'] = 2; // email entered is already in use
    $return[\'msg\'] = \'Email entered is already in use\';
    echo json_encode($return);
    exit;
}
if( !is_wp_error($new_user_id) ) {
    if (isset( $validated[\'phone\'] ) && strlen(trim($phone)) > 0) { 
        $phone = mysql_real_escape_string($validated[\'phone\']);
        $umeta_id_phone = update_user_meta( $new_user_id, \'phone\', $phone ); 
    }
    if (isset( $validated[\'phone\'] ) && strlen(trim($city)) > 0) {
        $city = mysql_real_escape_string($validated[\'city\']);
        $umeta_id_city = update_user_meta( $new_user_id, \'city\', $city ); 
    }
}

SO网友:Muhammad Furqan

您可以在上添加额外字段(user meta tables) 使用此功能add_user_meta() 还有can delete_user_meta(), get_user_meta(), update_user_meta().

SO网友:sandip patil

您需要使用键、值对将它们保存到usermeta表中。。

结束

相关推荐

如何在WHERE数组中为$wpdb->更新传递NULL

如何获取元素为NULL的行的结果?我必须更新只包含post\\u id和repeat值的行,“start”和“end”应为NULLmysql表截图:http://i.imgur.com/l27is.png$wpdb->update( $schedule_table, array( \'rpt\' => $event_tag ), array( \'post_id\' => $post_ID, \'start\' => NULL, \'end\' => NULL ), arra