แบบฟอร์มลงทะเบียน Front-end


13

ฉันกำลังมองหาวิธีง่ายๆในการวางแบบฟอร์มลงทะเบียนผู้ใช้บนส่วนหน้าของเว็บไซต์ WordPress ฉันได้ใช้ wp_login_form () เพื่อวางแบบฟอร์มการเข้าสู่ระบบที่ส่วนหน้า แต่ตอนนี้ฉันต้องทำแบบเดียวกันกับแบบฟอร์มการสมัคร

ความคิดใด ๆ


ขออภัยคุณหมายถึงอะไรโดย "front-end" ฉันคิดว่าฉันเข้าใจความหมายของ front-end และ back-end แต่ฉันไม่เข้าใจว่าคุณสามารถวางฟอร์มได้ที่ไหนในส่วนหน้า คุณหมายถึงหน้าแรกหรือเปล่า
Mads Skjern

คำตอบ:


7

เจฟฟ์สตาร์เขียนกวดวิชาที่ดีในการลงทะเบียนส่วนหน้าเข้าสู่ระบบและกู้คืนรหัสผ่าน
นำวิธีการที่คล้ายกันเป็นที่แนะนำโดย onetrickpony ดังนั้นให้ทำตามคำตอบของเขาและเป็นแหล่งข้อมูลอื่นที่อาจช่วยให้คุณทำมันได้:
http://digwp.com/2010/12/login-register-password-code/

ตอนนี้คุณมีสองตัวอย่างวิธีเขียนโค้ดด้วยตัวคุณเองและเชื่อใจฉัน - มันคุ้มที่จะทำแบบนี้ (ของคุณเอง) มันไม่ใช่เรื่องยากและมันจะช่วยให้คุณมีอิสระ , มีความยืดหยุ่นและสามารถนำมาใช้ว่าปลั๊กอินไม่สามารถนำเสนอ


4

ในกรณีที่คุณต้องการจัดการกับตัวเองนี่คือสิ่งที่ฉันใช้:

add_action('template_redirect', 'register_a_user');
function register_a_user(){
  if(isset($_GET['do']) && $_GET['do'] == 'register'):
    $errors = array();
    if(empty($_POST['user']) || empty($_POST['email'])) $errors[] = 'provide a user and email';
    if(!empty($_POST['spam'])) $errors[] = 'gtfo spammer';

    $user_login = esc_attr($_POST['user']);
    $user_email = esc_attr($_POST['email']);
    require_once(ABSPATH.WPINC.'/registration.php');

    $sanitized_user_login = sanitize_user($user_login);
    $user_email = apply_filters('user_registration_email', $user_email);

    if(!is_email($user_email)) $errors[] = 'invalid e-mail';
    elseif(email_exists($user_email)) $errors[] = 'this email is already registered, bla bla...';

    if(empty($sanitized_user_login) || !validate_username($user_login)) $errors[] = 'invalid user name';
    elseif(username_exists($sanitized_user_login)) $errors[] = 'user name already exists';

    if(empty($errors)):
      $user_pass = wp_generate_password();
      $user_id = wp_create_user($sanitized_user_login, $user_pass, $user_email);

      if(!$user_id):
        $errors[] = 'registration failed...';
      else:
        update_user_option($user_id, 'default_password_nag', true, true);
        wp_new_user_notification($user_id, $user_pass);
      endif;
    endif;

    if(!empty($errors)) define('REGISTRATION_ERROR', serialize($errors));
    else define('REGISTERED_A_USER', $user_email);
  endif;
}

รหัสเกือบจะเหมือนกับรหัสจากหน้าสมัครสมาชิก

จากนั้นเพิ่มแบบฟอร์มของคุณในเทมเพลตของคุณ:

<?php
  if(defined('REGISTRATION_ERROR'))
    foreach(unserialize(REGISTRATION_ERROR) as $error)
      echo "<div class=\"error\">{$error}</div>";
  // errors here, if any

  elseif(defined('REGISTERED_A_USER'))
    echo 'a email has been sent to '.REGISTERED_A_USER;
?>
<form method="post" action="<?php echo add_query_arg('do', 'register', home_url('/')); ?>">
  <label>
    User:
    <input type="text" name="user" value=""/>
  </label>

  <label>
    Email:
   <input type="text" name="email" value="" />
  </label>

  <label>
    Delete this text:
   <input type="text" name="spam" value="some_crappy_spam_protection" />
  </label>

  <input type="submit" value="register" />
</form>

