2014-11-05 8 views
1

Просто хочу создать пользовательскую регистрационную форму и код, который я сделал для нее ниже. Все идет по моему плану, но когда я добавляю значение в регистрационную форму, я не вижу никакой ошибки и не вижу никаких записей, которые вставляются в базу данных. Любой орган помогает мне решить эту проблему.как я могу вставить данные в таблицу wordpress (по умолчанию)

<?php 

function super_registration(){ 
    if(isset($_POST['submit'])){ 
     /*registration_validation(
     $_POST['uname'], 
     $_POST['pwd'], 
     $_POST['email'], 
     $_POST['weburl'], 
     $_POST['fname'], 
     $_POST['lname'], 
     $_POST['nname'], 
     $_POST['bio'] 
     ); 

     global $uname, $pwd, $email, $weburl, $fname, $lname, $nname, $bio; 
     $uname = sanitize_user($_POST['uname']); 
     $pwd = esc_attr($_POST['pwd']); 
     $email = sanitize_email($_POST['email']); 
     $weburl = esc_url($_POST['weburl']); 
     $fname = sanitize_text_field($_POST['fname']); 
     $lname = sanitize_text_field($_POST['lname']); 
     $nname = sanitize_text_field($_POST['nname']); 
     $bio = esc_textarea($_POST['bio']); 

     final_registration($uname, $pwd, $email, $weburl, $fname, $lname, $nname, $bio);  
    } 
    Registration_form($uname, $pwd, $email, $weburl, $fname, $lname, $nname, $bio);*/ 

    echo "test"; 
    exit; 
    } 
} 

function registration_form($uname, $pwd, $email, $weburl, $fname, $lname, $nname, $bio){ 
    echo ' 
    <style> 
    div { 
    margin-bottom: 2px; 
    } 
    input { 
    margin-bottom: 4px; 
    } 
    </style> 
    '; 

    echo ' 
    <form action="' . $_SERVER['Request_URI'] . '"method = "post"> 

    <div> 
    <label for="uname"> User Name <Strong>*</strong></label> 
    <input type="text" name="uname" value= "' . (isset($_POST['uname']) ? $uname : NULL) .'"> 
    <div> 

    <div> 
    <label for="pwd"> Password <Strong>*</strong></label> 
    <input type="password" name="pwd" values="' . (isset($_POST['pwd']) ? $pwd : NULL) . '"> 
    </div> 

    <div> 
    <label for="email"> Email Address <Strong>*</strong></label> 
    <input type="text" name="email" values="' . (isset($_POST['email']) ? $email : NULL) . '"> 
    </div>  

    <div> 
    <label for="weburl"> Website URL </label> 
    <input type="text" name="weburl" values="' . (isset($_POST['weburl']) ? $weburl : NULL) . '"> 
    </div> 

    <div> 
    <label for="fname"> First Name </label> 
    <input type="text" name="fname" values="' . (isset($_POST['fname']) ? $fname : NULL) . '"> 
    </div> 

    <div> 
    <label for="lname"> Last Name </label> 
    <input type="text" name="lname" values="' . (isset($_POST['lname']) ? $lname : NULL) . '"> 
    </div>  

    <div> 
    <label for="nname"> Nick Name </label> 
    <input type="text" name="nname" values="' . (isset($_POST['nname']) ? $nname : NULL) . '"> 
    </div>  

    <div> 
    <label for="bio">About </label> 
    <textarea name="bio">' . (isset($_POST['bio']) ? $bio : NULL) . '</textarea> 
    </div> 

    <input type="submit" name="Submit" value="register" /> 
    </form> ';   

} 

function registration_validation($uname, $pwd, $email, $weburl, $fname, $lname, $nname, $bio){ 
    global $regerror; 
    $regerror = new WP_Error; 

    if(empty($uname) || empty($pwd) || empty($email)){ 
     $regerror->add('field','Required Field are Missing'); 
    } 

/* if(strlen($uname) < 4){ 
     $regerror->add('uname_length','Enter Username containing more than 4 character'); 
    } 

    if(uname_exits($uname)){ 
     $regerror->add('uname','User name already exits please enter different user name'); 
    } 

    if(! validate_uname($uname)){ 
     $regerror->add('uname_invalid', 'Sorry, the username you entered is not valid'); 
    } 

    if (strlen($pwd) < 5) { 
     $regerror->add('pwd', 'Password length must be greater than 5'); 
    } 

    if (!is_email($email)) { 
     $regerror->add('email_invalid', 'Email is not valid'); 
    } 

    if (email_exists($email)) { 
     $regerror->add('email', 'Email Already in use'); 
    } 

    if (!empty($weburl)) { 
     if (!filter_var($weburl, FILTER_VALIDATE_URL)) { 
      $regerror->add('weburl', 'Website is not a valid URL'); 
     } 
    } 
*/ 
    if (is_wp_error($regerror)) { 

     foreach ($regerror->get_error_messages() as $error) { 
      echo '<div>'; 
      echo '<strong>ERROR</strong>:'; 
      echo $error . '<br/>'; 
      echo '</div>'; 
     } 
    } 
} 

function final_registration(){ 
    global $regerror, $uname, $pwd, $email, $weburl, $fname, $lname, $nname, $bio; 
    if(count($regerror->get_error_messages()) < 1){ 
     $udata = array(
     'user_login' => $uname, 
     'user_pass' => $pwd, 
     'user_email' => $email, 
     'user_url' => $weburl, 
     'first_name' => $fname, 
     'last_name' => $lname, 
     'nickname' => $nname, 
     'description' => $bio, 
); 

    $user = wp_insert_user($udata); 
    echo 'Registration Successfully Done . goto <a href="' .get_site_url() . '/wp-login.php">Login Page</a>.'; 
    } 
} 

add_shortcode('srt_super_registration','super_registration_shortcode'); 
function super_registration_shortcode(){ 
    ob_start(); 
    super_registration(); 
    return ob_get_clean(); 
} 

?> 
+0

на какую таблицу вы хотите добавить данные? –

+0

На самом деле я хочу вставить данные в таблицу users. –

+0

вы можете использовать функцию wp_insert_user, которую вы уже использовали. можете ли вы сказать мне, что это работает или что проблема? –

ответ

0

Ошибка в вашей форме тега "=" отсутствует.pl изменить со следующим.

echo ' 
<form action="' . $_SERVER['Request_URI'] . '" method = "post"> 

Кроме того, ваш аргумент в $ udata неправильно

$udata = array(
    'user_login'  => $uname, 
    'user_pass' => $pwd, 
    'user_email' => $email, 
    'user_url' => $weburl, 
    'first_name' => $fname, 
    'last_name'  => $lname, 
    'nickname'  => $nname, 
    'description'  => $bio, 
); 
+0

Ой, да, я пропустил «=» в теге формы, но после добавления, который все еще сталкивается с той же проблемой. –

+0

pl put exit after if (isset ($ _POST ['submit'])) {echo "test"; Выход; и проверьте и дайте мне знать, если это работает –

+0

Когда я добавляю это в функцию super_registration и комментирую другой код, который я использовал ater "if (isset ($ _POST ['submit'])) {" чем я ничего не вижу .. даже не " test ".. –

Смежные вопросы