ساخت فرم عضویت چند مرحله ای و ایجاد محدودیت دسترسی محتوی سایت برای کاربرانی که لاگین نکرده اند

hamed-sli

تازه وارد
سلام دوستان

چطور میشه این امکان رو در یک سایت وردپرسی ایجاد کرد :

ببینید میخوام ترتیبی اتخاذ بشه که برخی از محتوی سایت در دسترس کاربرانی که لاگین نکرده اند و تعدادی فرم پیشرفته رو کامل نکرده اند قرارنگیره.

بدین شکل که کاربر ابتدا لاگین میکنه و "سه تا فیلد ایمیل،رمز و موبایل" رو کامل میکنه و ایمیل فعالسازی براش ارسال میشه و بعد با کلیک روی لینک موجود در ایمیل حساب کاربریش فعال میشه.

بعد از این مرحله هنوز هم دسترسی به کاربر داده نمیشه و باید یک سری مشخصات و فرم ها رو در حساب کاربریش کامل کنه و بعد از تکمیل اونها دسترسی به تمام صفحات براش امکان پذیر میشه.

فرم هایی رو که حتما باید کامل کنه دو نوع هستند: 1-برای اشخاص حقیقی

50kad7fets02a0z271f5.png


2-برای اشخاص حقوقی

1xqxanz71hxt2qqnfrof.png


این رو هم میدونم که میشه با افزونه Cimy User Extra Fields قابلیت ثبت نام با "سه تا فیلد ایمیل،رمز و موبایل" و فعال سازی توسط ایمیل رو ایجاد کرد.

و البته با Gravity Forms هم به سادگی فرم های بالا قابل ساخته

اما اینکه چطور بحث لاگین کردن،فرم ها و دسترسی یا عدم دسترسی رو به هم ارتباط بدم و یک فرآیند منظم چند مرحله ای رو ایجاد کنم سوال بندست...

البته اگه مورد بالا خیلی سخت باشه میشه  لاگین کردن رو در نظر نگیریم و  دسترسی به محتوا رو به شرط پرکردن یک فرم چند مرحله ای که ترجیحا با GravityForms ساخته شده ایجاد کنیم هم خوبه....

منتظر پاسخ اساتید هستم

باسپاس

 
آخرین ویرایش توسط مدیر:

hamed-sli

تازه وارد
شاید برای اینکه گفتم " منتظر پاسخ اساتید هستم" کسی جوابی نمیده که ریا نشه :))

دوستان لطف کنید  یه توضیحی...راهنمایی...نظری،چیزی.....؟

ممنون

 

Mohammad

مدیر انجمن
پرسنل مدیریت
دوستمون hannan نیستند. منتظر باشید پاسخ میدن

 

hamed-sli

تازه وارد
جناب آقای hannan بزرگوار همچنان  منتظر پاسختون هستم....

 

hannanstd.ir

مدیر انجمن و توسعه دهنده ووکامرس پارسی
سلام . دوست عزیز .... بنده فعلا این روزها به نت دسترسی ندارم و بابت تاخیر پوزش ...

شدنش رو که میشه اما یکم پیچیده هست .

راه اول :

شما میتونی با یکی از افزونه های ساخت نقش کاربری یک نقش کاربری اضافه درست کنی و بعدش بری داخل قابلت و یک شرط بذاری که محتوا رو برای اون نقش کاربری نشون نده .

حالا بیای از طریق افزودنی user regisration خود گراویتی فرم ، فرمت رو به این افزودنی متصل کنی و نوعش رو بذاری update user و حالا کسی که فرم رو پر کنه نقش کاربریش آپدیت میشه به اون نقشی که شما دوست داشتی مثلا مشترک و بعدش به محتوا دسترسی پیدا میکنه .

راه دوم :

راه حل بعدی اینه که بجای اینکه اول بیاد و عضو بشه و بعد فرم رو پر کنه از طریق افزودنی user regisration خود گراویتی فرم مرحله ثبت نمام رو با همون فرم ادغام کنید و سه تا فیلد ایمیل رمز و موبایل و هم به فرمت اضافه کنی و موقع اتصال فرمت به این ادانز نوعش رو بذاری create user .....

