Tagalog (Wikang Tagalog) translation by Robert Alexander (you can also view the original English article)
Mula sa kawalan, ang WordPress ay nagbibigay ng custom registration form na maaaring gamitin sa pag-gawa nang bagong user, o para magdagdag nang bago pang user sa pagdadagdag sa kanilang kasalukuyang WordPress installation. Ngunit paano kung nais mong gumawa ng custom registration form na hindi nagbibigay ng mga pagpipilian sa WordPress Dashboard?
Sa pagtuturong ito, malalaman natin kung paano gumawa ng custom registration form sa WordPress gamit ang kombinasyon ng mga template tags at shortcodes.
Ang default
registration form ay binubuo ng da-dalawa lamang na form fields - ang username
at email.

Ang presensya ng username at email form field ay ginagawang madali ang proseso ng pagpapa-rehistro. Una, ilagay lamang ang username at rmail pagkatapos ay mapapadalhan ka ng password. Susunod, mag-log-in sa site kasama ang password at kumpletuhin ang iyong profile at palitan ang password sa iba pang katanda-tanda.
Kesa sa papuntahin ang user sa iba pang ka-abalahan para lamang makapagrehistro, bakit hindi magbigay ng diretsong form para magrehistro na may kasamang ma-ilang importanteng karagdagang form fields na karagdagan pa sa default username at i-email ang password, ang URL sa website, ang biograpiya, ang nickname, at ang kanilang una at huling pangalan.
Ito ay partikular na gamitin sa mga multi-author website kagaya ng Tuts+.
Sa artikulong ito, In this article, gagawa tayo ng custom registration form plugin kasama ang mga sumusunod na form fields:
- username
- password
- website URL
- unang pangalan
- huling pangalan
- nickname
- biograpiya (o tungkol kung saan na seksyon)
Ang custom registration form ay maaaring isama sa WordPress gamit ang plugin shortcode at kasamang template tag.
Gamit ang shortcode, maaari kang gumawa ng page at gawin itong opisyal na registration page sa iyong site. Maaari mo ring gamitin ang shortcode sa loob ng post para makapag-sign-up ang mga user sa iyong site matapos nilang magbasa ng isa sa iyong mga artikulo.
Kung nais mong idagdag ang registration form sa sidebar o sa eksaktong lokasyon sa iyong website, maaari mong i-edit ang tema ng WorPress ngunit ilagay ang template tag sa iyong nais na lokasyon.
Bago tayo magsimulang gumawa ng registration form plugin, kailangan nating tandaan na ang username, password, at lugar ng email ay kinakailangan.
Aming
palalakasin ang batas na ito kapag sumusulat nang ating validation function.
Premium Option
Ang pagtuturong ito ay magbabahagi sa inyo sa pag-gawa ng plug-in mula sa wala, ngunit kung ikaw ay naghahanap ng madali at minsanang solusyon, subukan ang WordPress Registration Form plugin sa Envato Market. Maaari kang magtala na malawak na pagpipilian sa registration fields kasama ng validation control. Kapag natapos na ang pagrerehistro, may email na ipapadala sa bagong miyembro kasama nang kanilang detalye sa pagla-log-in. Ang templates ng email ay maaaring baguhin para sa pagpaparehistro, pagpapalit ng password, at iba pa.



Isa pang pagpipilian para simpleng makapaglagay ng order sa Envato Studio. Maaari kang pumili ng tamang tao mula sa malawak na maraming eksperiyensyang WordPress plugin developers. Pagkatapos ay magpadala nang madalian at hayann ang developer na gumawa ng plugin sa loob ng napagkasunduang oras.
Halimbawa, si Alisaleem252 ay gagawa ng customized WordPress plugin na maaaring gamitin sa pinaka-bagong bersyon ng WordPress at iba pang plugins sa WordPress Repository base sa iyong mga kinakailangan.
Makakakuha ka ng:
- custom widget kung kinakailangan
- custom shortcode kung kinakailangan
- custom post type kung kinakailangan
- maaasahang serbisyo



