ارزدیجیتال
حراجی دامنه های ویژهمشاهده
تبلیغات
تبلیغات تبلیغات
تبلیغات ژاکت, مرجع خرید قالب و افزونه وردپرسی اورجینال

ساخت فرم نام نویسی کامل در وردپرس

آموزش ها , مقالات,آموزش,ترفند

در این پست از بیست اسکریپت، آموزشی را آماده کرده ایم تا با کمک آن به سادگی هرچه تمام تر یک فرم عضویت ساده و کامل را در سایت خود پایه ریزی کنید.
همانطور که میدانید مهمترین بخش در ساخت یک فرم نام نویسی، برقراری ارتباط با پایگاه داده است. در این آموزش ما با استفاده از تابع ()wp_insert_user قادر خواهیم بود تا اطلاعات ارسالی توسط کاربر را در پایگاه داده ثبت کنیم. (جهت مطالعه مستندات بیشتر اینجا کلیک کنید)

ساخت فرم نام نویسی کامل در وردپرس

فرم کلی تابع wp_insert_user:

<?php wp_insert_user( $userdata ) ?>

اما پیش از استفاده از تابع بالا و کدنویسی سمت سرور، ابتدا لازم است تا یک فرم با تعدادی فیلد ورودی (input) و یک دکمه ارسال (button) بسازیم. این کار را ما به صورت زیر انجام دادیم:

<form method="post">
	<h3>آیا قبلا عضو نشده اید؟<br/> نام نویسی کنید.</h3>
	<p><label>نام</label></p>
	<p><input type="text" value="" name="first_name" id="first_name" /></p>		
	<p><label>نام خانوادگی</label></p>
	<p><input type="text" value="" name="last_name" id="last_name" /></p>
	<p><label>ایمیل</label></p>
	<p><input type="text" value="" name="email" id="email" /></p>
	<p><label>نام کاربری</label></p>
	<p><input type="text" value="" name="username" id="username" /></p>
	<p><label>رمز عبور</label></p>
	<p><input type="password" value="" name="pwd1" id="pwd1" /></p>
	<p><label>تکرار رمز عبور</label></p>
	<p><input type="password" value="" name="pwd2" id="pwd2" /></p>
	<button type="submit" name="btnregister" >بفرست!</button>
	<input type="hidden" name="task" value="register" />
</form>

پس از انجام مرحله قبل، می رسیم به مهمترین بخش کار، یعنی دریافت و پردازش اطلاعات ارسالی از فرم html بالا.
برای این منظور از قطعه کد پی اچ پی زیر استفاده میکنیم. این اسکریپت ضمن دریافت و پردازش اطلاعات با داشتن تعدادی دستور شرطی، تک تک مراحل کار را کنترل کرده و پیغام هایی را در هر شرط مشخص می کند. ( در مرحله بعد، از این پیغام ها با شرط خالی نبودن متغیرها ( مثلا: ! empty($success) ) استفاده خواهیم کرد)

<?php
	$err = '';
	$success = '';

	global $wpdb, $PasswordHash, $current_user, $user_ID;

	if(isset($_POST['task']) && $_POST['task'] == 'register' ) {

		$pwd1 = $wpdb->escape(trim($_POST['pwd1']));
		$pwd2 = $wpdb->escape(trim($_POST['pwd2']));
		$first_name = $wpdb->escape(trim($_POST['first_name']));
		$last_name = $wpdb->escape(trim($_POST['last_name']));
		$email = $wpdb->escape(trim($_POST['email']));
		$username = $wpdb->escape(trim($_POST['username']));

		if( $email == "" || $pwd1 == "" || $pwd2 == "" || $username == "" || $first_name == "" || $last_name == "") {
			$err = 'لطفا تمامی فیلدهای الزامی را تکمیل نمایید.';
		} else if(!filter_var($email, FILTER_VALIDATE_EMAIL)) {
			$err = 'آدرس ایمیل نامعتبر است!';
		} else if(email_exists($email) ) {
			$err = 'این ایمیل قبلا در سایت ثبت شده است.';
		} else if($pwd1 <> $pwd2 ){
			$err = 'کلمات عبور با یکدیگر مطابقت ندارند.';		
		} else {

			$user_id = wp_insert_user( array ('first_name' => apply_filters('pre_user_first_name', $first_name), 'last_name' => apply_filters('pre_user_last_name', $last_name), 'user_pass' => apply_filters('pre_user_user_pass', $pwd1), 'user_login' => apply_filters('pre_user_user_login', $username), 'user_email' => apply_filters('pre_user_user_email', $email), 'role' => 'subscriber' ) );
			if( is_wp_error($user_id) ) {
				$err = 'خطایی در ارسال درخواست نام نویسی شما رخ داده است!';
			} else {
				do_action('user_register', $user_id);

				$success = 'نام نویسی شما با موفقیت به اتمام رسید، از شما ممنویم.';
			}

		}

	}
	?>

