تغییر نقش های کاربری در ووکامرس (user role)
- اخبار
- ۲۱ اسفند ۱۴۰۱
- 2,152 بازدید
مطمئن باشید اگر به مدت چندین ساله که وبمستر هستین ، با نقش های کاربری سر و کار داشتید . نقش های کاربری در وردپرس یکی از موضوعات بسیار مهم است که به خاطر آن ، هزاران افزونه برای مدیریت و تغییر نقش ها ایجاد شده است . در وردپرس کلا کاربر بندی های سایت ، به چند دسته تقسیم میشود ( وابسته به نوع سایت و خدمات آن دارد ) . در ادامه میخواهیم به شما موضوعاتی را عرض نماییم که با استفاده از آنها ، بتوانید به راحتی نقش های کاربری سایت خود را دستخوش تغییر کنید و همچنین به مدیریت هر چه بهتر آنها بپردازید . برای یادگیری بیشتر در ارتباط با این مطالب وبیت را تا انتهای این مقاله همراهی کنید .
برخی ها میگویند تغییر user role که خیلی آسان است و نیازی به توضیحات این چنینی ندارد . بله در صورتی که فقط بخواهید نقش های کاربرانتان را تغییر دهید ( یکی یکی ) نیازی به مقاله هایی با این توضیحات نیست و به راحتی میتوانید نقش کاربری پیشفرض را در وردپرس تغییر دهید. روش کار بسیار ساده هست. کافیاست وارد بخش پیشخوان وردپرس > تنظیمات > عمومی شوید و user role پیشفرض وردپرس را به دلخواه خود تغییر دهید. اما این نقش کاربری پیشفرض برای ووکامرس قابل استفاده نیست. چرا که اگر ثبتنام خودکار هنگام خرید در ووکامرس را فعال کرده باشید یا اینکه از کاربر بخواهید موقع خرید در سایت شما، ابتدا ثبتنام کند؛ قطعا نقش کاربری پیشفرض، مشتری خواهد بود.
آنچه در این پست میخوانید
تغییر نقش کاربری پیشفرض در ووکامرس
بهتر است برایتان ابتدا داستان نقش های کاربری وردپرس را تشریح کنیم . بصورت دیفالت Role کاربرانی که در ووکامرس ثبت نام میکنند، user role هم Customer یا مشتری خواهد بود. اما شاید بخواهید با تغییر نقش کاربر پیشفرض در ووکامرس، یک Role جدید موقع ثبت نام به مشتریان خود دهید. فرض کنید یک سایت فروشگاهی ( با ووکامرس ) دارید و با استفاده از پنل کاربری خود ( وابسته به خدماتی که به کاربران ارائه میدهید ) میخواهید نقش های کاربری متفاوتی ایجاد کنید . تا هر کاربر بر اساس نقش کاربریش خدمات مشخص شده از طرف شما را دریافت کند .
راه حل های ساده تری برای انجام این کار وجود دارد . همچنین در وردپرس هوکها و فیلترهایی مخصوص این کار وجود دارند . مثلا ووکامرس مشخص کرده که با استفاده از یک فیلتر خاص، میتوانید مشخص کنید که موقع ثبتنام در ووکامرس چه مشخصههایی در پروفایل کاربر ذخیره شود. یکی از این مشخصهها نقش کاربر هست که دقیقا همینجا بهکار میآید. پس بیایید شروع کنیم و user role پیشفرض ووکامرس را تغییر دهیم.
استفاده از فیلتر woocommerce_new_customer_data
نام فیلتر مورد نظر در ووکامرس woocommerce_new_customer_data هست. با استفاده از این فیلتر میتوانیم دادههای ارسالی موقع ثبتنام کاربر در ووکامرس را تغییر دهیم. حالا از همین فیلتر استفاده میکنیم تا دادهها را تغییر دهیم. به عنوان مثال شما در وبیت ثبت نام میکنید . حال میخواهید اطلاعات ورودی شما را دستخوش تغییر کنیم . میتوانیم به راحتی از این طریق ، این کار را انجام دهیم .
$new_customer_data = apply_filters( 'woocommerce_new_customer_data', array(
'user_login' => $username,
'user_pass' => $password,
'user_email' => $email,
'role' => 'customer'
) );
کد بالا همان چیز هایی هستند که میتوانیم برای هر یک از کاربران تغییر دهیم . بدین معنی که ما میتوانیم نام کاربری ، پسورد ، ایمیل ، نقش کاربری و … را تغییر دهیم . اینجا با یک apply_filter مواجه هستیم. یعنی فیلتری با نام woocommerce_new_customer_data میتواند روی دادههای مشتریان جدید تاثیرگذار باشد. پس شروع میکنیم. باید role یا همان نقش کاربری را دستخوش تغییراتی کنیم.
استفاده از فیلتر
همانطور که میدانیم باید برای اضافه کردن یک فیلتر در وردپرس، از add_filter استفاده کنیم. به این شکل:
<?php add_filter( $tag, $function_to_add, $priority, $accepted_args ); ?>
توجه داشته باشید که ، کد بالا باید بعد از <?php قرار بگیرد.
خب شما بعد از اینکه تابع خود را ساختید و کدهای بالا را در ان قرار دادید ، میتوانید آن را به فیلتر وردپرسی اضافه کنیم . این اخرین مرحله از کارمون هست و همینجا کار با همین حجم از سادگی ، به پایان میرسه . همچنین فراموش نکنید که این کدهارا باید در فایل فانکشن قالب خود اضافه کنید . امیدواریم که از این مقاله نهایت لذت را برده باشید . چنانچه سوالی داشتید ، میتوانید از قسمت نظرات کاربران آن را با ما به اشتراک بگذارید .