=== Khateweb Tools ===
Contributors: khateweb
Tags: image optimization, webp, performance, lighthouse, seo, uptime, ssl
Requires at least: 6.0
Tested up to: 7.1
Requires PHP: 7.4
Stable tag: 1.6.0
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

بهینه‌سازی تصاویر کتابخانه رسانه و واکاوی عملکرد سایت با استفاده از API خط وب ابزار.

== Description ==

این افزونه سایت وردپرسی شما را به سرویس «خط وب ابزار» متصل می‌کند:

* بهینه‌سازی تصاویر (WebP/AVIF/…): به‌صورت خودکار هنگام آپلود یا دستی از فهرست رسانه‌ها.
* واکاوی عملکرد سایت با Lighthouse از داخل پیشخوان وردپرس، با فهرست مهم‌ترین مشکل‌ها و صرفه‌جویی‌ها.
* «سلامت سایت»: بررسی گواهی SSL، سئوی فنی و لینک‌های خراب صفحه‌ی اصلی با یک کلیک.
* ویجت‌های پیشخوان: روند سرعت سایت و وضعیت آپتایم مانیتورها.

برای استفاده به یک کلید API از داشبورد خط وب ابزار (بخش «کلیدهای API») و پلن دارای دسترسی API نیاز دارید.

== Installation ==

1. پوشه `khateweb-tools` را در `wp-content/plugins/` قرار دهید (یا فایل zip را از مسیر افزونه‌ها آپلود کنید).
2. افزونه را از منوی «افزونه‌ها» فعال کنید.
3. به «تنظیمات ← خط وب ابزار» بروید و کلید API را وارد کنید (آدرس سرویس ثابت و از پیش تنظیم‌شده است).
4. برای بررسی کلی تصاویر سایت به «رسانه‌ها ← بررسی تصاویر» بروید.
5. برای واکاوی سایت (در صورت فعال بودن) به «ابزارها ← واکاوی سایت» بروید.
6. برای بررسی SSL، سئو و لینک‌های خراب به «ابزارها ← سلامت سایت» بروید.

== Frequently Asked Questions ==

= کلید API را از کجا بگیرم؟ =
از داشبورد خط وب ابزار، بخش «کلیدهای API». دسترسی API نیازمند پلن مناسب است.

= آیا فایل اصلی تصویر جایگزین می‌شود؟ =
فقط زمانی که خروجی بهینه‌شده کوچک‌تر از فایل اصلی باشد، فایل بازنویسی می‌شود. اگر فرمت خروجی با فرمت اصلی فرق کند (مثلاً JPEG به WebP)، پسوند و نوع فایل پیوست هم به‌درستی به‌روزرسانی می‌شود و فایل قدیمی حذف می‌شود.

= نسخه اصلی تصویر از بین می‌رود؟ =
نه. پیش از اولین بهینه‌سازی هر تصویر، نسخه اصلی در پوشه‌ای محافظت‌شده (`uploads/khateweb-backup/`) نگه داشته می‌شود. با گزینه «بازگردانی نسخه اصلی» از فهرست رسانه‌ها می‌توانید هر زمان آن را برگردانید.

= آیا اندازه‌های دیگر تصویر (thumbnail، medium، large) هم بهینه می‌شوند؟ =
بله. علاوه بر فایل اصلی، هر اندازه‌ای که وردپرس هنگام آپلود ساخته باشد نیز پردازش و بازنویسی می‌شود (در صورتی که خروجی کوچک‌تر باشد).

= تصاویری که قبلاً بهینه شده‌اند دوباره پردازش می‌شوند؟ =
نه به‌صورت پیش‌فرض. وضعیت هر بهینه‌سازی ذخیره می‌شود تا از پردازش تکراری و مصرف اضافه سهمیه API جلوگیری شود. برای بهینه‌سازی دوباره، از گزینه «بهینه‌سازی دوباره با خط وب» استفاده کنید.

= بهینه‌سازی گروهی (bulk) چطور کار می‌کند؟ =
از فهرست رسانه‌ها چند تصویر را انتخاب کنید، از منوی «اقدامات گروهی» گزینه «بهینه‌سازی با خط وب» را بزنید. پردازش یکی‌یکی و با فاصله زمانی کوتاه بین درخواست‌ها انجام می‌شود تا سهمیه API یک‌باره مصرف نشود.

= از کجا بفهمم چقدر از سهمیه‌ام باقی مانده؟ =
در «تنظیمات ← خط وب ابزار» یک داشبورد وضعیت اتصال نشان می‌دهد چند درخواست از سهمیه ماهانه API و چند بار از حد روزانه تبدیل تصویر/واکاوی سایت استفاده شده است. با دکمه «تازه‌سازی» می‌توانید بدون رفرش صفحه، آخرین وضعیت را ببینید.