คุณสามารถสร้างวิดเจ็ตด้วยสิ่งนี้รหัสย่อหรือเพียงแค่เทมเพลตหน้าปกติ ...


ดูดี แต่ดูเหมือนจะไม่ทำงาน ฉันพบปลั๊กอินที่ใช้งานได้ดีมากขอบคุณมากสำหรับความช่วยเหลือ
ปิ๊ปปิ้

ใช้งานได้สำหรับฉัน แต่ฉันคิดว่าคุณต้องเปลี่ยนhome_url()ด้วย URL หน้าปัจจุบันเนื่องจากรหัสของฉันถือว่าฟอร์มอยู่ในหน้าแรก ฉันโพสต์get_current_page_url()ฟังก์ชั่นที่นี่ในคำถามอื่นจำไม่ได้ว่าอย่างใดอย่างหนึ่ง
onetrickpony

2

Gravity Forms เป็นปลั๊กอินแบบฟอร์มการติดต่อที่ดีที่สุดสำหรับ WordPress, IMO มีรุ่นใหม่ล่าสุดในรุ่นเบต้ามีส่วนเสริมการลงทะเบียนผู้ใช้ ฉันลองแล้วมันใช้งานได้ดี คุณจะต้องเสียค่าใช้จ่ายแม้ว่าจะเท่ากับ $ 199 สำหรับสิทธิ์ใช้งานนักพัฒนาซอฟต์แวร์

หน้าราคา http://www.gravityforms.com/purchase-gravity-forms/

โพสต์บล็อกพูดคุยเกี่ยวกับการลงทะเบียนผู้ใช้ add-on http://www.gravityhelp.com/

ฉันขอแนะนำปลั๊กอินนี้ให้กับชุมชน WordPress

ข้อกำหนดรายละเอียด:

นี่คือคุณสมบัติบางอย่างของ Add-On การลงทะเบียนผู้ใช้:

  • การลงทะเบียนผู้ใช้ - ตั้งค่าแบบฟอร์มเพื่อลงทะเบียนผู้ใช้โดยการแมปฟิลด์ในแบบฟอร์มของคุณกับฟิลด์การลงทะเบียนผู้ใช้ที่มีใน WordPress
  • User Meta - เติมข้อมูลเมตาของผู้ใช้ได้อย่างง่ายดายเช่นไบโอ, รหัสการส่งข้อความด่วน, ชื่อ, นามสกุล, และเมตาของผู้ใช้ที่กำหนดเองเพื่อให้เหมาะกับความต้องการของคุณ
  • BuddyPress Integration - เติมข้อมูลโปรไฟล์ BuddyPress เป็นส่วนหนึ่งของกระบวนการลงทะเบียนผู้ใช้ ปัจจุบันทำงานร่วมกับ BuddyPress v1.2.6
  • การรวมการชำระเงิน - ต้องมีการชำระเงินก่อนที่จะเกิดการลงทะเบียนผู้ใช้ รวมถึงการสนับสนุนการสมัครสมาชิก PayPal และการเปลี่ยนบทบาทผู้ใช้หรือการลบผู้ใช้หากการสมัครสมาชิกถูกยกเลิก
  • รหัสผ่านฟิลด์ - Add-On การลงทะเบียนผู้ใช้จะเพิ่มฟิลด์รหัสผ่านลงในฟอร์ม Gravity สำหรับใช้ในฟอร์มของคุณ ฟิลด์รหัสผ่านมีตัวเลือกการยืนยันเช่นเดียวกับตัวเลือกการตรวจสอบความแข็งแรงของรหัสผ่าน
  • ผู้แต่งโพสต์ - รวม Add-On การลงทะเบียนผู้ใช้และการสร้างโพสต์ในรูปแบบเดียวเพื่อให้ผู้เขียนโพสต์ที่สร้างขึ้นเป็นผู้ใช้ที่ลงทะเบียนโดย Add-on
  • การสร้างไซต์ - สร้างไซต์บนเครือข่าย WordPress (หลายไซต์) โดยอัตโนมัติติดตั้งและกำหนดผู้ใช้ที่สร้างใหม่เป็นผู้ดูแลระบบของไซต์

1

ลองใช้ปลั๊กอินเข้าสู่ระบบแบบง่าย ๆ อนุญาตให้ลงทะเบียนและเข้าสู่ระบบ (คุณต้องเปิดใช้งานการลงทะเบียนผู้ใช้) และมันก็ดูดีมาก


