Mẫu đăng ký front-end


13

Tôi đang tìm kiếm một cách dễ dàng để đặt biểu mẫu đăng ký người dùng ở mặt trước của trang web WordPress. Tôi đã sử dụng wp_login_form () để đặt biểu mẫu đăng nhập ở mặt trước, nhưng bây giờ tôi cần làm tương tự với biểu mẫu đăng ký.

Có ý kiến ​​gì không?


Xin lỗi, nhưng ý của bạn là "front-end". Tôi nghĩ rằng tôi hiểu ý nghĩa của front-end và back-end, nhưng tôi không hiểu làm thế nào bạn có thể đặt một biểu mẫu ở bất kỳ nơi nào khác ngoài front-end. Bạn có nghĩa là trang nhất?
Mads Skjern

Câu trả lời:


7

Jeff Starr đã viết một hướng dẫn tuyệt vời về đăng ký front-end, đăng nhập và khôi phục mật khẩu
theo cách tiếp cận tương tự như đề xuất của onetrickpony . Vì vậy, hãy xem đây là câu trả lời của anh ấy và là một tài nguyên khác có thể giúp bạn hoàn thành nó:
http://digwp.com/2010/12/login-register-password-code/

Bây giờ bạn có hai ví dụ về cách tự viết mã này và tin tưởng tôi - chắc chắn là đáng làm theo cách này (của riêng bạn). Nó không khó lắm và nó mang lại cho bạn sự tự do , linh hoạtcó thể sử dụng lại mà không plugin nào có thể cung cấp.


4

trong trường hợp bạn muốn tự xử lý việc này, đây là những gì tôi sử dụng:

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;
}

mã này gần giống với mã từ trang đăng ký người dùng.

sau đó thêm biểu mẫu của bạn vào mẫu của bạn:

<?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>

bạn có thể tạo một widget với cái này, một shortcode hoặc chỉ mẫu trang thông thường ...


Trông thật tuyệt, mặc dù dường như không hoạt động. Tôi đã tìm thấy một plugin hoạt động tuyệt vời, vì vậy cảm ơn vì sự giúp đỡ.
Pippin

hoạt động với tôi, nhưng tôi nghĩ bạn cần thay đổi home_url()với url trang hiện tại vì mã của tôi giả sử biểu mẫu có trên trang chủ. Tôi đã đăng một get_current_page_url()chức năng ở đây lên một câu hỏi khác, đừng nhớ cái nào mặc dù
onetrickpony

2

Gravity Forms là plugin hình thức liên hệ tốt nhất cho WordPress, IMO. Có phiên bản mới nhất, ở phiên bản beta, có tiện ích đăng ký người dùng. Tôi đã thử nó và nó hoạt động tuyệt vời. Nó sẽ khiến bạn phải trả giá mặc dù ... nó là 199 đô la cho một giấy phép nhà phát triển.

Trang giá http://www.gravityforms.com/purchase-gravity-forms/

Bài đăng trên blog nói về tiện ích đăng ký người dùng http://www.gravityhelp.com/

Tôi đánh giá cao plugin này cho cộng đồng WordPress.

Thông số kĩ thuật chi tiết:

Dưới đây là một số tính năng của Tiện ích đăng ký người dùng:

  • Đăng ký người dùng - Thiết lập biểu mẫu để đăng ký người dùng bằng cách ánh xạ các trường biểu mẫu của bạn sang các trường đăng ký người dùng có sẵn trong WordPress.
  • Meta người dùng - Dễ dàng điền dữ liệu meta người dùng như bio, id nhắn tin tức thời, tên, họ cũng như meta người dùng tùy chỉnh cho phù hợp với nhu cầu của bạn.
  • Tích hợp BuddyPress - Nhập dữ liệu trường hồ sơ BuddyPress như một phần của quy trình đăng ký người dùng. Hiện đang hoạt động với BuddyPress v1.2.6.
  • Tích hợp thanh toán - Yêu cầu thanh toán trước khi đăng ký người dùng xảy ra. Bao gồm hỗ trợ cho đăng ký PayPal và thay đổi vai trò người dùng hoặc xóa người dùng nếu đăng ký bị hủy.
  • Trường Mật khẩu - Bổ trợ đăng ký người dùng thêm trường Mật khẩu vào Biểu mẫu trọng lực để sử dụng trong biểu mẫu của bạn. Trường Mật khẩu bao gồm tùy chọn xác nhận, cũng như tùy chọn kiểm tra cường độ mật khẩu tích hợp.
  • Tác giả bài đăng - Tích hợp bổ trợ đăng ký người dùng và tạo bài đăng trên một biểu mẫu để tác giả của bài đăng được tạo là người dùng đã đăng ký bởi tiện ích bổ sung.
  • Tạo trang web - Tự động tạo một trang web trên mạng WordPress (nhiều trang web) cài đặt và chỉ định người dùng mới được tạo làm Quản trị viên cho trang web.