حال، کار ساخت فرم و ارسال اطلاعات به پایان رسیده است. اما به عنوان آخرین مرحله و نمایش یک نمونه ی قابل آزمایش، ما از این کدها در یک تمپلیت قالب برگه (سازگار با پوسته TwentyTwelve وردپرس) استفاده کردیم.
در این بخش جدای از کدها بالا:

  • از یک استایل جهت زیبا سازی بیشتر فیلدهای ورودی.
  • برچسب ها و توابع لازم به کار رفته در پوسته 2012.
  • و یک دایو مربوط به چاپ پیغام های ضروری که در بالا اشاره شد.

استفاده شده است.

* البته این را هم متذکر می شویم که این تنها روش نبوده و شما می توانید از فرم بالا در هر مکان و با هر روشی استفاده نمایید.
اما اگر قصد استفاده از آن را به صورت قالب برگه در پوسته خود دارید، کافی است تا با چند ویرایش ساده در برچسب ها و نام کلاس ها یا  آی دی ها آن را با پوسته خود سازگار کنید.

<?php
/*
Template Name: فرم عضویت
*/
?>
<style>
form label {
	display: block;
	font-weight: bold;
}
form input[type="text"], form input[type="password"] {
	border: 1px solid #F0F0F0;
	border-radius: 5px;
	-moz-box-shadow: 1px 1px #FFF, 1px 1px 1px #aaa inset;
	-webkit-box-shadow: 1px 1px #FFF, 1px 1px 1px #aaa inset;
	box-shadow: 1px 1px #FFF, 1px 1px 1px #aaa inset;
	padding: 10px 7px;
	width: 50%;
	background: #FFF;
	margin-top: 5px;
	font-family: Tahoma, Geneva, sans-serif;
	font-size: 15px;
	font-weight: bold;
	color: #666;
}
</style>
<?php get_header(); ?>
<?php
	$err = '';
	$success = '';

	global $wpdb, $PasswordHash, $current_user, $user_ID;

	if(isset($_POST['task']) && $_POST['task'] == 'register' ) {

		$pwd1 = $wpdb->escape(trim($_POST['pwd1']));
		$pwd2 = $wpdb->escape(trim($_POST['pwd2']));
		$first_name = $wpdb->escape(trim($_POST['first_name']));
		$last_name = $wpdb->escape(trim($_POST['last_name']));
		$email = $wpdb->escape(trim($_POST['email']));
		$username = $wpdb->escape(trim($_POST['username']));

		if( $email == "" || $pwd1 == "" || $pwd2 == "" || $username == "" || $first_name == "" || $last_name == "") {
			$err = 'لطفا تمامی فیلدهای الزامی را تکمیل نمایید.';
		} else if(!filter_var($email, FILTER_VALIDATE_EMAIL)) {
			$err = 'آدرس ایمیل نامعتبر است!';
		} else if(email_exists($email) ) {
			$err = 'این ایمیل قبلا در سایت ثبت شده است.';
		} else if($pwd1 <> $pwd2 ){
			$err = 'کلمات عبور با یکدیگر مطابقت ندارند.';		
		} else {

			$user_id = wp_insert_user( array ('first_name' => apply_filters('pre_user_first_name', $first_name), 'last_name' => apply_filters('pre_user_last_name', $last_name), 'user_pass' => apply_filters('pre_user_user_pass', $pwd1), 'user_login' => apply_filters('pre_user_user_login', $username), 'user_email' => apply_filters('pre_user_user_email', $email), 'role' => 'subscriber' ) );
			if( is_wp_error($user_id) ) {
				$err = 'خطایی در ارسال درخواست نام نویسی شما رخ داده است!';
			} else {
				do_action('user_register', $user_id);

				$success = 'نام نویسی شما با موفقیت به اتمام رسید، از شما ممنویم.';
			}

		}

	}
	?>