افزودنی user registraion رو میتونی از لینک زیر دانلود کنی و کار Cimy User Extra Fields رو هم برات انجام میده . نصبش کنی خودت میبینی که میشه متا ها و فیلدها و نقش مورد نظر رو روی فرم اعمال کرد :



 
آخرین ویرایش توسط مدیر:

hamed-sli

تازه وارد
سلام

اگه راه دوم رو انتخاب کنم یک مشکل دیگه باقی میمونه ، اون هم محدود کردن برخی از برگه ها و فرم ها از دید کاربرایی که عضو نیستند

در شرایطی که نمایانی یک برگه رو روی خصوصی میزارم کاربری که عضو نیست اگه روی برگه ی خصوصی کلیک کنه وارد صفحه ی 404 میشه و این اصلا جالب نیست

اگه راهنمایی کنید که چطور کاربر رو بعد از کلیک روی برگه ی خصوصی به صفحه ی ثبت نام هدایت کنم ممنون میشم...

 

hannanstd.ir

مدیر انجمن و توسعه دهنده ووکامرس پارسی
نیاز به خصوصی سازی نیست . کد زیر در قالب :

کد:
add_filter( 'the_content', 'show_content_for_login_user_persianscript_ir' );function show_content_for_login_user_persianscript_ir( $content ){                        if ( is_user_logged_in() )        return $content;    else        return 'دسترسی به این محتوا فقط برای اعضا امکان پذیر است .';}
 
آخرین ویرایش توسط مدیر:

hamed-sli

تازه وارد
متوجه عملکرد این کد نشدم

اگر ازین کد استفاده کنم اونوقت چطور باید برگه ی مدنظرم رو محدود به کاربران عضو کنم؟

محل دقیقی که باید کد کپی بشه رو هم  بفرمایین

سپاس

 

hannanstd.ir

مدیر انجمن و توسعه دهنده ووکامرس پارسی
متوجه عملکرد این کد نشدم

اگر ازین کد استفاده کنم اونوقت چطور باید برگه ی مدنظرم رو محدود به کاربران عضو کنم؟

محل دقیقی که باید کد کپی بشه رو هم  بفرمایین

سپاس
کد رو بذارید داخل functions.php ....

فقط حواستون باشه داخل تگ php باشه .

این کد میاد چک میکنه اگه کاربر لاگین شده بود محتوا رو بهش نشون میده .... اگه کاربر لاگین نشده بود بجای محتوا جمله "دسترسی به این محتوا فقط برای اعضا امکان پذیر است ." رو مینویسه .

خیر لازم نیست کار اضافه ای داخل برگه ها صورت بگیره و خودکار عمل میکنه .

 

hamed-sli

تازه وارد
اما من نمیخوام که همه ی سایت رو محدود کنم

فقط چندتا برگه ی خاص رو میخوام خصوصی کنم... :63:

 

hannanstd.ir

مدیر انجمن و توسعه دهنده ووکامرس پارسی
اما من نمیخوام که همه ی سایت رو محدود کنم

فقط چندتا برگه ی خاص رو میخوام خصوصی کنم... :63:
هر برگه ای یه پست آیدی داره ..... پست آیدی اون برگه ها رو جایگزین 1 و 2 و 3 بکن و برگهه ای بیشتری هم خواستی الکو رو ادامه بده و بجای کد بالا از کد زیر استفاده کن :

کد:
add_filter( 'the_content', 'show_content_for_login_user_persianscript_ir' );function show_content_for_login_user_persianscript_ir( $content ){  		$ids = array('1', '2', '3');	    if ( ! is_user_logged_in() && in_array( $GLOBALS['post']->ID , $ids ) )        return 'دسترسی به این محتوا فقط برای اعضا امکان پذیر است .';			return $content;}
 
بالا