ثبت نام در وردپرس فقط با ایمیل‌های خاص (مثلاً Gmail و Yahoo) بدون افزونه

آخرین بروزرسانی در تاریخ فوریه 25, 2026 توسط PersiaWebAdmin

آیا تا به حال برایتان پیش آمده که فرم ثبت‌نام سایت وردپرسی خود را فعال کنید، اما کاربران با ایمیل‌های یکبارمصرف و فیک در سایت عضو شوند؟ این ایمیل‌ها نه تنها ارزش بازاریابی ندارند، بلکه ممکن است امنیت سایت شما را نیز به خطر بیندازند. خوشبختانه نیازی به نصب افزونه‌های سنگین نیست؛ با اضافه کردن یک تکه کد ساده به فایل functions.php قالب فرزند (child theme) خود می‌توانید دامنه‌های ایمیل مجاز را تعریف کرده و ثبت‌نام با سایر دامنه‌ها را مسدود کنید. در این مقاله قدم به قدم این روش را به شما آموزش می‌دهیم.

چرا باید دامنه ایمیل کاربران را محدود کنیم؟

  • جلوگیری از اسپم و کاربران جعلی: ایمیل‌های موقت (مانند 10minutemail) اغلب برای ارسال هرزنامه یا سوءاستفاده از امکانات سایت استفاده می‌شوند.
  • افزایش کیفیت پایگاه کاربری: اگر سایت شما مخاطبان خاصی دارد (مثلاً دانشجویان یک دانشگاه یا کاربران حرفه‌ای)، می‌توانید فقط ایمیل‌های سازمانی یا دامنه‌های معتبر را مجاز کنید.
  • بهبود نرخ تحویل‌پذیری خبرنامه: خبرنامه‌هایی که به ایمیل‌های معتبر ارسال می‌شوند، نرخ بازشدگی بالاتری دارند و کمتر به عنوان اسپم علامت‌گذاری می‌شوند.

راه‌حل بدون افزونه: استفاده از هوک register_post

وردپرس یک هوک (hook) به نام register_post دارد که درست قبل از ثبت‌نام کاربر اجرا می‌شود و به شما اجازه می‌دهد داده‌های ورودی را اعتبارسنجی کنید. ما از همین هوک برای بررسی دامنه ایمیل استفاده می‌کنیم.

مرحله ۱: ایجاد قالب فرزند (Child Theme) – ضروری!

قبل از هر چیز، اگر از قالب آماده استفاده می‌کنید، حتماً یک قالب فرزند بسازید. در غیر این صورت، با بروزرسانی قالب اصلی، کدهای شما پاک خواهند شد. اگر قالب فرزند ندارید، می‌توانید به سادگی با ایجاد یک پوشه و دو فایل (style.css و functions.php) آن را بسازید.

مرحله ۲: افزودن کد به فایل functions.php قالب فرزند

کد زیر را در انتهای فایل functions.php قالب فرزند خود قرار دهید:

/**
 * محدود کردن دامنه ایمیل در فرم ثبت نام وردپرس
 *
 * @param string $login نام کاربری
 * @param string $email ایمیل کاربر
 * @param WP_Error $errors شیء خطاهای وردپرس
 */
function wp24_limit_email_domains( $login, $email, $errors ) {

    // آرایه دامنه‌های مجاز - می‌توانید آنها را تغییر دهید یا گسترش دهید
    $allowed_domains = array(
        'gmail.com',
        'yahoo.com',
        'outlook.com',
        'protonmail.com',
        'aol.com',
        'mail.com',
        'icloud.com'  // مثال اضافه شده
    );

    $is_allowed = false;
    $email_domain = strtolower( substr( strrchr( $email, '@' ), 1 ) );

    // بررسی می‌کنیم که آیا دامنه ایمیل در لیست مجاز وجود دارد؟
    if ( in_array( $email_domain, $allowed_domains ) ) {
        $is_allowed = true;
    }

    // اگر دامنه مجاز نبود، یک خطا ثبت می‌کنیم
    if ( ! $is_allowed ) {
        $errors->add( 'invalid_email_domain', sprintf(
            __( 'خطا: ثبت‌نام فقط با ایمیل‌های معتبر امکان‌پذیر است. لطفاً از یکی از دامنه‌های زیر استفاده کنید: %s', 'wp24-text-domain' ),
            implode( '، ', $allowed_domains )
        ) );
    }
}
add_action( 'register_post', 'wp24_limit_email_domains', 10, 3 );

توضیح کد

  • آرایه $allowed_domains : لیست دامنه‌هایی که مجاز به ثبت‌نام هستند. می‌توانید دامنه‌های دلخواه خود را اضافه یا حذف کنید.
  • strrchr( $email, '@' ) : بخشی از ایمیل بعد از علامت @ را استخراج می‌کند. سپس با substr از ایندکس ۱ به بعد (برای حذف خود @) دامنه را جدا می‌کنیم.
  • in_array : بررسی می‌کند که آیا دامنه استخراج‌شده در لیست مجاز وجود دارد یا خیر.
  • $errors->add() : اگر دامنه مجاز نباشد، یک پیغام خطا به وردپرس اضافه می‌کند که در صفحه ثبت‌نام نمایش داده می‌شود.
  • add_action : تابع ما را به هوک register_post متصل می‌کند.

مرحله ۳: ذخیره تغییرات و تست

پس از ذخیره فایل، به صفحه ثبت‌نام سایت خود بروید و یک ایمیل با دامنه غیرمجاز (مثلاً test@example.com) وارد کنید. با پیغام خطای تعریف‌شده مواجه خواهید شد و ثبت‌نام انجام نمی‌شود.