= آپدیت افزونه چطور انجام می‌شود؟ =
افزونه از مکانیزم استاندارد به‌روزرسانی خودِ وردپرس استفاده می‌کند. وقتی نسخه جدیدی روی سرویس خط وب ابزار منتشر شود، در صفحه «افزونه‌ها» یک اعلان به‌روزرسانی می‌بینید؛ دکمه «Update Now» فایل جدید را دانلود و نصب می‌کند، دقیقاً مثل افزونه‌های رسمی وردپرس. برای بررسی فوری (بدون منتظر ماندن)، لینک «بررسی به‌روزرسانی» زیر نام افزونه در همان صفحه را بزنید.

== Changelog ==

= 1.6.0 =
* صفحه‌ی جدید «ابزارها ← سلامت سایت»: بررسی گواهی SSL (انقضا، زنجیره، TLS، HSTS، ریدایرکت https)، سئوی فنی و لینک‌های خراب صفحه‌ی اصلی. هر بررسی با دکمه اجرا می‌شود (نه خودکار) و یک درخواست از سقف ماهانه‌ی API مصرف می‌کند؛ آخرین نتیجه‌ی هر کدام ذخیره می‌ماند.
* ویجت «وضعیت سایت» در پیشخوان: وضعیت مانیتورهای آپتایم، درصد در دسترس بودن ۳۰ روز، زمان پاسخ، هشدار نزدیک بودن انقضای SSL و قطعی جاری (مصرف سهمیه ندارد).
* نتیجه‌ی واکاوی سایت کامل‌تر شد: TTFB، FCP، TBT، Speed Index، وزن و تعداد درخواست‌های صفحه، مهم‌ترین مشکل‌ها، بیشترین صرفه‌جویی‌ها و فناوری‌های به‌کاررفته در سایت.
* داشبورد وضعیت اتصال برای پلن‌های بدون سقف «نامحدود» می‌نویسد، نه عدد ۹٬۹۹۹.
* پوشه‌ی قدیمی پشتیبان نسخه‌های پیش از ۱.۴.۰ (uploads/khateweb-backup) حالا از دسترسی مستقیم وب محافظت می‌شود؛ فایل‌ها سر جای خود می‌مانند و بازگردانی ادامه دارد.
* با حذف افزونه، داده‌های موقت و آخرین نتیجه‌ی بررسی‌های سلامت هم پاک می‌شود.

= 1.5.0 =
* ویجت «سرعت سایت» در پیشخوان وردپرس: آخرین امتیاز عملکرد، تغییر نسبت به بررسی قبل و نمودار روند هر صفحه‌ای که در داشبورد خط وب برای پایش دوره‌ای اضافه کرده‌اید (نیاز به پلن دارای API).
* اصلاح خودکار «ي» و «ك» عربی به «ی» و «ک» فارسی هنگام ذخیره‌ی نوشته‌ها و برگه‌ها (اختیاری و پیش‌فرض خاموش؛ فقط متن دیده‌شده تغییر می‌کند و تگ‌ها، نشانی‌ها، کدها و نامک دست‌نخورده می‌مانند).

= 1.4.0 =
* پیش‌فرض تازه: «همان فرمت اصلی». تصویر فقط فشرده می‌شود و نام و نشانی فایل عوض نمی‌شود، پس لینک‌های داخل نوشته‌ها سالم می‌مانند. تبدیل به WebP/AVIF/PNG/JPEG همچنان در تنظیمات هست.
* تصویرهای کوچک‌تر از «حداکثر عرض» دیگر بزرگ نمی‌شوند.
* تصاویر متحرک (GIF، APNG، WebP و AVIF متحرک) دست‌نخورده می‌مانند.
* اگر ساخت نسخه‌ی پشتیبان ممکن نباشد، تصویر بازنویسی نمی‌شود.
* نسخه‌های پشتیبان در پوشه‌ای با نام تصادفی و محافظت‌شده (Apache و IIS) نگهداری می‌شوند.
* ابعاد و مسیر ثبت‌شده‌ی تصویر در وردپرس بعد از بهینه‌سازی درست به‌روز می‌شود؛ بهینه‌سازی خودکار هنگام آپلود هم همین‌طور.
* هر کاربر فقط تصویرهایی را که اجازه‌ی ویرایششان را دارد می‌تواند بهینه یا بازگردانی کند (نویسنده‌ها دیگر سهمیه‌ی سایت را روی تصویر دیگران خرج نمی‌کنند).
* کلید API دیگر در صفحه‌ی تنظیمات نمایش داده نمی‌شود.
* بسته‌ی به‌روزرسانی با SHA-256 منتشرشده تطبیق داده می‌شود.
* با حذف افزونه، تنظیمات و کلید API پاک می‌شود (نسخه‌های پشتیبان تصاویر حفظ می‌شوند).
* بهینه‌سازی اندازه‌های کوچک‌شده اختیاری شد (هر اندازه یک درخواست مصرف می‌کند).
* سقف حجم فایل از پلن شما خوانده می‌شود، نه عدد ثابت ۱۰ مگابایت.
* صفحه‌ی «بررسی تصاویر» صفحه‌بندی شد و متن و فیلتر «فرمت نامناسب» اصلاح شد.
* انتخاب گروهی در کتابخانه رسانه دیگر شناسه‌ها را در نشانی نمی‌گذارد (انتخاب‌های بزرگ خطا نمی‌دهند).
* واکاوی سایت به‌صورت صف و بررسی خودکار پیشرفت انجام می‌شود و دیگر صفحه را تا ۹۰ ثانیه قفل نمی‌کند.
* پیام‌های خطا فارسی و قابل‌فهم شدند، اتصال ناموفق یک بار دوباره امتحان می‌شود و بررسی ناموفق به‌روزرسانی تا ۱۵ دقیقه تکرار نمی‌شود.
* سازگاری با PHP 8.4 و وردپرس ۷٫۱.