<div id="primary" class="site-content">
  <div id="content" role="main">
    <?php if (have_posts()) : while (have_posts()) : the_post(); ?>
    <article id="post-<?php the_ID(); ?>" <?php post_class(); ?>>
	  <header class="entry-header">
		<h1 class="entry-title"><?php the_title(); ?></h1>
	  </header>
      <div class="entry-content">
        <?php the_content(); ?>
        <div id="message">
          <?php 
			if(! empty($err) ) :
				echo '<p class="error">'.$err.'</p>';
			endif;
		?>
          <?php 
			if(! empty($success) ) :
				echo '<p class="error">'.$success.'</p>';
			endif;
		?>
        </div>
        <form method="post">
          <h4>آیا قبلا عضو نشده اید؟<br/>
            نام نویسی کنید.</h4>
          <p>
            <label>نام</label>
          </p>
          <p>
            <input type="text" value="" name="first_name" id="first_name" />
          </p>
          <p>
            <label>نام خانوادگی</label>
          </p>
          <p>
            <input type="text" value="" name="last_name" id="last_name" />
          </p>
          <p>
            <label>ایمیل</label>
          </p>
          <p>
            <input type="text" value="" name="email" id="email" />
          </p>
          <p>
            <label>نام کاربری</label>
          </p>
          <p>
            <input type="text" value="" name="username" id="username" />
          </p>
          <p>
            <label>رمز عبور</label>
          </p>
          <p>
            <input type="password" value="" name="pwd1" id="pwd1" />
          </p>
          <p>
            <label>تکرار رمز عبور</label>
          </p>
          <p>
            <input type="password" value="" name="pwd2" id="pwd2" />
          </p>
          <button type="submit" name="btnregister" class="button" >بفرست!</button>
          <input type="hidden" name="task" value="register" />
        </form>
      </div>
      <footer class="entry-meta">
        <?php edit_post_link( __( 'Edit', 'twentytwelve' ), '<span class="edit-link">', '</span>' ); ?>
      </footer>
      <!-- .entry-meta --> 
    </article>
    <?php endwhile; ?>
    <?php endif; ?>
  </div>
</div>
<?php get_sidebar(); ?>
<?php get_footer(); ?>

جهت استفاده از کد تکمیلی بالا، یک فایل php ساخته و پس از انتقال کدها آن را در پوشه اصلی قالب خود بارگذاری کنید. سپس به بخش افزودن برگه ها رفته و در تب “صفات برگه” قالب فرم عضویت را انتخاب کرده و آن را منتشر کنید.

این مقاله چقدر براتون مفید بود؟

از ۱ تا ۵ امتیاز بدید.

میانگین رتبه 0 / 5. تعداد رای : 0

تا حالا کسی رای نداده! اولین نفر شما باشید.

دانلود

هاست ارزان، لایت اسپید، سرور مجازی منطبق با اسکریپت های 20script کلیک کنید >

خرید ارز
مطلب مفیدی بود ؟
نویسنده : تیم محتوای 20اسکریپت 2 آموزش ها , مقالات,آموزش,ترفند
لینک کوتاه مطلب : https://www.20script.ir/?p=7735
کلمات کلیدی پست :
مطالب مرتبط
28,045فرم پرداخت آنلاین برای زرین پال تاریخ : 2014/04/4
11,636فرم Jquery طراحی فلت و واکنشگرا Flavr تاریخ : 2014/07/4
12,700ساخت انواع فرم در وردپرس با افزونه Visual Form Builder تاریخ : 2019/01/12
12,526افزونه وردپرس فرم تماس باما حرفه ای Ninja Kick: Contact Form تاریخ : 2015/06/7
14,868دانلود نرم افزار ایجاد فرم برای وب سایت Simfatic Forms تاریخ : 2017/10/17
9,706فرم ورود به سایت با نام apple تاریخ : 2013/10/30
13,206فرم ورود به سایت مدرن و زیبای الگانت تاریخ : 2014/08/5
25,942ساخت فرم های حرفه ای با اسکریپت PHP Form Builder تاریخ : 2020/06/14
26,416اسکریپت فرم های چند مرحله ای Step Form Wizard تاریخ : 2017/04/17
12,228فرم ورود جدید و بسیار زیبا CSS3 تاریخ : 2013/11/15
13,846دانلود فرم ارسال دیدگاه بسیار زیبا جی کوئری تاریخ : 2013/11/24
9,228فرم Killua ورود و ثبت نام به صورت Flat تاریخ : 2014/02/24
برخی از قالب های وبلاگ - بیست اسکریپت
قالب عشق بین انگشت هاقالب عشق بین انگشت ها
قالب دخترونه و آرایشقالب دخترونه و آرایش
قالب زیبای ماشینقالب زیبای ماشین
قالب فانتزی و طنز چِشمقالب فانتزی و طنز چِشم
قالب دختر رویاییقالب دختر رویایی
قالب وبلاگ دکوراسیونقالب وبلاگ دکوراسیون
قالب وبلاگ کلبه و درختقالب وبلاگ کلبه و درخت
قالب دختر زیباقالب دختر زیبا
قالب پسرونه غمگینقالب پسرونه غمگین
قالب عاشقانه قلبقالب عاشقانه قلب
بیست اسکریپت
اسکریپت
profile
sourceforge
profile webmaster
profile check
checker list
checker
checker
upload file