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

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

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

در این پست از بیست اسکریپت، آموزشی را آماده کرده ایم تا با کمک آن به سادگی هرچه تمام تر یک فرم عضویت ساده و کامل را در سایت خود پایه ریزی کنید.
همانطور که میدانید مهمترین بخش در ساخت یک فرم نام نویسی، برقراری ارتباط با پایگاه داده است. در این آموزش ما با استفاده از تابع ()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
کلمات کلیدی پست :
مطالب مرتبط
14,848دانلود نرم افزار ایجاد فرم برای وب سایت Simfatic Forms تاریخ : 2017/10/17
12,377فرم جستجو به صورت CSS , جی کوئری + PSD تاریخ : 2013/12/27
12,769فرم چند مرحله ای برای نصب اسکریپت تاریخ : 2014/02/27
12,216فرم ورود جدید و بسیار زیبا CSS3 تاریخ : 2013/11/15
12,684ساخت انواع فرم در وردپرس با افزونه Visual Form Builder تاریخ : 2019/01/12
21,061فرم فارسی ثبت نام فلت به صورت جی کوئری تاریخ : 2014/05/18
14,312ایجاد انواع فرم در سایت وردپرسی با Gravity Forms فارسی نسخه 1.9.16 تاریخ : 2016/02/29
12,514افزونه وردپرس فرم تماس باما حرفه ای Ninja Kick: Contact Form تاریخ : 2015/06/7
36,846دانلود نرم افزار ساخت فرم های تحت وب Arclab Web Form Builder تاریخ : 2017/08/31
121,969افزونه فارسی فرم ساز پیشرفته وردپرس Gravity Forms نسخه 2.5.9.3 + افزودنی ها تاریخ : 2021/08/24
9,698فرم ورود به سایت با نام apple تاریخ : 2013/10/30
15,062اسکریپت فرم ارتباط با ما با کد امنیتی ترسیمی تاریخ : 2014/05/30
برخی از قالب های وبلاگ - بیست اسکریپت
قالب عشق بین انگشت هاقالب عشق بین انگشت ها
قالب دخترونه و آرایشقالب دخترونه و آرایش
قالب زیبای ماشینقالب زیبای ماشین
قالب فانتزی و طنز چِشمقالب فانتزی و طنز چِشم
قالب دختر رویاییقالب دختر رویایی
قالب وبلاگ دکوراسیونقالب وبلاگ دکوراسیون
قالب وبلاگ کلبه و درختقالب وبلاگ کلبه و درخت
قالب دختر زیباقالب دختر زیبا
قالب پسرونه غمگینقالب پسرونه غمگین
قالب عاشقانه قلبقالب عاشقانه قلب
بیست اسکریپت
اسکریپت
profile
sourceforge
profile webmaster
profile check
checker list
checker
checker
upload file