=== Faraz SMS — افزونه پیامک فراز اس‌ام‌اس ===
Contributors: farazsms
Tags: sms, woocommerce, gravity-forms, elementor, otp, persian, iran, marketing-automation
Requires at least: 5.8
Tested up to: 6.7
Requires PHP: 7.4
Stable tag: 3.21.30
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

افزونه جامع پیامک فراز اس‌ام‌اس برای ووکامرس، گرویتی فرم، المنتور و میهن پنل — اطلاع‌رسانی، بازاریابی و OTP.

== Description ==

افزونه **فراز اس‌ام‌اس** ابزار حرفه‌ای پیامک برای فروشگاه‌های وردپرسی است. با اتصال به سامانه فراز اس‌ام‌اس (api.iranpayamak.com)، می‌توانید پیامک‌های اطلاع‌رسانی، بازاریابی، و OTP ارسال کنید.

= قابلیت‌های اصلی =

* **کد رهگیری سفارش** با پشتیبانی از پست، تیپاکس و سایر سرویس‌های ارسال (سه پترن مجزا)
* **سبد خرید رهاشده** — بازگردانی مشتریان با پیامک خودکار و گزارش بازگشت
* **نظرسنجی پس از خرید** — جمع‌آوری بازخورد مشتریان
* **خبرنامه پیامکی** — مشترکین، شورت‌کد، ویجت، ارسال انبوه
* **موجود شد خبرم کن** — اطلاع‌رسانی بازگشت موجودی محصول
* **اتومیشن مارکتینگ** — پیامک زمان‌دار بر اساس وضعیت سفارش
* **پیامک سطح محصول** — مثلاً «موعد تعویض فیلتر» ۳ ماه بعد از خرید
* **خرید شارژ مستقیم** — بسته‌های ۱، ۳، ۵ و ۱۰ میلیون تومانی از پنل افزونه
* **لید مگنت** — پاپ‌آپ اعتبار رایگان برای جمع‌آوری شماره موبایل بازدیدکنندگان
* **OTP برای فرم‌ها** — اعتبارسنجی موبایل در گرویتی فرم و المنتور
* **یکپارچگی با میهن پنل** — به‌عنوان سرویس‌دهنده پیامک OTP
* **پنل وضعیت اتصال + تست SMS** — تأیید سریع راه‌اندازی
* **داشبورد یکپارچه** — رابط کاربری مدرن با ناوبری گروه‌بندی‌شده
* **همگام‌سازی با افزونه پیامک ووکامرس** — کلید مشترک بدون تنظیمات دوگانه

= معماری بهینه =

* بارگذاری مشروط ماژول‌ها بر اساس فعال بودن WooCommerce / Gravity Forms / Elementor / MihanPanel / PWSMS — سایت‌های بدون این افزونه‌ها هزینه پردازشی نمی‌دهند
* Cache هوشمند با transient (اعتبار پنل، sitemap محصولات، خطوط ارسال)
* cURL fallback خودکار برای هاست‌هایی که `wp_remote_post` را مسدود می‌کنند
* Rate-limit پیشرونده روی OTP (60s → 5m → 15m → 1h) با cap روزانه per-IP و global hourly
* Debounce روی hookهای پربازدید (cart tracking, sync)

= امنیت =

* تمام endpointهای AJAX با `check_ajax_referer()` و `current_user_can()` محافظت شده‌اند
* تمام queryهای دیتابیس با `$wpdb->prepare()`
* تمام خروجی‌های HTML با `esc_html`، `esc_attr`، `esc_url`
* OTP با `random_int()` (CSPRNG) + brute-force lockout
* IDOR protection روی همه عملیات سفارش/مشترک

= نیازمندی‌ها =