نکات تکمیلی و بهبودها

  • ایمن‌سازی بیشتر: می‌توانید از is_email() وردپرس نیز برای اعتبارسنجی ساختار ایمیل استفاده کنید، اما این کد خود ایمیل‌های نامعتبر را نیز تشخیص می‌دهد.
  • دامنه‌های سازمانی: اگر می‌خواهید فقط ایمیل‌های شرکتی (مثلاً @yourcompany.com) مجاز باشند، کافی است آن را به آرایه اضافه کنید.
  • پیغام خطای کاربرپسند: متن خطا را طوری بنویسید که کاربر متوجه علت شود. می‌توانید از sprintf و implode برای نمایش لیست دامنه‌ها به صورت خودکار استفاده کنید (همانطور که در کد بالا انجام شده است).
  • ترکیب با روش‌های دیگر: این روش را می‌توانید با افزونه‌های امنیتی یا کپچا ترکیب کنید تا امنیت بیشتری ایجاد کنید.
  • عدم نیاز به افزونه: با این تکنیک، از نصب یک افزونه اضافی که ممکن است سرعت سایت را کاهش دهد، جلوگیری می‌کنید.

سوالات متداول

آیا این کد روی ثبت‌نام از طریق شبکه‌های اجتماعی (مانند ورود با گوگل) هم اثر می‌کند؟

خیر، هوک register_post فقط برای فرم ثبت‌نام پیش‌فرض وردپرس کار می‌کند. اگر از افزونه‌های ثبت‌نام اجتماعی استفاده می‌کنید، باید از هوک‌های مخصوص آن افزونه بهره ببرید.

آیا می‌توانم کاربران موجود را نیز بر اساس دامنه ایمیل محدود کنم؟

این کد فقط برای ثبت‌نام‌های جدید اعمال می‌شود. برای فیلتر کردن کاربران فعلی، باید از کوئری‌های دیتابیس یا افزونه‌های مدیریت کاربران استفاده کنید.

اگر دامنه‌ای را اشتباه وارد کنم، چه کار کنم؟

کافیست آرایه $allowed_domains را ویرایش کنید. تغییرات بلافاصله اعمال می‌شود.

جمع‌بندی

با اضافه کردن چند خط کد به فایل functions.php قالب فرزند، می‌توانید به سادگی ثبت‌نام در وردپرس را به دامنه‌های ایمیل خاصی محدود کنید و از ورود کاربران با ایمیل‌های موقت و فیک جلوگیری نمایید. این روش سبک، سریع و بدون نیاز به افزونه است و به شما کنترل کاملی بر روی پایگاه کاربری‌تان می‌دهد. اگر تجربه یا سوالی در این زمینه دارید، خوشحال می‌شویم در بخش نظرات با ما و سایر کاربران پرشیا وب به اشتراک بگذارید.

برای خرید رپورتاژ آگهی ارزان قیمت می توانید با کارشناسان ما در تماس باشید.

اشتراک بگذارید :

بنیامین ولادوست، بنیان‌گذار و مدیر تیم تخصصی پرشیا وب، بیش از یک دهه تجربه حرفه‌ای در عرصۀ طراحی وب‌سایت، سئو، تولید محتوا، فروش رپورتاژ و بک‌لینک دارد. او با ترکیب دانش فنی و درک عمیق از رفتار کاربران، به برندها و کسب‌وکارها کمک می‌کند تا نه‌تنها ظاهر دیجیتال قدرتمندی داشته باشند، بلکه در نتایج جستجوی گوگل هم بدرخشند.

از سال ۲۰۱۳ فعالیت حرفه‌ای خود را در حوزه طراحی وب آغاز کرد و تاکنون بیش از 300 پروژه طراحی سایت و بهینه‌سازی سئو در صنایع مختلف اجرا کرده است. تجربه عملی او در پروژه‌های واقعی، به ویژه در کسب‌وکارهای ایرانی، موجب شده است بتواند راهکارهایی کاملاً کاربردی و بومی برای رشد آنلاین ارائه دهد.

طراحی و توسعه وب‌سایت‌های شرکتی، فروشگاهی و شخصی با تمرکز بر سرعت، امنیت و تجربه کاربری (UX)
استراتژی‌های سئو فنی، on-page و off-page برای افزایش رتبه در نتایج گوگل
تحلیل رقبا، تحقیق کلمات کلیدی و اجرای کمپین‌های تولید محتوا
مشاوره و اجرای رپورتاژ آگهی و لینک‌سازی هدفمند برای بهبود اعتبار دامنه
طراحی کمپین‌های دیجیتال مارکتینگ یکپارچه برای برندهای نوپا و فعال
مطالب آموزشی و مقالات سئویی که توسط بنیامین ولادوست در وبلاگ “پرشیا وب” منتشر می‌شوند، بر پایه جدیدترین الگوریتم‌های گوگل و استانداردهای جهانی تدوین شده‌اند. او به عنوان متخصص مورد اعتماد در حوزه دیجیتال مارکتینگ، تاکنون در بیش از ۲۰ مجموعه آموزشی و ورکشاپ تخصصی سخنرانی و تدریس داشته است. بسیاری از کسب‌وکارهای آنلاین موفق، مسیر رشد خود را با آموزش‌ها و راهنمایی‌های او آغاز کرده‌اند.

تمام راهکارها و خدماتی که توسط بنیامین ولادوست و تیم “پرشیا وب” ارائه می‌شوند، بر پایه صداقت، شفافیت و تحلیل داده‌های واقعی بنا شده‌اند. هدف او ارائه مشاوره‌ای است که نه بر اساس تبلیغات، بلکه بر پایه داده و عملکرد واقعی کسب‌وکارها باشد.

دیدگاه‌ خود را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

پیمایش به بالا