خدمتکار ۱.۵.۲ — گزارش اصلاحات و راهنمای ارتقا

مبنای کار: بسته khedmatkar-v1.5.1.zip ارسالی شما.
این بسته قالب کامل قابل نصب است؛ پوشه اصلی همچنان khedmatkar است.

اصلاحات انجام‌شده
۱. حذف بازنویسی خودکار اطلاعات تماس، آدرس و متن برند هنگام خواندن تنظیمات. آدرس‌هایی شامل «فاطمی» یا «چهلستون» دیگر به آدرس پیش‌فرض تبدیل نمی‌شوند. خالی‌کردن عمدی فیلد تلفن نیز حفظ می‌شود.
۲. حذف نوشتن مجدد کل تنظیمات در مهاجرت‌های قدیمی و حذف مهاجرت تکرارشونده فونت هنگام هر تغییر نسخه. مقادیر پیش‌فرض جدید هنگام خواندن ادغام می‌شوند.
۳. حفظ تنظیمات ارسال‌نشده و کلیدهای توسعه‌دهندگان هنگام ذخیره؛ ارسال صریح مقدار صفر برای گزینه‌های تیک‌نخورده.
۴. محافظ انتهای فرم تنظیمات: اگر فرم به علت محدودیت max_input_vars ناقص برسد، درخواست رد می‌شود و تنظیمات قبلی باقی می‌مانند. ساختار نامعتبر فیلدهای ساده نیز رد می‌شود.
۵. محافظ بازگشت تودرتو برای قالب‌های المنتوری، بازگرداندن دقیق متغیرهای حلقه وردپرس پس از رندر، و حذف تلاش دوم غیرضروری برای رندر المنتور. خطای رندر از طریق هوک khedmatkar_template_render_error قابل ثبت است.
۶. جلوگیری از نمایش محتوای قالب پیش‌نویس/خصوصی به بازدیدکننده فاقد مجوز. برای استفاده عمومی، هدر و فوتر باید منتشر شده باشند.
۷. اصلاح تشخیص صفحه جاری برای هدر/فوتر اختصاصی؛ پارامترهای دلخواه URL و آخرین پست حلقه آرشیو دیگر تعیین‌کننده هدر/فوتر نیستند. شناسه پیش‌نمایش فقط با مجوز ویرایش پذیرفته می‌شود.
۸. حفظ پشتیبانی پیش‌فرض برگه و نوشته در نصب تازه المنتور؛ اصلاح نام کلاس مسیر سازگاری ثبت ویجت و مقاوم‌سازی امضای callback پشتیبانی نوشته.
۹. تکمیل اتصال ویجت‌های فرم تماس، فهرست سرویس‌کارها و دکمه هوشمند به راه‌اندازی مجدد پیش‌نمایش المنتور.
۱۰. حذف MutationObserver سراسری که در صفحات زنده دارای المنتور هم کل بدنه را دوباره پیمایش می‌کرد. راه‌اندازی ویجت‌ها از رویداد اختصاصی المنتور ادامه دارد.
۱۱. ثبت فایل‌های CSS/JS فقط یک بار در هر درخواست؛ حذف flush تکراری قوانین پیوند در مسیر عمومی ارتقا.
۱۲. تفکیک کدها به inc/assets.php، inc/seo.php، inc/template-locations.php و inc/upgrades.php با حفظ نام توابع و هوک‌های قبلی.
۱۳. اصلاح رویداد راه‌اندازی Lottie در ویرایشگر و امکان تلاش مجدد پس از شکست دریافت کتابخانه بیرونی.
۱۴. اصلاح کوچک CSS برای شکستن متن طولانی اطلاعات تماس فوتر و جلوگیری از جمع‌شدن آیکن آن؛ افزودن نشانگر فوکوس صفحه‌کلید برای دکمه منوی موبایل و بازگشت به بالا. رنگ‌بندی، طرح ویجت‌ها، ترتیب ستون‌ها و داده‌های المنتور بازطراحی نشده‌اند.