Ang kabuuang halaga ng serbisyo ay $300 lamang, at dagdagan ang iyong plugin ay mmula sa mga dating kliyente. Bakit hindi subukan ang kanyang popular na Custom WordPress Plugin Development na serbisyo!
Pag-buo ng Plugin
Pagkatapos nang mga nabanggit, umpisahan na natin sa coding ng plugin. Una, isama ang plugin header.
1 |
<?php
|
2 |
/*
|
3 |
Plugin Name: Custom Registration
|
4 |
Plugin URI: https://code.tutsplus.com
|
5 |
Description: Updates user rating based on number of posts.
|
6 |
Version: 1.0
|
7 |
Author: Agbonghama Collins
|
8 |
Author URI: http://tech4sky.com
|
9 |
*/
|
Susunod, gagawa
tayo ng PHP function na naglalaman ng HTML code ng registration form.
1 |
function registration_form( $username, $password, $email, $website, $first_name, $last_name, $nickname, $bio ) { |
2 |
echo ' |
3 |
<style>
|
4 |
div {
|
5 |
margin-bottom:2px;
|
6 |
}
|
7 |
|
8 |
input{
|
9 |
margin-bottom:4px;
|
10 |
}
|
11 |
</style>
|
12 |
'; |
13 |
|
14 |
echo ' |
15 |
<form action="' . $_SERVER['REQUEST_URI'] . '" method="post"> |
16 |
<div>
|
17 |
<label for="username">Username <strong>*</strong></label>
|
18 |
<input type="text" name="username" value="' . ( isset( $_POST['username'] ) ? $username : null ) . '"> |
19 |
</div>
|
20 |
|
21 |
<div>
|
22 |
<label for="password">Password <strong>*</strong></label>
|
23 |
<input type="password" name="password" value="' . ( isset( $_POST['password'] ) ? $password : null ) . '"> |
24 |
</div>
|
25 |
|
26 |
<div>
|
27 |
<label for="email">Email <strong>*</strong></label>
|
28 |
<input type="text" name="email" value="' . ( isset( $_POST['email']) ? $email : null ) . '"> |
29 |
</div>
|
30 |
|
31 |
<div>
|
32 |
<label for="website">Website</label>
|
33 |
<input type="text" name="website" value="' . ( isset( $_POST['website']) ? $website : null ) . '"> |
34 |
</div>
|
35 |
|
36 |
<div>
|
37 |
<label for="firstname">First Name</label>
|
38 |
<input type="text" name="fname" value="' . ( isset( $_POST['fname']) ? $first_name : null ) . '"> |
39 |
</div>
|
40 |
|
41 |
<div>
|
42 |
<label for="website">Last Name</label>
|
43 |
<input type="text" name="lname" value="' . ( isset( $_POST['lname']) ? $last_name : null ) . '"> |
44 |
</div>
|
45 |
|
46 |
<div>
|
47 |
<label for="nickname">Nickname</label>
|
48 |
<input type="text" name="nickname" value="' . ( isset( $_POST['nickname']) ? $nickname : null ) . '"> |
49 |
</div>
|
50 |
|
51 |
<div>
|
52 |
<label for="bio">About / Bio</label>
|
53 |
<textarea name="bio">' . ( isset( $_POST['bio']) ? $bio : null ) . '</textarea> |
54 |
</div>
|
55 |
<input type="submit" name="submit" value="Register"/>
|
56 |
</form>
|
57 |
'; |
58 |
}
|
Pansinin na ang registration field na naipapasa sa itaas na function bilang variable? Sa function code, makakakita ka nang pagkakataon sa mga sumusunod na code, halimbawa:
( isset( $_POST['lname'] ) ? $last_name : null )
Ang ternary
operator ay nagche-ckeck ng nilalaman ng global $_POST
array para makita kung
ang form ay naglalaman ng value. Kung wala itong nilalaman, pinupuno lamang
nito ang form fields gamit ang value para makapag-save ng user mula sa
naglalagay ng field input.
Ang registration
form ay hindi kailan man kumpleto hangang mai-validate at linisin ang user input. Bilang resulta,
maaari tayong gumawa ng validation function na may pangalan registration_validation
.
Para mapadali
ang validation, gagamitin natin ang WordPress WP_Error class. Sundan nyo ako
habang inilalagay natin ang code sa validation function:
- Gumawa ng
function at ipasa ang pass registration field bilang function
argument.
1
function registration_validation( $username, $password, $email, $website, $first_name, $last_name, $nickname, $bio ) {
- Ilagay ang
WP_Error
class at gumawa ng instance variable global para io ay kayang abutin ng mga nasa labas ng sakop ng function.1
global $reg_errors;
2
$reg_errors = new WP_Error;
- Tandaan: Sinabi
natin ang username, password, at email ay kailangan at hindi dapat makalimutan.
Para masiguradi ito, kailangan nating i-tsek kung mayroong walang laman sa mga
fields. Kung walang laman, ilalagay natin ang maling message sa global
WP_Error
class.1
if ( empty( $username ) || empty( $password ) || empty( $email ) ) {
2
$reg_errors->add('field', 'Required form field is missing');
3
}
- Titignan din
natin para masigurado ang numero ng username na karakter ay hindi dapat bababa
sa 4.
1
if ( 4 > strlen( $username ) ) {
2
$reg_errors->add( 'username_length', 'Username too short. At least 4 characters is required' );
3
}
- Tignan kung
ang username ay nakarehistro na.
1
if ( username_exists( $username ) )
2
$reg_errors->add('user_name', 'Sorry, that username already exists!');
- Maglagay ng
mga serbisyo sa WordPress validate_username function para masigurado na ang
username ay valid.
1
if ( ! validate_username( $username ) ) {
2
$reg_errors->add( 'username_invalid', 'Sorry, the username you entered is not valid' );
3
}
- Siguraduhing
ang password na inilagay ng mga users au hindi bababa sa 5 na karakter.
1
if ( 5 > strlen( $password ) ) {
2
$reg_errors->add( 'password', 'Password length must be greater than 5' );
3
}
- Tignan kung
ang email ay valid na email.
1
if ( !is_email( $email ) ) {
2
$reg_errors->add( 'email_invalid', 'Email is not valid' );
3
}
- Tignan kung
ang email ay naka-rehistro na.
1
if ( email_exists( $email ) ) {
2
$reg_errors->add( 'email', 'Email Already in use' );
3
}
- Kung may
laman na ang website field, tignan kung ito ay valid.
1
if ( ! empty( $website ) ) {
2
if ( ! filter_var( $website, FILTER_VALIDATE_URL ) ) {
3
$reg_errors->add( 'website', 'Website is not a valid URL' );
4
}
5
}
- Panghuli, tignan
ang mga mali sa
WP_Error
instance at display sa tig-iisang mali.Tapos na tayong mag-code sa validation function.1
if ( is_wp_error( $reg_errors ) ) {
2
3
foreach ( $reg_errors->get_error_messages() as $error ) {
4
5
echo '<div>';
6
echo '<strong>ERROR</strong>:';
7
echo $error . '<br/>';
8
echo '</div>';
9
10
}
11
12
}
Susunod ay ang
plugin complete_registration()
function na humahawak sa pagpaparehistro ng
user.
Ang user
registration ay ginagawa sa wp_insert_user
function na tumatanggap ng
iba’t-ibang datos.
1 |
function complete_registration() { |
2 |
global $reg_errors, $username, $password, $email, $website, $first_name, $last_name, $nickname, $bio; |
3 |
if ( 1 > count( $reg_errors->get_error_messages() ) ) { |
4 |
$userdata = array( |
5 |
'user_login' => $username, |
6 |
'user_email' => $email, |
7 |
'user_pass' => $password, |
8 |
'user_url' => $website, |
9 |
'first_name' => $first_name, |
10 |
'last_name' => $last_name, |
11 |
'nickname' => $nickname, |
12 |
'description' => $bio, |
13 |
);
|
14 |
$user = wp_insert_user( $userdata ); |
15 |
echo 'Registration complete. Goto <a href="' . get_site_url() . '/wp-login.php">login page</a>.'; |
16 |
}
|
17 |
}
|
Sa complete_registration()
function sa itaas, ginawa natin ang $reg_errors
WP_Error
instance at ang form fields variable global para makuha natin ang
variable sa global na sakop.
Titignan natin
ngayon kung ang $reg_errors
error handling instance ay naglalaman ng ano mang
pagkakamali. Kung walang maling makikita, maaari na tayong sumunod sa pagpupuno
ng we $userdata
array at ilagay ang user registration na mga detalye sa
WordPress database at ipapakita ang Registration Complete na mensahe sa link sa
login page.
Susunod ay ang
super custom_registration_function()
function na naglalagay sa lahat ng
functions na ating ginawa para magamit.
1 |
function custom_registration_function() { |
2 |
if ( isset($_POST['submit'] ) ) { |
3 |
registration_validation( |
4 |
$_POST['username'], |
5 |
$_POST['password'], |
6 |
$_POST['email'], |
7 |
$_POST['website'], |
8 |
$_POST['fname'], |
9 |
$_POST['lname'], |
10 |
$_POST['nickname'], |
11 |
$_POST['bio'] |
12 |
);
|
13 |
|
14 |
// sanitize user form input
|
15 |
global $username, $password, $email, $website, $first_name, $last_name, $nickname, $bio; |
16 |
$username = sanitize_user( $_POST['username'] ); |
17 |
$password = esc_attr( $_POST['password'] ); |
18 |
$email = sanitize_email( $_POST['email'] ); |
19 |
$website = esc_url( $_POST['website'] ); |
20 |
$first_name = sanitize_text_field( $_POST['fname'] ); |
21 |
$last_name = sanitize_text_field( $_POST['lname'] ); |
22 |
$nickname = sanitize_text_field( $_POST['nickname'] ); |
23 |
$bio = esc_textarea( $_POST['bio'] ); |
24 |
|
25 |
// call @function complete_registration to create the user
|
26 |
// only when no WP_error is found
|
27 |
complete_registration( |
28 |
$username, |
29 |
$password, |
30 |
$email, |
31 |
$website, |
32 |
$first_name, |
33 |
$last_name, |
34 |
$nickname, |
35 |
$bio
|
36 |
);
|
37 |
}
|
38 |
|
39 |
registration_form( |
40 |
$username, |
41 |
$password, |
42 |
$email, |
43 |
$website, |
44 |
$first_name, |
45 |
$last_name, |
46 |
$nickname, |
47 |
$bio
|
48 |
);
|
49 |
}
|
Hayaan akong
ipaliwanag ang code sa custom_registration_function()
function.
Una, ating
alamin kung ang form ay nai-sumite na sa pamamagitan nang pag-tsek kung ang $_POST['submit']
ay nakalagay. kung ito ay nai-sumite na, tawagin ang registration_validation
function para i-validate ang user submitted form.
Atin na ngayong
isa-sanitize ang form data at ilalagay ang sanitize data sa variable na
nakapangalan pagkataposmapuno ng form. Sa wakas, tatawagin natin ang complete_registration
para i-rehistro ang user.
Kailangan nating
tawagin ang registration_form
function para ipakita ang registration form.
Tandaan na binanggit ko na magbibigay kami ng shortcode support para sa registration plugin? nasa ibaba ay ang shortcode support code.
1 |
// Register a new shortcode: [cr_custom_registration]
|
2 |
add_shortcode( 'cr_custom_registration', 'custom_registration_shortcode' ); |
3 |
|
4 |
// The callback function that will replace [book]
|
5 |
function custom_registration_shortcode() { |
6 |
ob_start(); |
7 |
custom_registration_function(); |
8 |
return ob_get_clean(); |
9 |
}
|
Sa puntong ito, tapos
na nating i-code ang plugin. Sa ibaba ay ang larawan na nagpapakita kung paano
ang hitsura ng registration form.
Tandaan na
maaaring hindi mo makuha ang eksaktong hitsura nito sa iyong WordPress dahil sa
pagkakaiba-iba nang estilo ng CSS.



Gamit ng Plugin
Para gamitin ang plugin sa WordPress post o page, gamiting ang shortcode cr_custom_registration
.
Para gamitin ang
registration form sa ispesipikong aspeto ng iyong tema, idagdag ang mga
sumusunod na template tag - <?php custom_registration_function(); ?>
Maaari mo nang
kunin ang plugin file mula sa attachment ng artikulong ito.
Buod
Sa artikulong
ito, nilakbay natin ang proseso sa paggawa ng plugin na nagdadagdag ng custom
registration form sa WordPress. Maaari mo pang pahabain ang registration form
para magdagdag ng fields tulad ng user role, AOL IM account, pero siguraduhing
ang forlm field ay valid meta data para sa wp_insert_user
.
kung mayroong mga katanungan at suhestyon, ipa-alam sa akin sa pamamagitan ng mga komento!
Tandaan na kung ikaw ay nahihirapang makasunod sa pagtuturong ito at mas nais mo nang simpleng solusyon, subukan ang WordPress Registration Form plugin sa Envato Market.