= 1.3.1 =
* اصلاح آدرس سرویس: افزونه به‌اشتباه به یک دامنه‌ی نامرتبط وصل می‌شد و همه‌ی قابلیت‌ها (بهینه‌سازی، واکاوی، داشبورد وضعیت و به‌روزرسانی خودکار) با خطای گواهی SSL شکست می‌خوردند. اگر نسخه‌ی ۱.۳.۰ را نصب کرده‌اید، یک‌بار باید این نسخه را دستی نصب کنید؛ چون نسخه‌ی قبلی نمی‌تواند به‌روزرسانی را بررسی کند.

= 1.3.0 =
* افزودن داشبورد وضعیت اتصال و مصرف در تنظیمات: مصرف ماهانه API و مصرف روزانه هر ابزار نسبت به سقف پلن، با دکمه تازه‌سازی بدون رفرش صفحه.
* افزودن بررسی و نصب خودکار به‌روزرسانی از طریق مکانیزم استاندارد افزونه‌های وردپرس (اعلان در صفحه «افزونه‌ها»، دکمه Update Now، و لینک بررسی فوری).

= 1.2.0 =
* افزودن صفحه «بررسی تصاویر سایت» (رسانه‌ها ← بررسی تصاویر): فرمت واقعی هر تصویر (خوانده‌شده از محتوای فایل، نه فقط پسوند) و حجم آن را نشان می‌دهد، با فیلتر بر اساس فرمت/حجم/وضعیت بهینه‌سازی و امکان انتخاب تکی، چندتایی یا همه برای بهینه‌سازی گروهی throttle‌شده.
* حذف فیلد «آدرس سرویس» از تنظیمات؛ این آدرس ثابت است و نیازی به وارد کردن ندارد.
* افزودن کلید روشن/خاموش برای ابزار «واکاوی سایت»؛ در صورت خاموش بودن، منوی مربوطه در پیشخوان نمایش داده نمی‌شود.
* بازطراحی ظاهری صفحات تنظیمات و واکاوی سایت (قالب کارتی و کلید تاگل به‌جای چک‌باکس ساده).

= 1.1.1 =
* بازطراحی داخلی کد بهینه‌سازی تصویر: منطق (Optimizer)، ذخیره وضعیت (Repository)، پشتیبان‌گیری (BackupManager) و رابط پیشخوان (Controllerها) اکنون در کلاس‌های جدا هستند. بدون تغییر در رفتار قابل مشاهده برای کاربر.

= 1.1.0 =
* رفع اشکال: هنگام تغییر فرمت خروجی (مثلاً JPEG به WebP)، پسوند فایل و نوع پیوست اکنون به‌درستی به‌روزرسانی می‌شود.
* بهینه‌سازی اکنون شامل تمام اندازه‌های تصویر (thumbnail، medium، large و…) می‌شود، نه فقط فایل اصلی.
* جلوگیری از بهینه‌سازی تکراری تصاویری که قبلاً با موفقیت پردازش شده‌اند.
* اعتبارسنجی محلی حجم و نوع فایل پیش از ارسال به سرویس.
* افزودن اقدام گروهی «بهینه‌سازی با خط وب» در فهرست رسانه‌ها با پردازش throttle‌شده.
* افزودن گزینه «بازگردانی نسخه اصلی» با نگه‌داری خودکار پشتیبان پیش از اولین بهینه‌سازی.

= 1.0.0 =
* انتشار اولیه: بهینه‌سازی تصویر (خودکار/دستی) و واکاوی سایت از طریق API نسخه ۱.
