فرم ارسال دیدگاه (نقد و بررسی) در ووکامرس، یکی از بخشهای حیاتی برای تعامل با مشتریان و دریافت بازخورد است. اما یک مانع کوچک میتواند نرخ مشارکت را به شدت کاهش دهد: اجباری بودن فیلد ایمیل.
به طور پیشفرض، وردپرس (که ووکامرس بر پایهی آن است) از کاربران میخواهد تا هنگام ارسال دیدگاه، نام و ایمیل خود را وارد کنند. این کار عمدتاً برای جلوگیری از هرزنامه (اسپم) و امکان استفاده از گراواتار (Gravatar) انجام میشود.
با این حال، بسیاری از مدیران فروشگاههای اینترنتی ترجیح میدهند این مانع را بردارند تا کاربران بیشتری ترغیب به ثبت نظر شوند. دریافت یک نقد و بررسی بدون ایمیل، بهتر از دریافت نکردن هیچ نقدی است.
در این مقاله، ما دو روش کامل را برای غیرضروری کردن فیلد ایمیل در فرم دیدگاه محصولات ووکامرس بررسی خواهیم کرد:
- روش ساده (سراسری): تغییر تنظیمات پیشفرض وردپرس که بر کل سایت تأثیر میگذارد.
- روش حرفهای (هدفمند): استفاده از کد PHP برای اختیاری کردن ایمیل فقط برای محصولات ووکامرس.
روش اول: غیرفعالسازی سراسری فیلد ایمیل در فرم دیدگاه وردپرس
این سادهترین و سریعترین راه است، اما یک نکته مهم دارد: این تنظیم برای تمام دیدگاهها در سایت شما (مثلاً در نوشتههای وبلاگ) نیز غیرضروری میکند.
اگر فروشگاه شما بخش وبلاگ فعالی ندارد یا برایتان مهم نیست که این تنظیم در همهجا اعمال شود، از این روش استفاده کنید.
مراحل انجام اختیاری کردن فیلد ایمیل در فرم دیدگاه:
- وارد پیشخوان وردپرس خود شوید.
- به منوی تنظیمات > گفتوگوها (Settings > Discussion) بروید.
- در بخش «دیگر تنظیمات دیدگاهها» (Other comment settings)، تیک گزینهی زیر را بردارید:
«نویسندهی دیدگاه باید نام و ایمیل خود را بنویسد» (Comment author must fill out name and email) - صفحه را به پایین اسکرول کرده و روی دکمه «ذخیره تغییرات» کلیک کنید.
تمام شد! اکنون اگر به صفحهی یکی از محصولات خود بروید و فرم دیدگاه را بررسی کنید، خواهید دید که علامت ستاره (*) از کنار فیلد ایمیل حذف شده و کاربران میتوانند بدون وارد کردن آن، نظر خود را ثبت کنند.
روش دوم: غیرضروری کردن ایمیل فقط برای محصولات (کد سفارشی PHP)
این روش هوشمندانهتر و پیشنهادی ما است، زیرا به شما امکان میدهد فیلد ایمیل را فقط برای فرم نقد و بررسی محصولات (product) غیرضروری کنید، در حالی که این فیلد برای سایر بخشهای سایت (مانند پستهای وبلاگ) همچنان ضروری باقی میماند.
این کار با افزودن یک قطعه کد کوتاه به فایل functions.php پوستهی فرزند (Child Theme) یا استفاده از یک افزونهی مدیریت اسنیپت (Code Snippets) انجام میشود.
هشدار: همیشه قبل از ویرایش فایل functions.php، از سایت خود یک نسخهی پشتیبان (بکآپ) تهیه کنید. استفاده از پوستهی فرزند (Child Theme) یا افزونهی مدیریت اسنیپت اکیداً توصیه میشود تا با بهروزرسانی پوسته، تغییرات شما از بین نرود.
کد زیر را به انتهای فایل functions.php خود اضافه کنید:
/**
* فیلد ایمیل را در فرم دیدگاه محصولات ووکامرس غیرضروری میکند.
* این کد هم نمایش ستاره (*) در فرانتاند و هم اعتبارسنجی در بکاند را مدیریت میکند.
* * @param bool $is_required مقدار اصلی گزینه (آیا ایمیل ضروری است یا خیر)
* @return bool مقدار تغییر یافته
*/
function make_email_not_required_for_reviews( $is_required ) {
// ۱. بررسی هنگام بارگذاری فرم (نمایش در فرانتاند)
// اگر در صفحهی محصول هستیم، فیلد را غیرضروری کن.
if ( function_exists('is_product') && is_product() ) {
return false;
}
// ۲. بررسی هنگام ارسال فرم (اعتبارسنجی در بکاند)
// چک میکند که دیدگاه برای کدام نوع پست در حال ارسال است.
if ( isset( $_POST['comment_post_ID'] ) ) {
$post_type = get_post_type( (int) $_POST['comment_post_ID'] );
if ( $post_type === 'product' ) {
return false; // برای محصولات، اعتبارسنجی ایمیل را غیرفعال کن
}
}
// ۳. در غیر این صورت، به تنظیمات پیشفرض وردپرس احترام بگذار
return $is_required;
}
add_filter( 'pre_option_require_name_email', 'make_email_not_required_for_reviews' );
این کد چگونه فیلد ایمیل در محصول ووکامرس را اختیاری میکند؟
این کد از یک فیلتر (Hook) بسیار کاربردی در وردپرس به نام pre_option_require_name_email استفاده میکند. این فیلتر به ما اجازه میدهد تا قبل از اینکه وردپرس بخواهد تنظیمات «اجباری بودن ایمیل» را از دیتابیس بخواند، مقدار آن را به صورت پویا تغییر دهیم.
- بررسی در فرانتاند: ابتدا کد با استفاده از is_product() چک میکند که آیا کاربر در حال مشاهدهی یک صفحهی محصول است یا خیر. اگر بله، مقدار را false (یعنی غیرضروری) برمیگرداند. این کار باعث میشود فرم دیدگاه محصول بدون ستارهی اجباری (*) نمایش داده شود.
- بررسی در بکاند: مهمتر از نمایش، اعتبارسنجی هنگام ارسال فرم است. وقتی فرم ارسال میشود، کد نوع پستی (post_type) را که دیدگاه برای آن ثبت شده، بررسی میکند. اگر نوع پست product باشد، مجدداً مقدار را false برمیگرداند تا وردپرس از بررسی اجباری بودن ایمیل صرفنظر کند و خطا ندهد.
- حالت پیشفرض: اگر کاربر در صفحهی محصول نباشد (مثلاً در یک پست وبلاگ باشد)، کد مقدار اصلی $is_required را برمیگرداند و ایمیل طبق تنظیمات اصلی وردپرس، اجباری خواهد بود.
غیرضروری کردن فیلد ایمیل در فرم دیدگاه ووکامرس میتواند به سادگیِ برداشتن یک تیک در تنظیمات وردپرس باشد (روش اول)، اما این کار بر کل سایت شما تأثیر میگذارد.
اگر به دنبال یک راهحل حرفهای و دقیق هستید که فقط فرم نقد و بررسی محصولات را هدف قرار دهد و تنظیمات وبلاگ شما را دستنخورده باقی بگذارد، استفاده از قطعه کد PHP (روش دوم) بهترین گزینه است. این روش کنترل کاملی به شما میدهد و تجربهی کاربری بهتری را برای مشتریان فروشگاه شما رقم میزند.