* WordPress 5.8 یا بالاتر
* PHP 7.4 یا بالاتر (تست‌شده روی 8.3 و 8.4)
* حساب کاربری فعال در [farazsms.com](https://farazsms.com)
* WooCommerce 6.0+ برای استفاده از قابلیت‌های ووکامرس (اختیاری)
* Gravity Forms / Elementor / MihanPanel / Digits برای ادغام‌های مرتبط (اختیاری)

== Installation ==

1. فایل ZIP افزونه را از این صفحه دانلود کنید
2. در پیشخوان وردپرس به **افزونه‌ها → افزودن** بروید
3. روی **بارگذاری افزونه** کلیک کنید و فایل ZIP را انتخاب کنید
4. پس از نصب، روی **فعال‌سازی** کلیک کنید
5. به منوی **فراز اس‌ام‌اس → تنظیمات** بروید
6. کلید دسترسی (Api-Key) را از پنل [sms.farazsms.com](https://sms.farazsms.com) دریافت و وارد کنید
7. در داشبورد، دکمه «تست ارسال پیامک» را برای تأیید اتصال بزنید

== Frequently Asked Questions ==

= چطور کلید دسترسی Api-Key بگیرم؟ =

وارد پنل [sms.farazsms.com](https://sms.farazsms.com) شوید → بخش «مدیریت کلیدهای دسترسی» → ساخت کلید جدید → کپی کلید → چسباندن در فیلد تنظیمات افزونه.

= چرا پیامک‌های من ارسال نمی‌شود؟ =

سه دلیل احتمالی:

* **کلید دسترسی اشتباه** — در داشبورد افزونه، پنل «وضعیت اتصال» باید «متصل ✓» را نشان دهد. اگر نه، کلید را بازبینی کنید.
* **پترن تأیید نشده** — پس از ساخت پترن در پنل فراز، باید تا یک ساعت برای تأیید توسط مدیر پنل صبر کنید. تا قبل از تأیید، ارسال انجام نمی‌شود.
* **اعتبار ناکافی** — در داشبورد، کارت «اعتبار پنل» را چک کنید. اگر کم است، از همان داشبورد می‌توانید بسته‌ی شارژ خرید کنید.

= آیا بدون ووکامرس کار می‌کند؟ =

بله. قابلیت‌های مستقل (خبرنامه پیامکی، ارسال پیامک، OTP فرم‌ها، MihanPanel) بدون نیاز به ووکامرس فعال‌اند. ماژول‌های وابسته (کد رهگیری، سبد رهاشده، نظرسنجی) فقط اگر ووکامرس فعال باشد بارگذاری می‌شوند.

= نسخه رایگان داره یا باید پولی بخرم؟ =

افزونه رایگان است. هزینه فقط برای ارسال پیامک به پنل فراز اس‌ام‌اس پرداخت می‌شود (تعرفه روی [farazsms.com](https://farazsms.com)).

= شارژ خریداری شده قابل بازگشت است؟ =

خیر. مطابق سیاست فراز اس‌ام‌اس، **شارژ خریداری شده قابل بازگشت نیست**. قبل از پرداخت از مبلغ مطمئن شوید.

= چطور به‌عنوان سرویس‌دهنده در میهن پنل فعال شود؟ =

پس از فعال بودن میهن پنل، در تنظیمات SMS میهن پنل، گزینه «فراز اس‌ام‌اس» در لیست providerها ظاهر می‌شود. آن را انتخاب و کلید + کد پترن را وارد کنید.

= حذف افزونه دیتای من را پاک می‌کند؟ =

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

== Screenshots ==

1. داشبورد یکپارچه با کارت‌های اعتبار، آمار و دسترسی سریع
2. تنظیمات کد رهگیری با سه پترن مجزا (پست/تیپاکس/سایر)
3. پنل خرید شارژ با چهار بسته پیشنهادی
4. صفحه ارسال پیامک با انتخاب منبع گیرنده
5. اتومیشن مارکتینگ — پیامک زمان‌دار بر اساس وضعیت سفارش
6. لید مگنت — پاپ‌آپ جذب مشترک

== Changelog ==

= 3.13.13 =
* رفع باگ امنیتی CRITICAL: بسته شدن دسترسی subscriberها به ویرایش کد رهگیری سفارش
* امنیت: rate-limit پیشرونده OTP برای جلوگیری از spam vector
* بهینه‌سازی: حذف full-table-scan روی wp_options در invalidate sitemap cache
* بهینه‌سازی: SELECT با ستون‌های محدود در cron سبد رهاشده
* بهینه‌سازی: debounce روی hookهای cart tracking
* بهینه‌سازی: cache یک‌ساعته برای initial apikey sync
* بهینه‌سازی: enqueue شرطی select2/jQuery Validate (فقط صفحات لازم)
* بهینه‌سازی: TTL credit cache از ۵ دقیقه به ۱۵ دقیقه افزایش
* UX: حذف ارجاعات `%sitename%` از مستندات UI

= 3.13.11 =
* لید مگنت: پیش‌فرض فعال + کارت hero انگیزشی

= 3.13.10 =
* اتومیشن: متغیرهای کامل سفارش (نام، نام خانوادگی، تلفن، مبلغ، آدرس، ...)
* اتومیشن: helper مشترک `fwss_get_order_variables()` و `fwss_replace_variables()`
* اتومیشن: حذف پیام «جهت فعالسازی افزونه...»

= 3.13.9 =
* UI: CSS polish سراسری (دکمه‌ها، فیلدها، نوتیس‌ها، تب‌ها)
* اتومیشن: استفاده از کلید اصلی به‌جای فیلد جداگانه
* حذف نوتیس «حساب کاربری در سایت رسمی...»

= 3.13.8 =
* اضافه شدن به‌عنوان provider در میهن پنل (mihanpanel_sms_providers filter)
* ماژول `wto-mihanpanel-provider`

= 3.13.7 =
* Multi-pattern کد رهگیری: سه پترن مجزا برای پست/تیپاکس/سایر
* Dropdown «نوع پست» در metabox سفارش ووکامرس

= 3.13.6 =
* بهینه‌سازی Performance: بارگذاری مشروط ماژول‌ها بر اساس active_plugins
* helper تشخیص افزونه‌های جانبی `inc/wto-deps.php`

= 3.13.5 =
* قابلیت خرید شارژ مستقیم با بسته‌های پیشنهادی (۱، ۳، ۵، ۱۰ میلیون)
* اصلاح login.farazsms.com → sms.farazsms.com

= 3.13.0 =
* داشبورد یکپارچه با قاب مشترک برای همه صفحات
* صفحه «داشبورد» با stat cards و فید فعالیت
* بهینه‌سازی منو و گروه‌بندی

== Upgrade Notice ==

= 3.13.13 =
رفع باگ امنیتی critical (IDOR در ویرایش سفارش) + بهینه‌سازی برای سایت‌های با ۱۰k+ محصول. به‌روزرسانی توصیه می‌شود.

== Privacy ==

این افزونه برای ارسال پیامک، اطلاعات زیر را به سامانه فراز اس‌ام‌اس (api.iranpayamak.com) می‌فرستد:

* شماره موبایل گیرنده
* متن پیام یا کد پترن + متغیرها
* کلید دسترسی شما (در header HTTPS)

هیچ داده‌ای به سرور سوم (غیر از فراز اس‌ام‌اس) ارسال نمی‌شود.