ปิด แต่ก็ไม่ใช่สิ่งที่ฉันต้องการ ฉันต้องการบางสิ่งที่ฉันสามารถวางลงในเทมเพลตที่มีอยู่ของฉัน
ปิ๊ปปิ้

ใช่ .. ฉัน .. คุณไม่สามารถใส่มันลงในแม่แบบของคุณได้อย่างไร
Lynne

นี่คือเว็บไซต์ที่ฉันเพิ่งทำการออกแบบโดยใช้การเข้าสู่ระบบแบบง่าย ๆ purevapes.com จดบันทึกการเชื่อมโยงและการเข้าสู่ระบบที่ด้านบน ผู้ใช้จะไม่ถูกพรากไปจากส่วนหน้าของบล็อก คุณสามารถรวมพวกเขาโดยใช้รหัส HTML ง่าย ๆ ในแม่แบบของคุณและพวกเขาเปลี่ยนเส้นทางผู้ใช้ไปยังหน้าด้านหน้าแทนแผงผู้ดูแลระบบ ดังนั้นฉันจึงไม่แน่ใจว่าจะไม่สามารถ 'นำ' ไปวางในแม่แบบใด
Lynne

ฉันหมายถึง "ลดลง" ในรวมอยู่ในหน้าจริงไม่ใช่หน้าต่างโมดัล นี่คือปลั๊กอินที่ฉันเพิ่งค้นพบ: wordpress.org/extend/plugins/simplr-registration-form
Pippin

อ่าฉันเข้าใจแล้ว มันไม่ได้ข้ามความคิดของฉันไปที่หน้าต่าง modal จะนำเสนอปัญหา แต่ฉันสามารถดูตอนนี้ที่มีสถานที่สำหรับมันและไม่ ขอบคุณสำหรับลิงค์ปลั๊กอินทิ้งมันไว้ในคลังแสงของฉัน ดีใจที่คุณได้พบคำตอบของคุณ :)
เม้ง

0

ดูเหมือนว่าปลั๊กอินของคุณอาจทำงานได้ดียกเว้นว่าฉันไม่สามารถรับแบบฟอร์มลงทะเบียนให้ทำงานได้ รูปแบบการเข้าสู่ระบบแสดงดี แต่เมื่อฉันพยายามที่จะไปที่แบบฟอร์มการลงทะเบียนก็แค่พาฉันไปที่ wordpress เริ่มต้นอย่างใดอย่างหนึ่ง มีวิธีเพียงแค่แสดงแบบฟอร์มลงทะเบียนในหน้าหรือไม่
ปิ๊ปปิ้

ไม่ใช่ปลั๊กอินของฉันที่ฉันเขียน: P
Tareq

0

นี่เป็นวิธีที่ง่ายและดีที่ฉันได้ทำ:

คัดลอกชื่อฟิลด์และข้อมูลอื่น ๆ จากแบบฟอร์มลงทะเบียน Wordpress ปัจจุบัน ตรวจสอบให้แน่ใจว่าฟอร์มที่กำหนดเองของคุณมีฟิลด์ชื่อเดียวกันรวมถึงที่ถูกซ่อนไว้แล้วชี้ไปที่การลงทะเบียน URL ที่เหมาะสม: http://www.yourblog.com/wp-login.php?action=register - คุณอาจต้องการ เพื่อเปลี่ยนวิธีการเปลี่ยนเส้นทางของฟอร์มหลังจากลงทะเบียนด้วยหากคุณไม่ชอบวิธีการจัดการ

นอกจากนี้ยังมีปลั๊กอินนี้ชื่อ Insite เข้าสู่ระบบซึ่งช่วยให้คุณสามารถวางในแบบฟอร์มการลงทะเบียนแบบฟอร์มการเข้าสู่ระบบและอื่น ๆ ลงในหน้าต่างๆในเว็บไซต์ของคุณ: http://wordpress.org/extend/plugins/insitelogin/

ทางออกแรกควรทำในสิ่งที่คุณต้องการให้ทำ


0

ในกรณีที่คุณต้องการฟิลด์เพิ่มเติมในแบบฟอร์มการลงทะเบียนคุณสามารถใช้ปลั๊กอินตัวสร้างโปรไฟล์

มันช่วยให้คุณปรับแต่งเว็บไซต์ของคุณโดยการเพิ่มแบบฟอร์มส่วนหน้าสำหรับการเข้าสู่ระบบลงทะเบียนและแก้ไขโปรไฟล์ผ่านการใช้รหัสย่อ

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.