不幸的是,我一直试图弄清楚我的代码整天出了什么问题。我是php的新手,如果答案很明显,请原谅我。此外,如果需要更多信息,请与我们联系。
以下代码是我正在创建的Wordpress网站的注册页面模板。目标是在表单中添加自定义电话号码字段,并将号码发送到数据库。首先,我在phpmyadmin中创建了一个名为user_phone的新列。然后我尝试将该字段添加到代码中。目前,一旦新用户填写所需的所有信息并点击提交,用户将被重定向到正确的页面,一切似乎都顺利。但是,当我在phpmyadmin中浏览用户时,输入的电话号码不会显示。任何帮助表示赞赏!
<?php
/**
* Template name: Register Page
*
* Learn more: http://codex.wordpress.org/Template_Hierarchy
*
* @package WordPress
* @subpackage classiads
* @since classiads 1.2.2
*/
if ( is_user_logged_in() ) {
global $redux_demo;
$profile = $redux_demo['profile'];
wp_redirect( $profile ); exit;
}
global $user_ID, $user_identity, $user_level, $registerSuccess;
$registerSuccess = "";
if (!$user_ID) {
if($_POST)
{
$message = "Registration successful.";
$username = $wpdb->escape($_POST['username']);
$email = $wpdb->escape($_POST['email']);
/* PHONE NUMBER */
$phone = $wpdb->escape($_POST['phone']);
$password = $wpdb->escape($_POST['pwd']);
$confirm_password = $wpdb->escape($_POST['confirm']);
$registerSuccess = 1;
$status = wp_create_user( $username, $password, $email );
if(empty($username)) {
$message = "User name should not be empty.";
$registerSuccess = 0;
}elseif(empty($phone)) {
$message = "Phone number should not be empty.";
}
elseif(isset($password) || isset($email)) {
if (strlen($password) < 5 || strlen($password) > 15) {
$message = "Password must be 5 to 15 characters in length.";
$registerSuccess = 0;
}
//elseif( $password == $confirm_password ) {
elseif(isset($password) && $password != $confirm_password) {
$message = "Password Mismatch";
$registerSuccess = 0;
}elseif(!filter_var($email, FILTER_VALIDATE_EMAIL))
{
$message = "Please enter a valid email.";
$registerSuccess = 0;
}
}elseif(isset($email)) {
if(!filter_var($email, FILTER_VALIDATE_EMAIL))
{
$message = "Please enter a valid email.";
$registerSuccess = 0;
}
}elseif ( is_wp_error($status) ) {
$registerSuccess = 0;
$message = "Username or E-mail already exists. Please try another one.";
}
else {
if($registerSuccess = 1){
$from = get_option('admin_email');
$headers = 'From: '.$from . "\r\n";
$subject = "Registration successful";
$msg = "Registration successful.\nYour login details\nUsername: $username\nPassword: $password";
wp_mail( $email, $subject, $msg, $headers );
$registerSuccess = 1;
}
}
if($registerSuccess == 1) {
$login_data = array();
$login_data['user_login'] = $username;
$login_data['user_password'] = $password;
$user_verify = wp_signon( $login_data, false );
global $redux_demo;
$profile = $redux_demo['profile'];
wp_redirect( $profile ); exit;
}
}
}
get_header(); ?>
<div class="ad-title">
<h2><?php the_title(); ?> </h2>
</div>
<section class="ads-main-page">
<div class="container">
<div class="log-in-logo">
<a class="logo" href="<?php echo home_url(); ?>" title="Home">
<?php global $redux_demo; $logo = $redux_demo['logo']['url']; if (!empty($logo)) { ?>
<img src="<?php echo $logo; ?>" alt="Logo" />
<?php } else { ?>
<img src="<?php echo get_template_directory_uri(); ?>/images/logo.png" alt="Logo" />
<?php } ?>
</a>
</div>
<div class="first clearfix log-in">
<h2 class="login-title">REGISTER</h2>
<?php
if(get_option('users_can_register')) { //Check whether user registration is enabled by the administrator
?>
<div id="edit-profile" class="clearfix" >
<div class="span4">
<form class="form-item login-form" action="" id="primaryPostForm" method="POST" enctype="multipart/form-data">
<?php if($_POST) {
global $redux_demo;
$login = $redux_demo['login'];
echo "<div id='result' style='margin-bottom: 30px;'><div class='message'><h4>".$message." ";
if($registerSuccess == 1) {
echo "<a href='".$login."'>Login</a>.";
}
echo "</h4></div></div>";
} ?>
<?php if($registerSuccess == 1) { } else { ?>
<input id="contactName" placeholder="User Name" type="text" name="username" class="text input-textarea half" value="" maxlength="30" />
<input id="phone" placeholder="Phone Number" type="text" name="phone" class="text input-textarea half" value="" maxlength="30" />
<input id="email" placeholder="Email Address" type="text" name="email" class="text input-textarea half" value="" maxlength="30" />
<input id="password" placeholder="Password" type="password" name="pwd" class="text input-textarea half" maxlength="15" value="" />
<input id="password" placeholder="Retype Password" type="password" name="confirm" class="text input-textarea half" maxlength="15" value="" />
<br/>
<input type="hidden" name="submit" value="Register" id="submit" />
<div class="clearfix"></div>
<div class="btn-container">
<button class="btn form-submit" id="edit-submit" name="op" value="Publish Ad" type="submit"><?php _e('Submit', 'agrg') ?></button>
</div>
<?php } ?>
</form>
<div class="clearfix"></div>
</div>
<div class="span4 last">
<span>Already have an acount ?</span> <a class="login-a" href="">Login Now</a>
<div class="publish-ad-button login-page">
<?php
global $redux_demo;
$login = $redux_demo['login'];
$reset = $redux_demo['reset'];
?>
</div>
</div>
</div>
<?php }
else echo "<span class='registration-closed'>Registration is currently disabled. Please try again later.</span>";
?>
</div>
</div>
</section>
<?php get_footer(); ?>
编辑1:我将wp_create_user更改为wp_insert_user并在所有字段中调用。但是,电话号码仍未被推送到数据库。
<?php
/**
* Template name: Register Page
*
* Learn more: http://codex.wordpress.org/Template_Hierarchy
*
* @package WordPress
* @subpackage classiads
* @since classiads 1.2.2
*/
if ( is_user_logged_in() ) {
global $redux_demo;
$profile = $redux_demo['profile'];
wp_redirect( $profile ); exit;
}
global $user_ID, $user_identity, $user_level, $registerSuccess;
$registerSuccess = "";
if (!$user_ID) {
if($_POST)
{
$message = "Registration successful.";
$username = $wpdb->escape($_POST['username']);
$email = $wpdb->escape($_POST['email']);
/* PHONE NUMBER */
$phone = $wpdb->escape($_POST['phone']);
$password = $wpdb->escape($_POST['pwd']);
$confirm_password = $wpdb->escape($_POST['confirm']);
$registerSuccess = 1;
$userdata = array(
'user_login' => $username,
'user_email' => $email,
'user_phone' => $phone,
'user_pass' => $password,
);
$status = wp_insert_user( $userdata );
if(empty($username)) {
$message = "User name should not be empty.";
$registerSuccess = 0;
}elseif(empty($phone)) {
$message = "Phone number should not be empty.";
}
elseif(isset($password) || isset($email)) {
if (strlen($password) < 5 || strlen($password) > 15) {
$message = "Password must be 5 to 15 characters in length.";
$registerSuccess = 0;
}
//elseif( $password == $confirm_password ) {
elseif(isset($password) && $password != $confirm_password) {
$message = "Password Mismatch";
$registerSuccess = 0;
}elseif(!filter_var($email, FILTER_VALIDATE_EMAIL))
{
$message = "Please enter a valid email.";
$registerSuccess = 0;
}
}elseif(isset($email)) {
if(!filter_var($email, FILTER_VALIDATE_EMAIL))
{
$message = "Please enter a valid email.";
$registerSuccess = 0;
}
}elseif ( is_wp_error($status) ) {
$registerSuccess = 0;
$message = "Username or E-mail already exists. Please try another one.";
}
else {
if($registerSuccess == 1){
$from = get_option('admin_email');
$headers = 'From: '.$from . "\r\n";
$subject = "Registration successful";
$msg = "Registration successful.\nYour login details\nUsername: $username\nPassword: $password";
wp_mail( $email, $subject, $msg, $headers );
$registerSuccess = 1;
}
}
if($registerSuccess == 1) {
$login_data = array();
$login_data['user_login'] = $username;
$login_data['user_password'] = $password;
$user_verify = wp_signon( $login_data, false );
global $redux_demo;
$profile = $redux_demo['profile'];
wp_redirect( $profile ); exit;
}
}
}
get_header(); ?>
<div class="ad-title">
<h2><?php the_title(); ?> </h2>
</div>
<section class="ads-main-page">
<div class="container">
<div class="log-in-logo">
<a class="logo" href="<?php echo home_url(); ?>" title="Home">
<?php global $redux_demo; $logo = $redux_demo['logo']['url']; if (!empty($logo)) { ?>
<img src="<?php echo $logo; ?>" alt="Logo" />
<?php } else { ?>
<img src="<?php echo get_template_directory_uri(); ?>/images/logo.png" alt="Logo" />
<?php } ?>
</a>
</div>
<div class="first clearfix log-in">
<h2 class="login-title">REGISTER</h2>
<?php
if(get_option('users_can_register')) { //Check whether user registration is enabled by the administrator
?>
<div id="edit-profile" class="clearfix" >
<div class="span4">
<form class="form-item login-form" action="" id="primaryPostForm" method="POST" enctype="multipart/form-data">
<?php if($_POST) {
global $redux_demo;
$login = $redux_demo['login'];
echo "<div id='result' style='margin-bottom: 30px;'><div class='message'><h4>".$message." ";
if($registerSuccess == 1) {
echo "<a href='".$login."'>Login</a>.";
}
echo "</h4></div></div>";
} ?>
<?php if($registerSuccess == 1) { } else { ?>
<input id="contactName" placeholder="User Name" type="text" name="username" class="text input-textarea half" value="" maxlength="30" />
<input id="phone" placeholder="Phone Number" type="text" name="phone" class="text input-textarea half" value="" maxlength="30" />
<input id="email" placeholder="Email Address" type="text" name="email" class="text input-textarea half" value="" maxlength="30" />
<input id="password" placeholder="Password" type="password" name="pwd" class="text input-textarea half" maxlength="15" value="" />
<input id="password" placeholder="Retype Password" type="password" name="confirm" class="text input-textarea half" maxlength="15" value="" />
<br/>
<input type="hidden" name="submit" value="Register" id="submit" />
<div class="clearfix"></div>
<div class="btn-container">
<button class="btn form-submit" id="edit-submit" name="op" value="Publish Ad" type="submit"><?php _e('Submit', 'agrg') ?></button>
</div>
<?php } ?>
</form>
<div class="clearfix"></div>
</div>
<div class="span4 last">
<span>Already have an acount ?</span> <a class="login-a" href="">Login Now</a>
<div class="publish-ad-button login-page">
<?php
global $redux_demo;
$login = $redux_demo['login'];
$reset = $redux_demo['reset'];
?>
</div>
</div>
</div>
<?php }
else echo "<span class='registration-closed'>Registration is currently disabled. Please try again later.</span>";
?>
</div>
</div>
</section>
<?php get_footer(); ?>
答案 0 :(得分:0)
$status = wp_create_user( $username, $password, $email );
在创建用户中,您不使用电话号码! 并且
if($registerSuccess = 1)
不正确。
if($registerSuccess == 1)
是对的。
通过WP Codex(http://codex.wordpress.org/Function_Reference/wp_insert_user)
的方式说你不能在wp_insert_user()中使用手机。该页面显示了您可以使用的列表。