📋 تفکیک گزارش تغییرات (Changelog) در ۲ نسخه اخیر
پایش لحظهای تغییرات، وصلههای امنیتی و ویژگیهای اضافه شده در نسخه کنونی و نسخه پیشین از مخزن رسمی WordPress.org:
نگارش فعلی (Latest)
نسخه 2.12.0
• افزودن پشتیبانی از وردپرس نسخه 7.0.x
• افزودن پشتیبانی از ووکامرس نسخه 10.8.x
• رفع هشدارهای سازگاری با نسخههای مختلف PHP از 7.4 تا 8.4
• بهروزرسانی سازگاری با افزونه Woo Custom Product Addons
📦 نگارش قبلی (Previous)
نسخه 2.11.1
• افزودن سازگاری با نسخه ۱۰.۳.x ووکامرس
• ایمنسازی دسترسی نوشتن به فهرست علاقهمندیهای مهمان در REST API با استفاده از کلید اشتراک و نانس، اعمال محدودیت دسترسی انحصاری مالکان به فهرستهای کاربران، بهروزرسانی مسیرها و بهبود تطابق با استانداردهای کدنویسی وردپرس
• به تعویق انداختن بارگذاری دامنه متنی فهرست علاقهمندیها تا هوک init جهت جلوگیری از بروز اخطار زودهنگام
📑 فهرست عناوین و سرفصلهای این مقاله:
معماری پایگاه داده و سازگاری با فناوری HPOS در ووکامرس
افزونه TI WooCommerce Wishlist با هدف مدیریت بهینه لیست علاقهمندیها در فروشگاههای بزرگ طراحی شده است. در معماری سنتی وردپرس، اطلاعات مربوط به محصولات نشانهگذاریشده معمولاً در جدول wp_postmeta یا جداول اختصاصی مشابه ذخیره میشوند که با افزایش تعداد کاربران و حجم درخواستها، میتواند منجر به ایجاد کوئریهای سنگین پایگاه داده (Heavy Queries) شود. با معرفی فناوری High-Performance Order Storage یا همان HPOS در ووکامرس، لزوم هماهنگی افزونههای جانبی با ساختار جداول سفارشی سفارشات بیش از پیش احساس میشود. این افزونه با بهرهگیری از توابع استاندارد ووکامرس و هوکهای بهینهسازی شده، تلاش میکند تا بار اضافی را از روی جدول اصلی وردپرس بردارد.
در اکوسیستم وردپرس فارسی، جایی که هاستینگها اغلب با محدودیتهای منابع سختافزاری و پردازشی مواجه هستند، نحوه ذخیرهسازی متادیتاها اهمیت حیاتی پیدا میکند. استفاده از ساختار استاندارد در این افزونه مانع از بروز خطاهای پایگاه داده هنگام اتصال به درگاههای پرداخت بانکی یا سامانههای لجستیک پستی میشود. توسعهدهندگان با بررسی متدها و کلاسهای این افزونه میتوانند اطمینان حاصل کنند که دادههای کاربران مهمان (Guest Users) و کاربران ثبتنامشده با امنیت کامل و بدون تداخل با کوئریهای سبد خرید ذخیره میشوند.
مدیریت درخواستهای ایجکس و بهینهسازی عملکرد فرانتاند
یکی از چالشهای اساسی در فروشگاههای ووکامرس، مدیریت درخواستهای ناخواسته مانند wc-ajax=get_refreshed_fragments است که میتواند سرعت بارگذاری صفحه را به شدت کاهش دهد. افزونه TI WooCommerce Wishlist با پیادهسازی مکانیزمهای مدرن ایجکس برای افزودن، حذف و بهروزرسانی محصولات در لیست علاقهمندیها، تلاش میکند تا از بارگذاری مجدد کل صفحه (Full Page Reload) جلوگیری کند. این رویکرد تعاملی باعث بهبود تجربه کاربری (UX) در پلتفرمهای موبایل و دسکتاپ میشود، اما نیازمند پیکربندی دقیق در لایه سرور است تا درخواستهای همزمان (Concurrent Requests) به درستی پردازش شوند.
در وبسایتهای راستچین فارسی، به دلیل بارگذاری اسکریپتهای قالب و افزونههای چندزبانه یا فونتهای سفارشی، بهینهسازی درخواستهای ایجکس نقشی کلیدی در کاهش زمان پاسخگویی سرور (TTFB) دارد. عدم بهینهسازی این درخواستها میتواند منجر به تداخل با اسکریپتهای درگاههای پرداخت عضو شتاب یا افزونههای پیامکی شود. با مدیریت صحیح رویدادهای جاوااسکریپت و استفاده از شیءهای جاوااسکریپت محلی برای نگهداری وضعیت فعلی لیست علاقهمندیها، میتوان بار پردازشی مرورگر کاربر را به minimum رساند.
همگامسازی با سیستمهای کش اشیاء (Redis/Memcached)
استفاده از کش اشیاء (Object Caching) نظیر Redis یا Memcached برای فروشگاههای ووکامرس با ترافیک بالا یک ضرورت است. با این حال، تعامل بین اطلاعات پویای لیست علاقهمندیها و سیستم کش میتواند چالشبرانگیز باشد. اگر وضعیت علاقهمندیهای یک کاربر ثبتنامشده به اشتباه در کش پایدار سرور ذخیره شود، ممکن است اطلاعات کاربری دیگران به اشتراک گذاشته شود یا دکمههای افزودن به علاقهمندی وضعیت واقعی خود را نشان ندهند. افزونه TI WooCommerce Wishlist با استفاده از کوکیها و توکنهای امنیتی موقت، راهکارهایی را برای تفکیک دادههای کششده کاربران احراز هویت شده و مهمان فراهم میکند.
در سرورهای ایرانی که معمولاً از کنترلپنلهای مختلف و سیستمهای کشگذاری لایه وب استفاده میکنند، پاکسازی صحیح کش (Purge Cache) پس از تغییر وضعیت علاقهمندیها بسیار مهم است. مدیران سایت باید مطمئن شوند که صفحات حاوی لیست علاقهمندیها یا ابزارکهای مرتبط، به عنوان صفحات پویا (Dynamic) مستثنی شدهاند یا مکانیزمهای اعتبارسنجی ایجکس جایگزین محتوای ایستا شدهاند تا کاربران همواره اطلاعات بهروز و صحیحی را مشاهده کنند.
سازگاری با قالبهای فروشگاهی و چالشهای راستچینسازی
انتخاب قالب سازگار با استانداردهای ووکامرس برای پیادهسازی لیست علاقهمندیها اهمیت فراوانی دارد. بسیاری از قالبهای تجاری و ایرانی دارای استایلها و ساختارهای DOM اختصاصی برای دکمههای خرید و افزودن به سبد خرید هستند. افزونه TI WooCommerce Wishlist با ارائه هوکها و فیلترهای متعدد (Hooks and Filters)، به توسعهدهندگان اجازه میدهد تا موقعیت قرارگیری دکمه علاقهمندی را در صفحات آرشیو، تک محصول و حتی سبد خرید سفارشیسازی کنند. این انعطافپذیری مانع از بههمریختگی ظاهری قالب در نسخههای موبایل و دسکتاپ میشود.
چالش اصلی در محیطهای راستچین (RTL)، تراز بودن آیکونها، انیمیشنهای لودینگ و پیامهای اطلاعرسانی (Notices) است. ناسازگاریهای جزئی در فایلهای CSS میتواند موجب جابجایی عناصر گرافیکی شود. با بازنویسی و بهینهسازی استایلهای سفارشی برای این افزونه، میتوان تطابق کامل با استانداردهای تایپوگرافی فارسی و جهتنمایی المانها ایجاد کرد، بهگونهای که کاربران تجربهای روان و بدون نقص بصری داشته باشند.
❓ سوالات متداول درباره تیآی لیست علاقهمندیها (TI Wishlist)
پاسخ به سوالات و چالشهای فنی وبمسترها، طراحان سایت و مدیران سرور درباره افزونه تیآی لیست علاقهمندیها (TI Wishlist) در این بخش گردآوری شده است:
شما میتوانید با استفاده از تابع داخلی افزونه یعنی `echo do_shortcode('[ti_wishlists_add_to_wishlist]');` در فایلهای قالب فرزند (Child Theme) خود مانند `content-product.php` یا `single-product.php`، دکمه را در هر کجای DOM که مایل هستید رندر کنید. همچنین امکان استفاده از توابع PHP افزونه به صورت مستقیم در کدهای قالب وجود دارد.
این مشکل به دلیل ذخیرهسازی HTML صفحه در لایه کش سرور ایجاد میشود. برای حل این چالش، باید از درخواستهای ایجکس افزونه برای بارگذاری وضعیت دکمهها استفاده کنید و از افزونههای کش بخواهید کوکیهای مربوط به شناسایی نشست کاربران یا شناسههای موقت (Nonces) را کش نکنند.
افزونه TI WooCommerce Wishlist با جدولهای جداگانه خود برای ذخیره علاقهمندیها کار میکند و تداخلی با جداول سفارشی سفارشات (HPOS) ندارد. با این حال، حتماً از آخرین نسخه بهروزرسانیشده افزونه استفاده کنید تا مطمئن شوید کوئریهای داخلی آن با توابع منسوخشده ووکامرس تداخل پیدا نمیکنند.
توصیه میشود در تنظیمات افزونه، بررسی وضعیت علاقهمندیها برای هر محصول در صفحات آرشیو به جای بارگذاری همزمان سرور، به کمک درخواستهای ایجکس یا اسکریپتهای سبک کلاینتساید انجام شود تا از اجرای کوئریهای تکراری پایگاه داده به ازای هر محصول جلوگیری گردد.