آزمون‌های انجام‌شده
محیط محلی مستقل: PHP 8.3.6، WordPress 7.1.2، Elementor رایگان 4.3.3، پایگاه داده SQLite آزمایشی.
- بررسی نحوی ۸۴ فایل PHP و همه فایل‌های JavaScript پوشه assets/js.
- رندر هر ۳۶ ویجت با تنظیمات پیش‌فرض: بدون خطای اجرایی یا هشدار منتسب به فایل قالب.
- ارتقای نصب ۱.۵.۱ به ۱.۵.۲: برابری دقیق آرایه تنظیمات ذخیره‌شده و حفظ شناسه‌های انتخابی هدر و فوتر.
- تست‌های حفظ اطلاعات تماس، ذخیره جزئی، کلید افزونه، مهاجرت قدیمی، بازگشت تودرتو، بازگردانی حلقه و عدم افشای پیش‌نویس.
- آزمون مرورگر: تب تنظیمات، ذخیره موفق و پاسخ ۴۰۰ به فرم ناقص.
- تغییر و ذخیره متن هدر و عنوان فوتر از فرمان ویرایش المنتور؛ تأیید داده ذخیره‌شده و رندر محتوای جدید.
- بازشدن ویرایشگر هدر و فوتر همراه با iframe پیش‌نمایش، بدون خطای JavaScript در سناریوی آزمایش.
- صفحه آزمایشی شامل ویجت هدر و فوتر و عنوان المنتور در عرض‌های ۱۴۴۰ و ۳۹۰ پیکسل: بدون اسکرول افقی و خطای JavaScript. قبل از اصلاح کوچک CSS تماس، تصویر موبایل پیکسل‌به‌پیکسل با نسخه قبلی یکسان بود؛ تفاوت دسکتاپ فقط در ناحیه دکمه تماس متحرک دیده شد.

حدود تأیید
این بررسی تضمین همه ترکیب‌های افزونه، همه ویجت‌های دارای محتوای واقعی یا تمام صفحات مشتریان نیست. نسخه Pro المنتور، هاست MySQL/MariaDB، درگاه پرداخت واقعی، ارسال پیامک واقعی و بسته رمزگذاری‌شده راست‌چین در این محیط آزمایش نشدند. داده‌های سایت زنده مشتری در اختیار نبود. هشدارهای ارتباط با سرور به‌روزرسانی در محیط آزمایش به دلیل قطع درخواست‌های بیرونی بود؛ یک هشدار deprecated داخلی المنتور نیز در اولین اجرا ثبت شد.

نصب روی نسخه قبلی
۱. از فایل‌ها و پایگاه داده نسخه پشتیبان بگیرید؛ تغییرات دستی فایل‌های قالب را جدا نگه دارید.
۲. از نمایش ← پوسته‌ها ← افزودن پوسته ← بارگذاری پوسته، فایل ZIP نسخه ۱.۵.۲ را انتخاب و «جایگزینی نسخه فعلی» را تأیید کنید. ابتدا قالب قبلی را حذف نکنید؛ نام پوشه khedmatkar را تغییر ندهید.
۳. نیازی به درون‌ریزی دمو، حذف تنظیمات یا ایجاد دوباره هدر و فوتر نیست. منوها، شناسه نوشته‌ها، داده‌های المنتور و گزینه‌های قالب عمداً حفظ شده‌اند.
۴. اگر کش فعال است، کش سایت/CDN را پاک کنید. در صورت باقی‌ماندن CSS قدیمی، ابزار بازسازی CSS/داده‌های المنتور را اجرا کنید.
۵. در خدمتکار ← همه هدرها / همه فوترها، قالب منتشرشده را با المنتور ویرایش کنید. انتخاب سراسری در تنظیمات خدمتکار باقی می‌ماند و انتخاب اختصاصی برگه از تنظیمات همان برگه خوانده می‌شود. اگر Elementor Pro برای آن محل شرط نمایش دارد، تقدم قبلی Pro حفظ شده است.
۶. برای بازگشت، بسته قبلی را با همان نام پوشه جایگزین کنید. برای بازگرداندن ویرایش محتوایی احتمالی، از نسخه پشتیبان پایگاه داده استفاده کنید.

قبل از عرضه بسته لایسنس‌دار
در فایل ارسالی SDK یا bootstrap لایسنس راست‌چین وجود نداشت؛ این نسخه نیز لایسنس جدید اضافه یا سازوکاری را حذف نکرده است. تأیید فعال‌سازی واقعی تنها با بسته نهایی دارای SDK و محیط مجاز همان سامانه ممکن است.
پس از افزودن لایسنس، بسته نهایی را در نصب تازه و ارتقا از ۱.۵.۱ آزمایش کنید: فعال‌سازی، ذخیره تنظیمات، بازکردن/ذخیره هدر و فوتر، درخواست AJAX و REST و نمایش عمومی. SDK نباید خروجی ناخواسته قبل از JSON/هدر HTTP تولید کند یا پس از فعال‌سازی بارگذاری فایل‌های قالب را متوقف کند. فایل‌های مرورگر، فونت‌ها، JSON آیکن‌ها و مسیرهای نسبی بسته باید در فرایند بسته‌بندی حفظ شوند. سازگاری PHP/Loader باید با ابزار رمزگذاری واقعی سنجیده شود.

مرجع APIهای بررسی‌شده
https://developers.elementor.com/docs/themes/registering-locations
https://developers.elementor.com/theme-locations-api/displaying-locations/
https://developer.wordpress.org/themes/releasing-your-theme/updating-your-theme/
