2011-09-29 17 views
6

मेरे पास एक ग्राहक है जिसके लिए एक कस्टम पंजीकरण फॉर्म की आवश्यकता है।वर्डप्रेस कस्टम पंजीकरण फॉर्म

  • मैं इस पृष्ठ
  • मैं पहला नाम, कंपनी, फोन जैसी कस्टम फ़ील्ड जोड़ने की जरूरत पर एक कस्टम डिजाइन बनाने के लिए,

मुझे किसी ने इसके साथ मदद कर सकते हैं की जरूरत है आदि?

उत्तर

11

वर्डप्रेस प्रश्न पूछने के लिए एक बेहतर जगह शायद WordPress Answers पर है। Anyhoo, अगर आप प्लगइन के बिना ही इस को हल करना चाहते हैं, तो आप तीन चीजों की जरूरत है:

  1. एक custom WordPress theme
  2. एक Page Template
  3. एक WordPress Page पृष्ठ टेम्पलेट

का उपयोग करता है जब आप इन तीन है जगह में भागों, आप अपने पेज टेम्पलेट में निम्नलिखित कर सकते हैं:

<?php 
/* 
Template Name: Registration 
*/ 

global $current_user; 
get_currentuserinfo(); 

$firstname = $_POST['firstname']; 
$lastname = $_POST['lastname']; 
$company = $_POST['company']; 

if (($firstname != '') && ($lastname != '') && ($company != '')) { 
    // TODO: Do more rigorous validation on the submitted data 

    // TODO: Generate a better login (or ask the user for it) 
    $login = $firstname . $lastname; 

    // TODO: Generate a better password (or ask the user for it) 
    $password = '123'; 

    // TODO: Ask the user for an e-mail address 
    $email = '[email protected]'; 

    // Create the WordPress User object with the basic required information 
    $user_id = wp_create_user($login, $password, $email); 

    if (!$user_id || is_wp_error($user_id)) { 
     // TODO: Display an error message and don't proceed. 
    } 

    $userinfo = array(
     'ID' => $user_id, 
     'first_name' => $firstname, 
     'last_name' => $lastname, 
    ); 

    // Update the WordPress User object with first and last name. 
    wp_update_user($userinfo); 

    // Add the company as user metadata 
    update_usermeta($user_id, 'company', $company); 
} 

if (is_user_logged_in()) : ?> 

    <p>You're already logged in and have no need to create a user profile.</p> 

<?php else : while (have_posts()) : the_post(); ?> 

<div id="page-<?php the_ID(); ?>"> 
    <h2><?php the_title(); ?></h2> 

    <div class="content"> 
     <?php the_content() ?> 
    </div> 

    <form action="<?php echo $_SERVER['REQUEST_URI'] ?>" method="post"> 
     <div class="firstname"> 
      <label for="firstname">First name:</label> 
      <input name="firstname" 
        id="firstname" 
        value="<?php echo esc_attr($firstname) ?>"> 
     </div> 
     <div class="lastname"> 
      <label for="lastname">Last name:</label> 
      <input name="lastname" 
        id="lastname" 
        value="<?php echo esc_attr($lastname) ?>"> 
     </div> 
     <div class="company"> 
      <label for="company">Company:</label> 
      <input name="company" 
        id="company" 
        value="<?php echo esc_attr($company) ?>"> 
     </div> 
    </form> 
</div> 

<?php endwhile; endif; ?> 

अब, जब आप अपनी सामग्री को संग्रहीत करना चाहते हैं, तो आपको यह जानना होगा कि जानकारी उपयोगकर्ता ऑब्जेक्ट के भीतर या मेटाडेटा में है या नहीं। (एक लॉग इन हुए प्रयोक्ता की) प्रथम और अंतिम नाम को पुनः प्राप्त करने के लिए:

global $current_user; 
$firstname = $current_user->first_name; 
$lastname = $current_user->last_name; 

कंपनी का नाम (एक लॉग इन हुए प्रयोक्ता की) को पुनः प्राप्त करने के लिए:

global $current_user; 
$company = get_usermeta($current_user->id, 'company'); 

इसके बारे में बुनियादी सार है कि । यहां अभी भी बहुत सी चीजें गायब हैं, जैसे सत्यापन, त्रुटि संदेश आउटपुट, वर्डप्रेस एपीआई के भीतर होने वाली त्रुटियों का प्रबंधन, इत्यादि। कुछ महत्वपूर्ण TODO भी हैं जिन्हें कोड का काम करने से पहले आपको ख्याल रखना होगा। कोड को शायद कई फाइलों में विभाजित किया जाना चाहिए, लेकिन मुझे उम्मीद है कि यह आपको शुरू करने के लिए पर्याप्त है।

संबंधित मुद्दे