ইউজার পারমিশন নিয়ে একটি প্রশ্ন
আমি একটি স্কুলের সাইট তৈরী করেছি, যা দেখার জন্য এখানে ক্লিক করুন।
এখানে একটি ছাত্র/ছাত্রী লিষ্ট এবং শিক্ষক / শিক্ষিকা লিষ্ট আছে।
আর আমার ইউজার লিষ্টে ইউজার রোল হিসেবে
computer_operator
data-entry
students
teachers
এবং ওয়ার্ডপ্রেসের ডিফল্ট উইজার রোল গুলো আছে, নিচের ছবিটি দেখতে পারেন।
এখন আমি চাচ্ছি, শিক্ষক / শিক্ষিকাদের ইনফো দেখতে হলে, তাকে অবশ্যই teachers রোল পারমিশন আইডি থেকে লগইন থাকতে হবে।
মানে টিচারের পারমিশন দেখতে পারবে শুধু
teachers
computer_operator
data-entry
এডমিন, এডিটর।
মানে কোন পাবলিক এবং ছাত্র/ছাত্রীদের আইডি থেকে এটা ভিউ করা যাবে না। আমি জানি এ্যডমিনদের জন্য একটি is_admin() নামে একটি ফাংশন আছে, কিন্তু আমি আমার তৈরী এই কাস্টোম ইউজার রোল গুলোকে কিভাবে পারমিশন দিবো?
বিষয়টি হয়তো আপনাদের সঠিক ভাবে বুঝাতে পারতেছি না 🙁
এই লিংকটি দেখুন, এখানে ক্লিক করলে সবাই এই লিস্ট দেখতে পারতেছে। কিন্তু আমি চাচ্ছি আমার নিদিস্ট ইউজার রোলদের পারমিশন দিতে, তারা শুধু লগইন করেই এই পেজটি দেখতে পারবে।
ধন্যবাদ, সবার উত্তরের অপেক্ষায় রাইলাম।
সম্পূর্ণ পরিষ্কার না বিষয়টা, তারপরও যতটুকু বুঝেছি, একটা সমাধান মাথায় কাজ করছে। আপনি বেশকিছু ইউজার রোল তৈরি করেছেন। এখানে কিছু ক্যাপাবিলিটি তৈরি করুন। যেসব ইউজারদের সেই ক্যাপাবিলিটি থাকবে তারাই কেবল নির্দিষ্ট কোন পেজ দেখতে পারবে। ক্যাপাবিলিটি চেক করার কোড হচ্ছে:
if( current_user_can('capability_name') ) {
// page you want to display
}
এরপরও সমস্যা হলে মন্তব্য করে জানাতে পারেন। আমি চেষ্টা করবো যতটুকু সাধ্য আছে সাহায্য করার।
ভাই আমি দুইটি ব্যবহার করলে কাজ করে, কিন্তু যখন একই নিয়মে তিনটি বা একাদিক ইউজার পারমিশন দিতে চাই তখন এই ইরোর আসে। তাহলে কি আমার একাদিক ব্যবহারের নিয়মে ভুল আছে এখানে দেখুন:
<?php if( current_user_can(‘student_teacher_panel_manager’) || current_user_can(‘administrator’) ) || current_user_can(‘student_manager’) ) : ?>
ইরোর আসে:
Parse error: syntax error, unexpected ‘||’ (T_BOOLEAN_OR) in C:\xampp\htdocs\pak\wp-content\themes\edu\single-teachers.php on line 8
উল্লেখ্য যে, আমি শেষে endif করেছি, শুধু যখন আমি দুই বেশি একাদিক ব্যবহার করতে চাই তখনই ইরোর আসে। এ ছাড়া আপনার দেয়া নিয়মে দুইটিতে কাজ করে।
ওহ, সরি ভাই, পেয়েছি, এখানে একটি বেরাকেটের সমস্যা ছিলো।
ধন্যবাদ ভাই, দেখি চেস্টা করি, সমস্যা বা সাকসেস হলে জানাবো।<br>তবে একাদিক উইজাদের নাম দিতে চাইলে? শুধু && ব্যবহার করলেই হবে? যেমন: <br><br>if( current_user_can('teachers' && 'computer_operator') ) {<br> // page you want to display<br>}<br><br>এই রকম?
ধন্যবাদ ভাই, দেখি চেস্টা করি, সমস্যা বা সাকসেস হলে জানাবো।
if( current_user_can(‘teachers’) || current_user_can(‘computer_operator’) ) {// page you want to display}এরকম হবে।