1

Hãy thử plugin đăng nhập đơn giản. Nó cho phép đăng ký và đăng nhập (Bạn phải kích hoạt đăng ký người dùng) và nó có giao diện rất đẹp.


Gần, nhưng không hoàn toàn những gì tôi cần. Tôi cần một cái gì đó mà tôi có thể thả vào mẫu hiện có của tôi.
Pippin

Vâng .. Tôi .. Làm thế nào bạn không thể đặt nó vào mẫu của bạn?
Lynne

Đây là một trang web tôi vừa hoàn thành thiết kế bằng cách sử dụng đăng nhập đơn giản .. purevapes.com lưu ý các liên kết đăng ký và đăng nhập ở trên cùng. Người dùng không bao giờ bị lấy đi từ phía trước của blog. Bạn có thể kết hợp chúng bằng mã HTML đơn giản trong mẫu của bạn và họ chuyển hướng người dùng đến trang trước thay vì bảng quản trị. Vì vậy, tôi không chắc làm thế nào điều này không thể được "thả" vào bất kỳ mẫu nào.
Lynne

Tôi có nghĩa là "bỏ" như trong bao gồm trong trang thực tế, không phải là một cửa sổ phương thức. Đây là plugin tôi vừa tìm thấy để làm điều đó: wordpress.org/extend/plugins/simplr-registration-form
Pippin

Ah tôi thấy. Tôi thậm chí không nghĩ rằng cửa sổ phương thức sẽ có vấn đề, nhưng tôi có thể thấy bây giờ nơi nào có chỗ cho nó và không. Cảm ơn các liên kết plugin, ném nó trong kho vũ khí của tôi. Vui mừng bạn đã tìm thấy câu trả lời của mình :)
Lynne

0

Bạn có thể sử dụng plugin Theme My Đăng nhập


Có vẻ như plugin của bạn có thể hoạt động rất tốt, ngoại trừ việc tôi không thể làm cho biểu mẫu đăng ký hoạt động. Biểu mẫu đăng nhập hiển thị tốt, nhưng khi tôi cố gắng đi đến biểu mẫu đăng ký, nó chỉ đưa tôi đến một wordpress mặc định. Có cách nào để chỉ hiển thị mẫu đăng ký trong trang không?
Pippin

Đó không phải là plugin của tôi, tôi đã viết: P
Tareq

0

Đây là một cách hay và dễ dàng Tôi đã làm điều này:

Sao chép tên trường và bất kỳ nội dung nào khác từ biểu mẫu đăng ký Wordpress hiện tại. Đảm bảo biểu mẫu tùy chỉnh của bạn có các trường cùng tên bao gồm các trường ẩn và sau đó chỉ trỏ hành động biểu mẫu vào url đăng ký thích hợp: http://www.yourblog.com/wp-login.php?action=register - Sau đó, bạn có thể muốn để thay đổi cách biểu mẫu chuyển hướng sau khi đăng ký cũng như nếu bạn không thích cách nó được xử lý.

Ngoài ra còn có plugin này có tên Đăng nhập tại chỗ cho phép bạn thả vào mẫu đăng ký, mẫu đăng nhập và các trang khác vào các trang trên trang web của bạn: http://wordpress.org/extend/plugins/insitelogin/

Giải pháp đầu tiên nên làm những gì bạn muốn nó làm mặc dù.


0

Trong trường hợp bạn cần thêm các trường trong mẫu đăng ký của mình, bạn có thể sử dụng plugin Profile Builder

Nó cho phép bạn tùy chỉnh trang web của mình bằng cách thêm các biểu mẫu mặt trước để đăng nhập, đăng ký và chỉnh sửa hồ sơ thông qua việc sử dụng các mã ngắn.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.