Directory / plugin
CS-Login | ورود پیامکی، گوگل، ووکامرس، LearnDash و OTP
v2.0.4 · by Abolfazl Edalati
ورود و ثبتنام با OTP و گوگل، اعلان سفارش، اطلاع تخفیف و موجودی، خبرنامه پیامکی، سبد خرید رهاشده، LearnDash و ویجتهای Elementor.
About this plugin
CS-Login یک افزونه ورود و ثبت نام OTP برای وردپرس است. این افزونه امکان ورود کاربران با شماره موبایل و کد یکبار مصرف، ورود با Google، فرم قابل استفاده در شورت کد و Elementor، کپچای ورود و ثبت نام، محدودسازی تلاش های ورود، اعلان سفارشات ووکامرس، ارسال کد پیگیری، بازیابی سبد خرید رهاشده و جایگزینی فرم ورود LearnDash را فراهم می کند.
تمرکز افزونه روی مسیرهای ورود قابل اعتماد است: پیامک و گوگل. ربات بله علاوه بر اعلان سفارشات مدیر، میتواند یادآوریهای شخصی کاربران را نیز ارسال کند. کاربر شماره خودش را داخل ربات به Chat ID متصل میکند؛ ورود با بازوی بله در نسخه 1.9.2 اختیاری است و فقط برای شمارههایی کار میکند که با OTP به حساب وردپرس متصل شدهاند؛ ورود با تلگرام وجود ندارد.
قابلیتهای اصلی و قابلیتهای WooCommerce/اتوماسیون از صفحه تببندیشده «قابلیتها» مدیریت میشوند؛ امنیت و کپچا در تبهای فارسی داخل «تنظیمات اصلی» کنترل میشوند و Import / Export همیشه در ابزارها در دسترس است. ماژولهای وابسته به WooCommerce فقط وقتی خود WooCommerce فعال باشد در Runtime قابل اجرا هستند. در حالت غیرفعال، Hook، Cron، Class و Widget اختصاصی قابلیت بارگذاری نمیشود و تنظیمات قبلی برای ارتقای بدون تخریب حفظ میشوند.
تغییرات نسخه 2.0.4
- انتخاب و اجباری/اختیاری کردن فیلدهای ثبتنام فقط از منوی «ثبتنام و فیلدها» انجام میشود؛ هر دو ویجت Elementor و همه شورتکدها از همان تنظیمات استفاده میکنند.
- در حالت یکپارچه، شماره ثبتشده مستقیماً به دریافت/تأیید OTP میرود؛ شماره جدید پس از درخواست OTP فیلدهای ثبتنام را میبیند.
- در حالت تبدار، فیلدهای تکمیلی فقط در فرم ثبتنام دیده میشوند و فرم ورود ساده میماند.
- حذف کنترلهای تکراری فیلدها از Elementor و شورتکد؛ افزودن لینک مستقیم مدیریت فیلدها به فرم برای مدیر سایت.
- اجرای اعتبارسنجی اجباری/اختیاری بر پایه تنظیمات فعلی سرور و حفظ تنظیمات و شورتکدهای قدیمی.
تغییرات نسخه 2.0.3
- جداسازی «تمام شورتکدها» و «تنظیمات فرم شورتکد» همراه کارت مستقل و لینک تنظیمات.
- زیرمنوی بازشونده شاهکار و بازطراحی اتصال، لینکها و وضعیت تست API.
تغییرات نسخه 2.0.2
- سامانه شاهکار و سه زیرمنوی نگاشت فیلدها، استعلام کاربران و گزارش مصرف بهصورت لینکهای تودرتوی دائماً قابلمشاهده در سایدبار اصلی افزونه؛ دیگر برای دیدن آنها نیازی به بازکردن بخش سامانه شاهکار نیست.
- اصلاح عرض تمام صفحات سامانه شاهکار به ۱۰۰٪ فضای بخش محتوای مدیریت و حذف محدودیت قدیمی ۱۱۲۰ پیکسل. سایر صفحات افزونه بدون تغییر باقی ماندهاند.
- حفظ مسیرهای قدیمی، تنظیمات، فهرست استعلامها و قابلیتهای نسخه 2.0.1.
تغییرات نسخه 2.0.1
- منوی مستقل «سامانه شاهکار» زیر «ووکامرس و اعلانها» و زیرمنوهای «نگاشت فیلدها»، «استعلام کاربران» و «گزارش مصرف»؛ تنظیمات جداگانه و بدون تب افقی.
- نمایش فعالسازی سامانه شاهکار بهشکل سوییچ؛ حفظ کلید API و تمام تنظیمات نسخه قبل.
- فقط فیلدهای واقعی User Meta و گروههای فیلد کاربری ACF در نگاشت ارائه میشوند؛ کلید متای فرضی ایجاد نمیشود.
- امکان اختیاریِ الزام شاهکار پیش از پرداخت برای کاربران واردشده در Checkout کلاسیک و Checkout Blocks. بدون فیلد ملی واقعی یا اتصال موفق، پرداخت مسدود میشود.
- پس از تطبیق کد ملی و موبایل تأییدشده، کد ملی در متای کاربر ثبت و قفل میشود؛ تلاش برای تغییر از طریق پروفایل، ACF و WooCommerce با کنترل سمت سرور رد میشود.
- در صورت تغییر شماره موبایل متصل به حساب، اعتبار تطبیق نیازمند تأیید مجدد است؛ کد ملی قبلی همچنان غیرقابل تغییر میماند.
- اصلاح بستهشدن تگ اضافه در تنظیمات اتوماسیون ووکامرس، جلوگیری از نشت محتوای «پیام تولد» و سناریوهای بازاریابی در صفحات دیگر.
- حالت الزام شاهکار قبل از پرداخت پیشفرض خاموش است و فقط با فعالسازی مدیر آغاز میشود. پیش از انتشار عمومی، روی Checkout واقعی و با API مجاز تست شود.
تغییرات نسخه 2.0.0
- سامانه شاهکار و اتصال احرازینو: تست API، انتخاب و فعالسازی مستقل شاهکار و تبدیل کد پستی به نشانی.
- منوی جدید زیر «ووکامرس و اعلانها» برای استعلام مدیر، جستوجوی کاربر و نگاشت User Meta با فیلدهای ووکامرس/ACF و فرمسازها.
- استعلامهای اطلاعات هویتی، کارت بانکی/کد ملی، شبا/نام و کد ملی، چک صیادی، چک برگشتی، اطلاعات شرکت و صنف و مختصات کد پستی.
- نمایش تعرفه عمومی هر استعلام با دریافت از OpenAPI رسمی و تلاش برای بهروزرسانی روزانه؛ هزینه واقعی از پاسخ API خوانده میشود.
- نگهداری فقط شناسه درخواست، نام سرویس و هزینه در گزارش داخلی؛ کلید API و داده هویتی در لاگ نوشته نمیشود.
- سرویسهای هزینهدار بهصورت پیشفرض خاموشاند و اجرای دستی فقط برای مدیر اصلی سایت مجاز است.
- افزونه باید ابتدا روی محیط آزمایشی بررسی شود؛ بدون کلید معتبر، استعلام واقعی قابل تأیید نیست.
تغییرات نسخه 1.9.8
- افزودهشدن تنظیم مستقل روش تحویل کد OTP: پیامک پیشفرض، گفتوگوی بازوی بله برای حسابهای تأییدشده، سرویس Safir v2 و Safir v3.
- راهنمای گامبهگام داخل تنظیمات بله برای کاربران، مدیران، اتصال شماره، ورود با لینک بازو، دریافت کد، راهاندازی سفیر و عیبیابی.
- دکمه بررسی ارتباط Bot API و وضعیت Webhook، بدون افشای Token یا Secret در خروجی.
- حفظ الزام TOTP مدیران و تنظیمات قبلی افزونه؛ قابلیتهای جدید بهطور پیشفرض خاموش هستند.
- هنگام شکست ارسال بله، بازگشت اختیاری به پیامک قبلی؛ هشدار درباره دریافت پیام تکراری در خطاهای نامشخص شبکه.
- اسلاگ فنی ez-login و تنظیمات کاربران قبلی بدون تغییر باقی میماند.
تغییرات نسخه 1.9.6
- منوی «راهنمای شورتکدها»: کاربرد، فعال/غیرفعال بودن هر قابلیت و پیوند به بخش تنظیمات مربوط.
- امکان تعیین اجباری یا اختیاری بودن هر یک از فیلدهای ثبتنام انتخابی در تنظیمات شورتکد.
- کنترل اجباریبودن فیلدهای وردپرس و ووکامرس در هر ویجت Elementor، به همراه افزودن فیلد سفارشی با کلید جداگانه «اجباری باشد؟».
- اعتبارسنجی فیلدهای اجباری در فرم و سمت سرور، سازگار با شورتکدها و ویجتهای قدیمی.
- اسلاگ فنی ez-login و optionهای موجود حفظ شدهاند.
امکانات اصلی
- ورود و ثبت نام با شماره موبایل و OTP
- نمایش هر رقم OTP در یک باکس مستقل و زیبا، همراه با Paste، حرکت خودکار، Backspace و تکمیل خودکار مرورگر
- امکان انتخاب طول کد یکبارمصرف بین ۴ تا ۸ رقم
- Trusted Device با هشدار امنیتی، تاریخچه ورود، نمایش IP و مدیریت/لغو دستگاههای قابل اعتماد
- داشبورد آمار ورود، ثبتنام، خطاهای OTP و تبدیلهای WooCommerce
- اتوماسیون WooCommerce برای تولد، بازگشت مشتری و یادآوری خرید مجدد
- مرکز اعلانهای My Account برای مدیریت تخفیف، موجود شدن، خبرنامه، نظرسنجی، اتوماسیون و لغو عضویت
- Import / Export کامل تنظیمات CS-Login با فایل JSON برای انتقال بین سایت تست و سایت اصلی
- نام پیشفرض قابل تنظیم برای کاربران جدید و ابزار Ajax اصلاح کاربران قدیمی در دستههای ۵۰تایی
- منوی «چنجلاگ» برای مشاهده امکانات و بهبودهای هر نسخه به زبان ساده
- ارسال پیامک با ملی پیامک، حالت پترن به صورت پیش فرض
- پشتیبانی از روش پیشنهادی نام کاربری + API ملیپیامک و Console API
- تست کامل ملی پیامک در همان صفحه تنظیمات پیامک
- ورود با Google OAuth
- نمایش فقط ویجت «CS-Login پیشرفته» برای طراحیهای جدید و حفظ داخلی ویجت قدیمی برای صفحات ساختهشده قبلی
- شورت کد
[cs-login] - شورت کد خام
[cs-login]بهصورت پیشفرض ورود/ثبتنام یکپارچه؛ امکان انتخاب حالت تببندی، فقط ورود یا فقط ثبتنام - تنظیم آدرس پیش فرض بعد از ورود برای همه فرم ها
- امکان تعیین ریدایرکت در خود شورت کد
- کپچای یکپارچه برای ورود و ثبت نام
- Rate Limit پیشرفته برای شماره موبایل، IP، User Agent و تلاش اشتباه کد تایید
- سفارشی سازی صفحه wp-login.php
- اعلان سفارشات ووکامرس از طریق پیامک
- پشتیبانی از پترن مستقل ملی پیامک برای OTP، مشتری سفارش، مدیر سفارش، کد پیگیری و سبد خرید رهاشده
- ارسال کد پیگیری سفارش ووکامرس از صفحه سفارش و نمایش آن در حساب کاربر
- یادآور نظرسنجی محصول پس از X روز از تکمیل سفارش با متن عادی یا پترن مستقل ملیپیامک
- بازیابی سبد خرید رهاشده با پیامک زمانبندیشده بعد از X ساعت
- ساخت کوپن اختصاصی درصدی یا مبلغ ثابت، محدود به همان کاربر و معتبر به مدت Y روز
- پنل مدیریت جدید و یکپارچه با دسترسی سریع به همه بخشها
- راهنمای قدمبهقدم و توضیح کامل متغیرهای پترن و قالب در هر بخش
- کنترلهای کامل و دستهبندیشده استایل ویجت Elementor
- اعلان سفارشات ووکامرس به مدیران در بله
- المان Elementor «اطلاعرسانی شگفتانگیز» برای عضویت در اعلان تخفیف هر محصول
- المان Elementor «اطلاع از موجود شدن» برای محصولات ناموجود
- المان Elementor «خبرنامه پیامکی» برای عضویت شمارهها در خبرنامه تخفیفها
- تشخیص تخفیف تازه و ثبت تاریخچه قیمت قبلی/جدید برای خبرنامه
- خبرنامه تخفیفهای امروز، این هفته یا این ماه تا سقف ۱۰ محصول قابل تنظیم
- پشتیبانی متن عادی و پترن مستقل ملیپیامک برای تخفیف، موجودی و خبرنامه
- بخش یکپارچه «محصولات منتظر و شمارهها» با جدولهای AJAX جدا، حذف شمارههای تکراری، فیلتر نوع عضویت و خروجی Excel
- نمایش محصولات منتظر تخفیف/موجودی و تعداد و جزئیات مشترکان هر محصول با صفحهبندی AJAX
- سازگاری با LearnDash و جایگزینی لاگین LearnDash با CS-Login
- ثبت چند مدیر بله با Chat ID یا از طریق دستور ثبت داخل ربات
- امکان ارسال اعلان بله به کانال یا گروه خصوصی
راهنمای شورت کد
شورت کد اصلی افزونه بهصورت پیشفرض یک فرم یکپارچه نمایش میدهد؛ شماره موجود وارد حساب میشود و شماره جدید با همان مسیر ثبتنام میشود:
[cs-login]
برای جدا کردن حالت ها می توانید از mode استفاده کنید:
- فقط ورود:
[cs-login mode="login"] - فقط ثبت نام:
[cs-login mode="register"] - ورود و ثبت نام تب بندی شده:
[cs-login mode="tabs"]
برای تعیین آدرس بعد از ورود در همان شورت کد:
[cs-login redirect_url="/my-account/"]
فرم قدیمی link هم همچنان پشتیبانی می شود:
[cs-login link="/my-account/"]
اگر در تنظیمات عمومی افزونه «آدرس پیش فرض بعد از ورود» را وارد کنید، روی شورت کد، المنتور، ورود پیامکی و ورود با گوگل اعمال می شود؛ مقدار داخل شورت کد نسبت به تنظیم عمومی اولویت دارد.
سازگاری با LearnDash
سوییچ «سازگاری LearnDash» فقط زمانی در تب «قابلیتهای اصلی» نمایش داده میشود که خود LearnDash فعال باشد. در آن حالت میتوانید جایگزینی فرم ورود LearnDash با CS-Login را روشن یا خاموش کنید. اگر LearnDash فعال نباشد، فایل سازگاری آن Require نمیشود و منطق مربوط به آن در Runtime اجرا نخواهد شد.
کد پیگیری سفارش ووکامرس
در تب پیامک های بخش اعلان سفارشات، گزینه «ارسال کد پیگیری» قابل فعال سازی است. بعد از فعال شدن، مدیر در صفحه ویرایش سفارش ووکامرس می تواند کد پیگیری را وارد کند، گزینه ارسال پیامک را بزند و سفارش را ذخیره کند. کد در متای سفارش ذخیره می شود و کاربر پس از ورود به حساب خود، داخل جزئیات همان سفارش کد پیگیری را می بیند.
سبد خرید رهاشده ووکامرس
وقتی ووکامرس فعال باشد، تب «سبد خرید رهاشده» در صفحه اعلانها نمایش داده میشود. مدیر میتواند تعیین کند چند ساعت پس از آخرین فعالیت سبد، پیامک یادآوری ارسال شود. ارسال میتواند با پترن مستقل ملیپیامک یا متن عادی انجام شود.
افزونه میتواند همراه پیامک یک کوپن اختصاصی درصدی یا مبلغ ثابت بسازد. کوپن برای کاربر واردشده به شناسه همان کاربر محدود میشود و برای مهمان با توکن امن بازیابی، شماره موبایل و ایمیل کنترل میشود. مدت اعتبار کوپن بر حسب روز قابل تعیین است و لینک پیامک، محصولات و تعداد آنها را دوباره به سبد برمیگرداند.
این قابلیت در نبود ووکامرس منو، پردازش زمانبندیشده یا هوک فروشگاهی فعال نمیکند.
اعلان سفارشات در بله
بخش اعلان سفارشات دو تب جدا دارد:
- پیامک ها: تنظیمات ارسال پیامک به مشتری و مدیر
- بله و اعلان مدیر: تنظیمات ربات بله، ثبت مدیرها، کانال یا گروه خصوصی و قالب پیام بله
برای بله می توانید چند Chat ID عددی مدیر وارد کنید، یا یک کانال/گروه خصوصی به ربات بدهید و مدیران را داخل آن عضو کنید. برای مدیرها نباید username مثل @username وارد شود؛ مقدار درست باید Chat ID عددی دریافت شده از وبهوک، دستور ثبت یا دستور /id باشد. همچنین مدیر می تواند از طریق دستور ثبت داخل ربات، Chat ID خودش را به افزونه اضافه کند. ربات فقط به دستورهای /start، /help، /id و دستور ثبت مدیر پاسخ می دهد و به پیام های عادی جواب خودکار نمی فرستد.
راهنمای راهاندازی ورود با ربات بله
این راهنما مربوط به ورود اختیاری با بازوی بله است و با اعلانهای بله برای مدیر تفاوت دارد. همچنین آموزش در پنل تنظیمات CS-Login، کنار توکن بله و ثبت وبهوک، نمایش داده میشود.
پیشنیازها:
- دامنه عمومی با HTTPS معتبر و REST API قابلدسترسی از اینترنت؛ ارتباط خروجی سرور با tapi.bale.ai باید برقرار باشد.
- دسترسی مدیر به تنظیمات CS-Login و یک روش ورود پشتیبان تا پایان تست.
- حساب کاربری با شماره موبایلی که با OTP خود CS-Login تأیید شده است.
مراحل راهاندازی:
- در بله وارد https://ble.ir/botfather شوید و یک بازو بسازید؛ Bot Token و نام کاربری بازو را دریافت کنید. توکن را محرمانه نگه دارید.
- در پیشخوان وردپرس به CS-Login و تنظیمات ورود مدیریت بروید. «فعالسازی ورود با بازوی بله» را روشن کنید، Bot Token و نام کاربری بدون @ را وارد و ذخیره کنید.
- با دکمه «ثبت وبهوک بله» وبهوک اختصاصی افزونه را ثبت کنید و پاسخ موفق API را ببینید. افزونه مسیر وبهوک را میسازد و Secret اختصاصی آن نباید افشا شود.
- در «تنظیمات شورتکد» نمایش بله را روشن کنید. در صفحه موردنظر از
[cs-login]استفاده کنید؛ نیازی به پارامتر bale نیست. برای Elementor و فرم ورود مدیر کلید مستقل وجود دارد. - کاربر یکبار با OTP پیامکی CS-Login وارد سایت شود. سپس در بله بازو را باز کند،
/startبفرستد و فقط با دکمه «اشتراک شماره موبایل من»، شماره متعلق به خودش را به حساب وردپرس پیوند دهد. شماره صرفاً ثبتشده در billing_phone برای احراز مالکیت کافی نیست. - برای تست، پنجره ناشناس باز کنید؛ در فرم CS-Login ورود با بله را بزنید، لینک بازو را باز کنید و درخواست را تأیید کنید. درخواست مهلت محدود (حدود ۳ دقیقه) دارد و به مرورگر آغازکننده محدود است. TOTP مدیران همچنان الزامی میماند.
- برای لغو پیوند حساب در بازوی بله دستور
/disconnectرا ارسال کنید.
رفع خطاها:
- مشکل توکن یا ثبت وبهوک: نام بازو، توکن، HTTPS، REST API، قوانین WAF/Cloudflare و دسترسی سرور به tapi.bale.ai را بررسی کنید.
- عدم دریافت پاسخ در بله: وبهوک را از پنل دوباره ثبت کنید.
- رد اشتراک شماره: مخاطب باید متعلق به همان فرستنده باشد؛ شماره تایپی یا مخاطب شخص دیگر قابلقبول نیست.
- پیدا نشدن حساب وردپرس: شماره باید قبلاً با OTP افزونه تأیید و به همان حساب متصل شده باشد.
- دیدهنشدن دکمه: فعالبودن روش بله و نمایش آن در تنظیمات شورتکد یا Elementor و نام کاربری بازو را بررسی کنید.
- منقضیشدن لینک: درخواست تازهای از همان مرورگر آغاز کنید.
مستندات رسمی بله: https://docs.bale.ai/ و https://bale.ai/dev
نکته امنیتی: اتصال واقعی به وبهوک و ورود با بله باید پیش از استفاده عمومی روی سایت آزمایشی آزمایش شود.
اطلاعرسانی محصولات ووکامرس
CS-Login سه المان Elementor برای اطلاعرسانی محصولات WooCommerce دارد:
- اطلاعرسانی شگفتانگیز: کاربر برای یک محصول عضو میشود و در صورت ایجاد تخفیف تازه یا تغییر میزان تخفیف، پیامک دریافت میکند.
- اطلاع از موجود شدن: کاربر برای محصول ناموجود عضو میشود و پس از تغییر واقعی وضعیت به موجود، پیامک دریافت میکند.
- خبرنامه پیامکی: شماره کاربر در فهرست خبرنامه ذخیره میشود و مدیر میتواند فهرست محصولات تخفیفخورده امروز، این هفته یا …