آموزش‌های کلادفلر به‌زودی در این بخش قرار داده می‌شود.

نویسنده: سروش احمدی

  • تکنولوژی L4S در شبکه‌های 5G، اینترنت روان و پایدار


    • زمان تخمینی مطالعه: ۸ دقیقه
    • پیش‌نیازها: آشنایی اولیه با مفاهیم اینترنت (مثل پینگ، لگ و سرعت دانلود)
    • اهداف درس:
      • یاد میگیری چرا گاهی وقت‌ها با اینکه سرعت اینترنتت بالاست، باز هم لگ داری.
      • با یک تکنولوژی جدید به اسم L4S و معنی اسمش آشنا میشی.
      • میفهمی L4S چطور کار میکنه تا مشکل لگ و قطعی رو حل کنه.
      • با کاربردهای این تکنولوژی در دنیای گیم، تماس تصویری و واقعیت مجازی (XR) آشنا میشی.

    فصل اول: چرا اینترنت گاهی وقت‌ها روی اعصاب راه میره؟

    تاحالا شده وسط یه بازی آنلاین حساس، یهو همه چیز یخ بزنه و چند ثانیه بعد ببینی که شخصیتت حذف شده؟ یا توی یه تماس تصویری مهم، تصویر دوستت شطرنجی بشه و صداش قطع و وصل بشه، با اینکه سرعت اینترنتت رو چک کردی و همه چیز عالی به نظر میرسیده؟ این تجربه‌های ضدحال، یه مشکل نامرئی و خیلی رایج توی شبکه‌های اینترنتی امروزی هستن. ما معمولا فکر میکنیم تنها چیزی که مهمه، «سرعت» اینترنته. یعنی همون عددی که به مگابیت بر ثانیه (Mbps) نشون داده میشه. اما واقعیت اینه که یه فاکتور مهم دیگه هم وجود داره که ما کمتر بهش توجه میکنیم: تاخیر یا Latency.

    تاخیر یعنی مدت زمانی که طول میکشه یه بسته کوچیک از داده از کامپیوتر یا گوشی تو به سرور بازی یا اپلیکیشن برسه و جوابش برگرده. هرچی این زمان کمتر باشه، تجربه تو روان‌تر و سریع‌تره. وقتی میگیم «لگ» داریم، در واقع داریم از تاخیر بالا حرف میزنیم.

    حالا مشکل از کجا شروع میشه؟ یکی از بزرگترین مقصرها پدیده‌ای به اسم «بافربلوت» (Bufferbloat) هست. بذار یه مثال ساده بزنم. فکر کن روتر یا مودم خونگی تو مثل یه مامور پست توی یه اداره پست کوچیکه. این مامور یه سبد بزرگ داره که نامه‌ها (بسته‌های داده) رو قبل از ارسال، موقتا توی اون نگه میداره. حالا اگه یهو یه عالمه نامه از جاهای مختلف برسه (مثلا یکی داره فیلم 4K دانلود میکنه، یکی دیگه داره بازی میکنه، اون یکی هم داره تماس تصویری میگیره)، این سبد (که بهش میگیم بافر) شروع میکنه به پر شدن. مامور پست ما سعی میکنه همه رو به ترتیب ارسال کنه، اما چون تعداد نامه‌ها زیاده، بعضی از نامه‌ها که خیلی هم مهم و فوری هستن (مثل داده‌های بازی آنلاین تو) مجبورن ته صف وایسن و کلی معطل بشن. این معطلی همون چیزیه که باعث لگ و تاخیر میشه. در واقع، مشکل از بزرگی بیش از حد اون سبد (بافِر) هست. روترها فکر میکنن با داشتن یه بافر بزرگ دارن لطف میکنن، اما در عمل باعث میشن بسته‌های داده مهم، بی‌دلیل توی صف‌های طولانی گیر کنن.

    اینجاست که نیاز به یه راه حل هوشمندانه‌تر حس میشه. راه حلی که فقط به فکر ارسال بسته‌ها نباشه، بلکه به فکر «زمان‌بندی» و «اولویت» اونها هم باشه. راه حلی که نذاره بسته‌های فوری و حساس، پشت بسته‌های غیرضروری معطل بمونن.

    فصل دوم: معرفی L4S، راه حلی برای یک اینترنت روان‌تر

    خب، حالا که با مشکل اصلی یعنی تاخیر و بافربلوت آشنا شدیم، وقتشه بریم سراغ راه حل. دانشمندها و مهندس‌های شبکه دور هم جمع شدن و یک تکنولوژی جدید و خیلی جالب رو به اسم L4S طراحی کردن.

    L4S مخفف عبارت Low Latency, Low Loss, Scalable Throughput هست.

    بیا این اسم طولانی رو با هم کلمه‌به‌کلمه معنی کنیم تا بفهمیم هدفش چیه:

    • Low Latency (تاخیر کم): این یعنی هدف اصلی L4S اینه که زمان رفت و برگشت داده‌ها رو تا جای ممکن کم کنه. این همون چیزیه که برای بازی‌های آنلاین، تماس‌های تصویری، واقعیت مجازی (XR) و هر کار دیگه‌ای که به واکنش سریع نیاز داره، حیاتیه.
    • Low Loss (اتلاف کم): توی شبکه، گاهی وقت‌ها به خاطر شلوغی زیاد، بعضی از بسته‌های داده گم میشن یا از بین میرن (به این میگن Packet Loss). وقتی یه بسته گم میشه، سیستم مجبوره دوباره اون رو ارسال کنه که این خودش باعث تاخیر بیشتر میشه. L4S تلاش میکنه تا جلوی این اتفاق رو بگیره و بسته‌ها سالم به مقصد برسن.
    • Scalable Throughput (توان عملیاتی مقیاس‌پذیر): این بخش یه کم فنی‌تره ولی مفهومش ساده‌ست. Throughput یعنی مقدار داده‌ای که میتونی توی یک زمان مشخص با موفقیت ارسال کنی (همون سرعت مفیدی که واقعا به دستت میرسه). «مقیاس‌پذیر» بودنش یعنی L4S میتونه خودش رو با شرایط مختلف شبکه تطبیق بده. چه شبکه خلوت باشه و چه خیلی شلوغ، این تکنولوژی میتونه بهترین استفاده رو از پهنای باند موجود بکنه بدون اینکه باعث تاخیر و لگ بشه.

    پس به طور خلاصه، L4S یه استاندارد و معماری جدیده که هدفش اینه که اینترنت ما رو نه فقط سریع، بلکه «پاسخگو» و «روان» کنه. این تکنولوژی که توسط سازمان‌هایی مثل IETF (Internet Engineering Task Force) استاندارد شده، یه جورایی نسل بعدی کنترل ترافیک توی اینترنته. جالبه بدونی که تحقیقات اولیه و مهم این تکنولوژی توسط تیمی در Nokia Bell Labs به رهبری فردی به اسم «کون د شپر» (Koen De Schepper) و با همکاری شرکت‌هایی مثل BT و Simula انجام شده و در نهایت در ژانویه سال ۲۰۲۳ به عنوان یک استاندارد رسمی (RFC) معرفی شد. این تکنولوژی اونقدر مهمه که حتی در استانداردهای جدید موبایل مثل 5G-Advanced (در نسخه 3GPP Release 18) هم گنجانده شده تا بتونه از کاربردهای پیشرفته‌ای مثل واقعیت توسعه‌یافته (XR) پشتیبانی کنه.

    فصل سوم: L4S چطور کار میکنه؟ نگاهی به پشت صحنه

    شاید برات سوال شده باشه که L4S چطور این کارها رو انجام میده. آیا جادو میکنه؟ نه دقیقا، ولی از چند تا مکانیزم خیلی هوشمندانه استفاده میکنه که با هم ترکیب میشن و نتیجه فوق‌العاده‌ای میگیرن. بیایید سه تا از کلیدی‌ترین مکانیزم‌های L4S رو با هم بررسی کنیم.

    ۱. جداسازی صف‌ها (Queue Isolation)

    یادتونه در مورد مشکل بافربلوت و صف طولانی بسته‌های داده صحبت کردیم؟ L4S برای این مشکل یه راه حل عالی داره. به جای اینکه همه بسته‌های داده، چه اونایی که فوری هستن و چه اونایی که نیستن، رو توی یک صف بزرگ و درهم بریزه، میاد و دو تا صف جداگونه درست میکنه.

    • یک صف برای ترافیک L4S: این صف مخصوص اپلیکیشن‌های حساس به تاخیره. مثل بازی آنلاین، تماس تصویری یا استریم زنده. این صف خیلی کوتاه نگه داشته میشه تا بسته‌ها اصلا معطل نشن.
    • یک صف برای ترافیک کلاسیک: این صف برای کارهای معمولیه که تاخیر چندان براشون مهم نیست. مثل دانلود یک فایل سنگین یا آپدیت کردن یک نرم‌افزار. این ترافیک میتونه توی صف خودش منتظر بمونه بدون اینکه مزاحم ترافیک فوری و حساس صف اول بشه.

    این کار مثل این میمونه که توی یه فروشگاه بزرگ، یه صندوق مخصوص برای مشتری‌هایی بذارن که فقط یه دونه جنس دارن. اینجوری اونها دیگه مجبور نیستن پشت سر کسی وایسن که چرخ خریدش تا خرخره پره. این جداسازی باعث میشه ترافیک L4S از رقابت بر سر پهنای باند با ترافیک‌های سنگین و تهاجمی در امان بمونه و همیشه تاخیرش پایین بمونه. در سیستم‌های 5G هم این قابلیت به خوبی پیاده‌سازی میشه. اونجا به جای «صف»، از مفهومی به اسم «جریان کیفیت سرویس» یا QoS Flow استفاده میشه که هر کدوم یه شناسه منحصر به فرد به اسم 5QI دارن. شبکه 5G میتونه به راحتی یک جریان QoS مخصوص برای ترافیک L4S تعریف کنه و اون رو از بقیه جدا نگه داره.

    ۲. استراتژی علامت‌گذاری مبتنی بر ECN

    خب، حالا که صف‌ها رو جدا کردیم، شبکه از کجا باید بفهمه که کدوم بسته داده باید توی کدوم صف بره؟ و مهم‌تر از اون، چطور باید به فرستنده خبر بده که «هی، یه کم یواش‌تر بفرست، شبکه داره شلوغ میشه!»؟

    روش‌های قدیمی برای خبر دادن شلوغی شبکه، خیلی خشن بودن. روترها وقتی میدیدن صفشون داره پر میشه، شروع میکردن به دور ریختن (Drop کردن) بسته‌های داده. فرستنده وقتی میدید بسته‌هاش گم میشن، میفهمید که شبکه شلوغه و سرعتش رو کم میکرد. این کار دو تا مشکل بزرگ داشت: اول اینکه بسته‌هایی که دور ریخته میشدن باید دوباره ارسال میشدن که خودش تاخیر ایجاد میکرد. دوم اینکه این روش مثل ترمز اضطراری بود؛ تا وقتی کارد به استخوان نمیرسید، فرستنده خبردار نمیشد.

    L4S از یک روش خیلی ملایم‌تر و هوشمندانه‌تر استفاده میکنه. این تکنولوژی از دو بیت استفاده نشده در هدر بسته‌های IP (همون شناسنامه هر بسته داده) به اسم بیت‌های ECN (Explicit Congestion Notification) یا «اعلان صریح ازدحام» استفاده میکنه.

    کار این بیت‌ها دو چیزه:

    1. شناسایی ترافیک: فرستنده‌هایی که از L4S پشتیبانی میکنن، بسته‌هاشون رو با یک کد ECN خاص به اسم ECT(1) علامت‌گذاری میکنن. روترهای شبکه وقتی این علامت رو میبینن، میفهمن که این یه بسته L4S هست و باید اون رو به صف مخصوص و سریع خودش بفرستن. ترافیک‌های معمولی با کدهای دیگه‌ای مثل ECT(0) یا Not-ECT مشخص میشن.
    2. هشدار قبل از فاجعه: حالا قسمت جالب ماجرا اینجاست. روتر وقتی حس میکنه صف L4S داره یه ذره شلوغ میشه (حتی خیلی قبل از اینکه پر بشه)، به جای دور ریختن بسته‌ها، فقط کد ECN اونها رو از ECT(1) به CE (Congestion Experienced) تغییر میده. یعنی روی بسته یه برچسب میزنه که «من شلوغی رو تجربه کردم». بسته سالم به مقصد میرسه، ولی گیرنده وقتی این برچسب رو میبینه، فورا در بسته برگشتی به فرستنده خبر میده که «شبکه داره شلوغ میشه، سرعتت رو یه کم بیار پایین».

    این مکانیزم مثل اینه که سر یه پیچ خطرناک، به جای دیوار بتنی، یه نفر وایساده باشه و به ماشین‌هایی که با سرعت میان علامت بده که آروم‌تر برن. اینجوری هم تصادفی نمیشه و هم جریان ترافیک روان باقی میمونه. این استراتژی علامت‌گذاری به جای دور ریختن، باعث میشه اتلاف بسته (Packet Loss) تقریبا به صفر برسه.

    ۳. کنترل ازدحام مقیاس‌پذیر (Scalable Congestion Control)

    سومین قطعه این پازل، خود اپلیکیشن یا فرستنده داده‌ست. الگوریتم‌های کنترل ازدحام قدیمی مثل Reno یا CUBIC (که در پروتکل TCP استفاده میشن) خیلی کند به تغییرات شبکه واکنش نشون میدادن و برای فهمیدن ظرفیت شبکه، باید با آزمون و خطا سرعتشون رو کم و زیاد میکردن که نتیجه‌ش یه نمودار شبیه دندانه اره میشد و باعث نوسان و تاخیر میشد.

    L4S از الگوریتم‌های کنترل ازدحام جدید و مقیاس‌پذیری مثل Prague Congestion Control استفاده میکنه. این الگوریتم‌ها خیلی سریع و دقیق به سیگنال‌های ECN که از شبکه میان واکنش نشون میدن. به محض اینکه اولین نشونه‌های شلوغی رو از طریق برچسب CE دریافت میکنن، خیلی سریع و به اندازه لازم سرعت ارسالشون رو کم میکنن تا صف‌ها شلوغ نشن. وقتی هم که سیگنال شلوغی قطع میشه، دوباره به سرعت نرخ ارسالشون رو بالا میبرن تا از تمام ظرفیت شبکه استفاده کنن.

    این همکاری تنگاتنگ بین اپلیکیشن فرستنده (با الگوریتم Prague) و شبکه (با جداسازی صف و علامت‌گذاری ECN) همون چیزیه که جادوی L4S رو خلق میکنه. نتیجه این همکاری، یک ارتباط با تاخیر بسیار کم و پایدار، اتلاف بسته نزدیک به صفر، و استفاده بهینه از تمام پهنای باند شبکه هست. این یعنی دیگه خبری از اون تجربه‌های ضدحال وسط بازی و تماس تصویری نخواهد بود.

    فصل چهارم: از آزمایشگاه تا دنیای واقعی (چه شرکت‌هایی دارن ازش استفاده میکنن؟)

    حرف زدن در مورد یک تکنولوژی روی کاغذ خیلی راحته، اما چیزی که واقعا مهمه اینه که آیا توی دنیای واقعی هم کار میکنه یا نه. خوشبختانه، L4S فقط یک ایده تئوری نیست و شرکت‌های بزرگ و مهمی در سراسر دنیا شروع به تست و پیاده‌سازی اون کردن. بیایید چند تا از این مثال‌های واقعی رو با هم ببینیم تا بهتر با قدرت این تکنولوژی آشنا بشیم.

    آزمایش موفق نوکیا و الایزا در استادیوم نوکیا آرنا

    یکی از اولین و جالب‌ترین آزمایش‌ها، همکاری بین شرکت نوکیا و اپراتور فنلاندی الایزا (Elisa) بود. اونها برای تست L4S، استادیوم بزرگ نوکیا آرنا در شهر تامپره فنلاند رو انتخاب کردن. چرا استادیوم؟ چون استادیوم‌ها، سالن‌های کنسرت و جاهای شلوغ، کابوس شبکه‌های موبایل هستن. وقتی هزاران نفر همزمان تلاش میکنن عکس و فیلم استوری کنن یا پخش زنده ببینن، شبکه به شدت دچار ازدحام و کندی میشه. پس اینجا بهترین جا برای تست یه تکنولوژی بود که ادعا میکنه میتونه با ازدحام مقابله کنه.

    این آزمایش که یک «اثبات مفهوم» یا PoC بود، با همکاری یک شرکت پخش زنده به اسم Kepit Systems هم انجام شد. سناریوی تست خیلی ساده و در عین حال کاربردی بود: یک نفر روی لپ‌تاپش که به شبکه 5G الایزا وصل بود، میخواست یک بازی هاکی روی یخ زنده رو که از سرورهای شرکت Kepit پخش میشد، تماشا کنه.

    • مرحله اول (بدون L4S): در ابتدا، وقتی شبکه عمدا شلوغ و پرترافیک بود، پخش زنده به سختی لود میشد، دائم قطع میشد و بافر میکرد. کاربر عملا نمیتونست بازی رو ببینه. این دقیقا همون تجربه‌ایه که خیلی از ما در جاهای شلوغ داشتیم.
    • مرحله دوم (با L4S): در این مرحله، با استفاده از یک پلتفرم به اسم Network as Code (NaC) که نوکیا توسعه داده، یک درخواست ساده (از طریق API) برای فعال کردن L4S روی اون اتصال فرستاده شد. پلتفرم NaC به اپراتورها این امکان رو میده که شبکه‌شون رو به صورت نرم‌افزاری و برنامه‌پذیر کنترل کنن. به محض فعال شدن L4S، اتفاق جالبی افتاد. تاخیر شبکه به شدت کم شد و پخش زنده بازی هاکی، روان و بدون هیچ قطعی و بافری پخش شد.
    • مرحله سوم (غیرفعال کردن L4S): برای اینکه مطمئن بشن این بهبود به خاطر L4S بوده، دوباره از طریق پلتفرم NaC این قابلیت رو غیرفعال کردن. نتیجه قابل پیش‌بینی بود: ویدیو دوباره شروع به فریز شدن و بافر کردن کرد و مشکلات ازدحام برگشتن.

    این آزمایش موفق نشون داد که L4S چقدر میتونه در محیط‌های شلوغ و واقعی تاثیرگذار باشه و چطور اپراتورها میتونن با استفاده از پلتفرم‌هایی مثل Network as Code، این قابلیت رو به صورت یک سرویس ویژه به کاربرها یا شرکت‌هایی که به ارتباط باکیفیت نیاز دارن (مثل پخش زنده‌های ورزشی یا فیدهای ویدیویی برای مقاصد اورژانسی) ارائه بدن و ازش کسب درآمد کنن.

    T-Mobile و پیشتازی در دنیای بی‌سیم

    اپراتور بزرگ آمریکایی، T-Mobile، یکی از اولین شرکت‌هاییه که L4S رو به صورت گسترده در شبکه بی‌سیم خودش پیاده‌سازی کرده. اونها به عنوان بخشی از برنامه ارتقا شبکه‌شون به 5G Advanced، قابلیت L4S رو در سطح کشور فعال کردن. T-Mobile چون شبکه 5G خودش رو از پایه به صورت مستقل (Standalone یا SA) ساخته، این انعطاف‌پذیری رو داره که نوآوری‌هایی مثل L4S رو راحت‌تر پیاده‌سازی کنه. اونها هم چند تا آزمایش خیلی جالب انجام دادن:

    • رانندگی از راه دور با شرکت Vay: تصور کن بتونی یه ماشین رو از کیلومترها دورتر، انگار که خودت پشت فرمون نشستی، کنترل کنی. این دقیقا کاریه که شرکت آلمانی Vay انجام میده. این کار به یک ارتباط با تاخیر فوق‌العاده کم و پایدار نیاز داره، چون حتی یک میلی‌ثانیه تاخیر اضافه میتونه خطرناک باشه. T-Mobile با استفاده از شبکه 5G Advanced و قابلیت L4S، این امکان رو برای Vay فراهم کرد. راننده‌های از راه دور Vay گزارش دادن که با وجود L4S، تاخیر اونقدر کم و قابل پیش‌بینی بود که حس میکردن واقعا داخل ماشین نشستن، حتی در شرایطی که ترافیک شبکه زیاد بود. این یک نمونه عالی از کاربرد L4S در سناریوهای حساس و حیاتیه.
    • واقعیت توسعه‌یافته (XR) با کوالکام و اریکسون: یکی از موانع اصلی برای همه‌گیر شدن عینک‌های واقعیت مجازی و افزوده، مشکل تاخیر و لرزش تصویره که میتونه باعث سرگیجه و حالت تهوع بشه. T-Mobile در همکاری با کوالکام (Qualcomm) و اریکسون (Ericsson)، با استفاده از عینک‌های هوشمند سبک، L4S رو روی شبکه 5G SA خودشون تست کردن. نتیجه فوق‌العاده بود: تصاویر کاملا شفاف، فریم‌ها بدون کوچکترین لرزش و پرش، و در نتیجه کاهش چشمگیر سرگیجه و حالت تهوع در کاربران. این آزمایش نشون داد که L4S میتونه راه رو برای استفاده عمومی و روزمره از XR هموار کنه.
    • گیمینگ ابری با انویدیا: برای گیمرهای حرفه‌ای، هر میلی‌ثانیه مهمه. سرویس‌های گیمینگ ابری مثل GeForce NOW از شرکت انویدیا (NVIDIA)، بازی رو روی سرورهای قدرتمند اجرا میکنن و تصویرش رو برای کاربر استریم میکنن. این فرآیند به شدت به تاخیر شبکه حساسه. انویدیا به صورت رسمی پشتیبانی از L4S رو در سرویس GeForce NOW فعال کرده. وقتی این سرویس روی شبکه 5G Advanced شرکت T-Mobile اجرا میشه، بازیکن‌ها تجربه‌ای بسیار روان، با لرزش کمتر و کنترل‌هایی دقیق، شبیه به بازی روی یک کنسول خانگی رو تجربه میکنن، حتی وقتی شبکه شلوغ باشه.
    • تماس‌های تصویری مثل FaceTime: حتی در کارهای روزمره مثل یک تماس تصویری با FaceTime، مخصوصا در جاهای شلوغ مثل فرودگاه، L4S میتونه تفاوت بزرگی ایجاد کنه. این تکنولوژی با تطبیق دادن خودش با شلوغی شبکه، از قطع و وصل شدن، فریز شدن تصویر و صدای رباتیک جلوگیری میکنه و مکالمه‌ای روان و باکیفیت رو تضمین میکنه. اپل هم از شرکت‌های پیشرو در این زمینه بوده و از iOS 16 و macOS Ventura به بعد، پشتیبانی از L4S رو به سیستم‌عامل‌هاش اضافه کرده.

    Comcast و اینترنت کابلی با تاخیر فوق‌العاده کم

    L4S فقط برای شبکه‌های موبایل نیست. شرکت بزرگ ارائه‌دهنده اینترنت کابلی در آمریکا، Comcast، هم شروع به پیاده‌سازی این تکنولوژی روی شبکه خودش کرده. اونها از یک نسخه ویژه از استاندارد اینترنت کابلی به اسم Low Latency DOCSIS (LLD) استفاده میکنن که L4S در اون گنجانده شده.

    Comcast این سرویس جدید رو به عنوان یک مزیت رقابتی بزرگ برای اینترنت Xfinity خودش معرفی کرده و گفته که با این تکنولوژی، تاخیر شبکه به قدری کم میشه که از یک چشم به هم زدن هم سریع‌تره. اونها به طور مشخص اعلام کردن که کاربرها میتونن بهبود عملکرد رو در اپلیکیشن‌هایی مثل:

    • FaceTime روی دستگاه‌های اپل
    • اپلیکیشن‌های روی هدست‌های واقعیت ترکیبی Meta
    • سرویس گیمینگ GeForce NOW از انویدیا
    • و خیلی از بازی‌های پلتفرم Steam شرکت Valve

    تجربه کنن. کامکست حتی ادعا کرده که اینترنت LLD اونها در مقایسه با اینترنت‌های خانگی 5G، در زمان شلوغی شبکه عملکرد بهتری داره چون دچار افت کیفیت نمیشه. اونها این سرویس رو در شهرهای بزرگی مثل آتلانتا، شیکاگو، فیلادلفیا و سان فرانسیسکو راه‌اندازی کردن و قصد دارن به سرعت در مناطق بیشتری ارائه بدن.

    این مثال‌های واقعی از شرکت‌های مختلف نشون میده که L4S از فاز آزمایشگاهی خارج شده و داره به یک واقعیت تجاری در انواع شبکه‌ها، از موبایل 5G گرفته تا اینترنت کابلی، تبدیل میشه.

    فصل پنجم: L4S در دنیای 5G و وای‌فای (آینده این تکنولوژی)

    همونطور که دیدیم، L4S یک تکنولوژیه که میتونه روی هر نوع شبکه مبتنی بر IP کار کنه. اما برای اینکه واقعا همه‌گیر بشه، باید در استانداردهای اصلی شبکه‌های بی‌سیم، یعنی 5G و وای‌فای، به صورت رسمی گنجانده بشه. خوشبختانه این اتفاق افتاده و L4S داره به بخش جدایی‌ناپذیری از آینده این شبکه‌ها تبدیل میشه.

    L4S در شبکه 5G-Advanced

    شبکه‌های 5G به طور ذاتی برای پشتیبانی از تکنولوژی‌هایی مثل L4S آمادگی خوبی دارن. چرا؟ چون از اول با معماری طراحی شدن که میتونه انواع مختلف ترافیک رو مدیریت کنه. سیستم 5G به طور طبیعی یک زمان‌بند چند صفی (multi-queue scheduler) هست. این یعنی میتونه به راحتی مکانیزم جداسازی صف L4S رو پیاده‌سازی کنه.

    در نسخه ۱۸ استاندارد 5G که به اسم 5G-Advanced (Rel-18) شناخته میشه، پشتیبانی از L4S به صورت رسمی اضافه شد، مخصوصا برای کاربردهای حساسی مثل XR. اما برای اینکه L4S در شبکه 5G کار کنه، دو تا سوال اصلی باید جواب داده بشه:

    ۱. چطور جداسازی صف L4S با سیستم چند صفی 5G ترکیب میشه؟

    همونطور که قبلا اشاره کردیم، شبکه 5G از مفهومی به اسم «جریان کیفیت سرویس» یا QoS Flow استفاده میکنه. هر جریان، مثل یک لاین اختصاصی برای نوع خاصی از ترافیکه. هر کدوم از این جریان‌ها یک شناسه به اسم 5QI دارن که ویژگی‌های اون جریان مثل پهنای باند، تاخیر و قابلیت اطمینان مورد نیازش رو مشخص میکنه.

    راه حل خیلی ساده‌ست: شبکه 5G ترافیک L4S رو به یک جریان QoS با 5QI مخصوص خودش اختصاص میده. به این میگیم L4S Flow. شبکه میتونه بسته‌های L4S رو از طریق همون علامت ECT(1) در هدر IP شناسایی کنه و اونها رو به این جریان اختصاصی هدایت کنه. اینجوری، جداسازی صف به راحتی انجام میشه.

    ۲. علامت‌گذاری ECN کجا باید انجام بشه؟

    این سوال یه کم پیچیده‌تره، چون در شبکه موبایل، هم گوشی کاربر (UE)، هم دکل مخابراتی (gNB) و هم بخشی از هسته شبکه به اسم UPF (User Plane Function) میتونن در این فرآیند نقش داشته باشن.

    • برای ترافیک آپلینک (وقتی تو داری داده ارسال میکنی):
      • تشخیص ازدحام توسط گوشی (UE): خود گوشی میتونه ازدحام رو در صف‌های ارسال داده خودش تشخیص بده. در این حالت، یا خودش مستقیما بیت ECN رو روی بسته IP علامت‌گذاری میکنه، یا اینکه اطلاعات ازدحام رو در لایه‌های پایین‌تر مثل PDCP یا RLC علامت‌گذاری میکنه و به gNB میفرسته تا gNB یا UPF این کار رو انجام بدن.
      • تشخیص ازدحام توسط دکل (gNB): دکل مخابراتی دید بهتری به وضعیت کلی شبکه و صف‌های گوشی‌های مختلف داره. وقتی ازدحam رو تشخیص میده، میتونه خودش مستقیما بسته IP رو علامت بزنه یا اطلاعات ازدحام رو به UPF در هسته شبکه گزارش بده تا علامت‌گذاری اونجا انجام بشه.
    • برای ترافیک داونلینک (وقتی تو داری داده دریافت میکنی):
      • در این حالت، معمولا دکل (gNB) ازدحام رو تشخیص میده. چون داده‌ها قبل از رسیدن به گوشی تو، از gNB عبور میکنن. gNB میتونه یا مستقیما بسته IP رو علامت بزنه، یا اینکه اطلاعات ازدحام رو روی لایه‌های PDCP یا RLC به گوشی بفرسته تا خود گوشی این علامت‌گذاری رو انجام بده. گزارش دادن به UPF برای علامت‌گذاری هم ممکنه ولی باعث تاخیر اضافه میشه.

    این انعطاف‌پذیری در محل علامت‌گذاری به شبکه اجازه میده تا بسته به شرایط، بهترین و سریع‌ترین روش رو انتخاب کنه.

    L4S در دنیای وای‌فای (Wi-Fi)

    بخش بزرگی از ترافیک اینترنت ما از طریق شبکه‌های وای‌فای خانگی یا عمومی منتقل میشه. جالبه بدونی که خود شبکه وای‌فای یکی از اصلی‌ترین نقاط ایجاد ازدحام و گلوگاه در کل مسیر اینترنته. حتی اگه اینترنت فیبر نوری با سرعت ۱ گیگابیت داشته باشی، اگه شبکه وای‌فای خونت شلوغ باشه، باز هم لگ رو تجربه میکنی. پس پشتیبانی از L4S در وای‌فای حیاتیه.

    پیاده‌سازی L4S در وای‌فای چالش‌های خاص خودش رو داره. در شبکه‌های سیمی، تاخیر عمدتا به خاطر بافر شدنه. اما در وای‌فای، یک نوع تاخیر دیگه هم داریم به اسم تاخیر دسترسی به رسانه (media access delay). چون وای‌فای یک رسانه اشتراکیه (هوا)، دستگاه‌های مختلف باید صبر کنن تا نوبتشون بشه که صحبت کنن (داده ارسال کنن). این صبر کردن در محیط‌های شلوغ میتونه خودش باعث تاخیر زیاد بشه.

    برای حل این مشکلات، سازمان Wireless Broadband Alliance (WBA) با همکاری CableLabs، یک سری راهنما برای پیاده‌سازی L4S در محصولات وای‌فای فعلی منتشر کرده. این راهنماها به تولیدکننده‌های تجهیزات مثل روترها و اکسس‌پوینت‌ها کمک میکنه تا L4S رو در محصولاتشون فعال کنن.

    خبر خوب اینه که L4S قراره به صورت بومی و استاندارد در نسل بعدی وای‌فای، یعنی Wi-Fi 8 (که با استاندارد IEEE 802.11bn شناخته میشه)، گنجانده بشه. این یعنی در آینده، روترهای وای‌فای به طور پیش‌فرض این قابلیت رو خواهند داشت و تجربه‌ی ما از اینترنت در خانه بسیار روان‌تر خواهد شد. چندین شرکت پیشرو از جمله CableLabs پیشنهادهایی برای گنجاندن L4S در این استاندارد ارائه دادن.

    با این حرکت‌ها، L4S داره به یک تکنولوژی پایه‌ای در تمام بخش‌های شبکه، از هسته اینترنت گرفته تا شبکه‌های موبایل 5G و شبکه‌های وای‌فای خانگی، تبدیل میشه و این یعنی یک قدم بزرگ به سمت یک اینترنت واقعا سریع و پاسخگو برای همه.

    فصل ششم: کاربردهای هیجان‌انگیز L4S (به چه دردی میخوره؟)

    تا اینجا فهمیدیم L4S چیه و چطور کار میکنه. حالا بیایید ببینیم این تکنولوژی در عمل چه درهایی رو به روی ما باز میکنه. مزیت‌های L4S، یعنی تاخیر کم و پایدار، باعث میشه که برای یک عالمه کاربرد جدید و هیجان‌انگیز که قبلا به خاطر محدودیت‌های شبکه ممکن نبودن، کاملا ایده‌آل باشه.

    ۱. ارتباطات فراگیر XR (واقعیت توسعه‌یافته)

    XR یک کلمه کلیه که شامل واقعیت مجازی (VR)، واقعیت افزوده (AR) و واقعیت ترکیبی (MR) میشه. همه این تکنولوژی‌ها یک وجه مشترک دارن: برای اینکه یک تجربه واقعی و باورپذیر ایجاد کنن، به یک ارتباط با پهنای باند خیلی بالا (حداقل ۱ گیگابیت بر ثانیه) و تاخیر فوق‌العاده کم (کمتر از ۲۰ میلی‌ثانیه) نیاز دارن. هر تاخیر کوچیکی در ارسال تصاویر به هدست، میتونه باعث بشه دنیای مجازی با حرکات سر شما هماهنگ نباشه و منجر به سرگیجه و حالت تهوع بشه.

    L4S دقیقا همون چیزیه که XR بهش نیاز داره. با تضمین یک تاخیر کم و پایدار، L4S اجازه میده که پردازش‌های سنگین گرافیکی از روی خود هدست به یک کامپیوتر قدرتمند در لبه شبکه (Edge Computing) یا در فضای ابری (Cloud) منتقل بشه. این فرآیند که بهش Split Rendering میگن، باعث میشه هدست‌های XR بتونن خیلی سبک‌تر، ارزان‌تر و با عمر باتری بیشتر ساخته بشن. در واقع، هدست فقط وظیفه نمایش تصویر و ارسال داده‌های حسگرها رو داره و تمام کار سخت رو سرورهای قدرتمند انجام میدن. این کار بدون L4S تقریبا غیرممکنه، چون تاخیر غیرقابل پیش‌بینی شبکه، کل تجربه رو خراب میکنه. با L4S، آینده‌ای که در اون عینک‌های هوشمند سبک و شبیه عینک‌های معمولی جایگزین هدست‌های بزرگ و سنگین امروزی میشن، خیلی نزدیک‌تره.

    ۲. گیمینگ ابری (Cloud Gaming)

    سرویس‌های گیمینگ ابری مثل GeForce NOW از انویدیا، به شما اجازه میدن جدیدترین و سنگین‌ترین بازی‌های روز دنیا رو روی دستگاه‌های ضعیف مثل یک لپ‌تاپ معمولی یا حتی گوشی موبایل بازی کنید. چطوری؟ بازی روی سرورهای قدرتمند شرکت اجرا میشه و فقط تصویر بازی برای شما استریم میشه و دستورات شما (مثل حرکت دادن موس یا فشردن دکمه) به سرور ارسال میشه.

    این فرآیند به شدت به تاخیر حساسه. اگه بین فشردن دکمه شلیک توسط شما و دیدن نتیجه‌ش روی صفحه، تاخیر زیادی وجود داشته باشه، تجربه بازی کاملا خراب میشه. L4S با فراهم کردن یک ارتباط با تاخیر کم و پایدار، باعث میشه تجربه گیمینگ ابری خیلی به تجربه بازی روی یک کنسول یا کامپیوتر خانگی نزدیک بشه. دیگه خبری از لگ‌های اعصاب‌خردکن وسط بازی نخواهد بود.

    ۳. خودروهای خودران و کنترل از راه دور

    برای سیستم‌های رانندگی خودران، ارتباط سریع و قابل اطمینان حیاتیه. این ماشین‌ها باید به صورت لحظه‌ای با ماشین‌های دیگه (V2V یا Vehicle-to-Vehicle) و با زیرساخت‌های جاده‌ای مثل چراغ‌های راهنمایی (V2I یا Vehicle-to-Infrastructure) در ارتباط باشن تا بتونن تصمیم‌های درست و ایمن بگیرن. L4S میتونه با کاهش تاخیر در ارسال داده‌های حیاتی مثل اطلاعات سنسورها، هشدارهای ترافیکی و دستورات ناوبری، سرعت واکنش سیستم‌های خودران رو به شدت بالا ببره. همچنین چون L4S از مکانیزم علامت‌گذاری به جای دور ریختن بسته استفاده میکنه، از گم شدن داده‌های حیاتی جلوگیری میکنه و قابلیت اطمینان سیستم رو افزایش میده.

    همونطور که در مثال شرکت Vay دیدیم، کنترل خودرو از راه دور هم یکی دیگه از کاربردهای شگفت‌انگیز این تکنولوژیه که مستقیما به تاخیر کم و پایدار L4S وابسته است و میتونه صنعت حمل و نقل و لجستیک رو متحول کنه.

    ۴. محاسبات لبه‌ای (Edge Computing)

    محاسبات لبه‌ای یعنی به جای اینکه داده‌ها رو برای پردازش به یک مرکز داده دوردست بفرستیم، اونها رو روی سرورهای کوچیکی که از نظر جغرافیایی به ما نزدیک‌تر هستن (مثلا در نزدیکی دکل‌های مخابراتی) پردازش کنیم. این کار به خودی خود تاخیر رو کم میکنه. حالا اگه این ارتباط نزدیک رو با تکنولوژی L4S ترکیب کنیم، میتونیم سرویس‌هایی با تاخیر فوق‌العاده کم و بهره‌وری انرژی بالا ارائه بدیم. L4S میتونه با در نظر گرفتن اولویت اپلیکیشن‌ها و حتی مصرف انرژی نودهای شبکه، بهترین مسیر رو برای داده‌ها انتخاب کنه و کیفیت کلی سرویس‌های حساس به تاخیر رو بهینه کنه.

    ۵. دوقلوی دیجیتال (Digital Twin)

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

    برای اینکه این مدل مجازی همیشه با دنیای واقعی همگام باشه، به یک ارتباط فوق‌سریع و با تاخیر کم نیاز داره. L4S با تضمین این ارتباط، نقشی کلیدی در کارکرد صحیح و دقیق سیستم‌های دوقلوی دیجیتال ایفا میکنه.

    ۶. بلاک‌چین (Blockchain)

    در شبکه‌های بلاک‌چین، تمام نودها (کامپیوترها) باید به صورت مداوم داده‌هاشون رو با هم همگام‌سازی کنن تا یکپارچگی و امنیت شبکه حفظ بشه. L4S میتونه با افزایش سرعت و قابلیت اطمینان ارتباط بین نودها، عملکرد کل شبکه بلاک‌چین رو بهبود بده. مثلا در انجام تراکنش‌های ارز دیجیتال یا اجرای قراردادهای هوشمند، L4S با کاهش تاخیر شبکه، سرعت پاسخگویی سیستم رو بالا میبره و به حفظ امنیت و ثبات شبکه کمک میکنه.

    اینها فقط چند نمونه از کاربردهای L4S بودن. در واقع، هر اپلیکیشنی که به ارتباط لحظه‌ای و روان نیاز داره، از پخش زنده و خدمات پزشکی از راه دور گرفته تا اینترنت اشیا (IoT) و آموزش آنلاین، میتونه از مزایای این تکنولوژی بهره‌مند بشه.

    فصل هفتم: چالش‌ها و فرصت‌های پیش رو

    با وجود تمام مزایا و پتانسیل‌های هیجان‌انگیزی که L4S داره، پیاده‌سازی و همه‌گیر شدن اون در کل اینترنت با چالش‌هایی هم روبرو هست. این تکنولوژی یک تغییر بنیادین در نحوه مدیریت ترافیک شبکه است و مثل هر تغییر بزرگی، نیاز به زمان، همکاری و حل کردن برخی مشکلات داره. بیایید نگاهی به این چالش‌ها و فرصت‌های تحقیقاتی که ایجاد میکنن، بندازیم.

    چالش‌های اصلی پیاده‌سازی L4S

    1. نیاز به ارتقا تجهیزات: یکی از بزرگترین چالش‌ها اینه که برای کار کردن L4S، تجهیزات شبکه مثل روترها و مودم‌ها باید از قابلیت‌های جدیدی مثل جداسازی صف و علامت‌گذاری ECN پشتیبانی کنن. این یعنی روترهای قدیمی‌تر شاید نتونن از این تکنولوژی استفاده کنن و نیاز به آپدیت فریم‌ور (Firmware) یا حتی تعویض سخت‌افزاری دارن. البته این یک فرآیند تدریجیه و L4S طوری طراحی شده که بتونه در کنار ترافیک کلاسیک و روی تجهیزات قدیمی هم کار کنه، ولی برای بهره‌مندی کامل از مزایای اون، کل مسیر بین فرستنده و گیرنده باید L4S-Aware باشه.
    2. پیچیدگی در طراحی پروتکل: L4S نیازمند یک هماهنگی و بهینه‌سازی مشترک بین الگوریتم کنترل ازدحام در سمت فرستنده (مثلا کامپیوتر شما) و استراتژی علامت‌گذاری ECN در روترهای میانی شبکه است. این هماهنگی، طراحی پروتکل رو نسبت به مکانیزم‌های سنتی که فقط یک طرف ماجرا (فرستنده) هوشمند بود، پیچیده‌تر میکنه. باید مطمئن شد که این سیستم در شرایط مختلف شبکه و با ترافیک‌های متنوع، پایدار باقی میمونه.
    3. اکوسیستم و پذیرش گسترده: موفقیت L4S به این بستگی داره که تمام بازیگران اصلی اینترنت، از تولیدکننده‌های چیپست و دستگاه (مثل اپل، کوالکام)، توسعه‌دهنده‌های سیستم‌عامل (مثل گوگل، مایکروسافت) و اپلیکیشن‌ها (مثل انویدیا، Valve) گرفته تا ارائه‌دهنده‌های بزرگ اینترنت (ISPها مثل Comcast و T-Mobile)، همزمان تصمیم بگیرن که مزایای این تکنولوژی به هزینه و پیچیدگی تغییر میارزه. این یک چالش بزرگ اقتصادی و سیاسیه، نه فقط فنی. همونطور که یکی از کارشناس‌ها به اسم «ویش ناندلال» (Vish Nandlall) اشاره کرده، در اینترنت، درست بودن فنی یک پروتکل، موفقیتش رو تضمین نمیکنه.

    فرصت‌های تحقیقاتی در 5G-Advanced

    معرفی L4S در استاندارد 5G-Advanced، در کنار حل مشکلات، فرصت‌های جدیدی رو هم برای تحقیق و بهینه‌سازی بیشتر ایجاد کرده. برخی از موضوعات مهمی که محققان در حال کار روی اونها هستن عبارتند از:

    • الگوریتم‌های تطبیق‌پذیر برای تشخیص ازدحام: چطور میشه در یک شبکه بی‌سیم که شرایطش دائم در حال تغییره، ازدحام رو به سرعت و با دقت تشخیص داد؟ محققان در حال توسعه الگوریتم‌های جدیدی هستن که با استفاده از تکنیک‌های پیش‌بینی، بتونن شرایط کانال رادیویی و الگوهای ترافیک رو حدس بزنن و قبل از وقوع ازدحام جدی، اون رو شناسایی کنن.
    • بهینه‌سازی استراتژی علامت‌گذاری ECN: آستانه شلوغی برای شروع علامت‌گذاری ECN باید چقدر باشه؟ اگه خیلی کم باشه، شاید پهنای باند هدر بره و اگه خیلی زیاد باشه، تاخیر زیاد میشه. از طرفی، اپلیکیشن‌های مختلف نیازهای متفاوتی دارن. پس چطور میشه این آستانه رو به صورت پویا و بر اساس نیاز هر اپلیکیشن (که از روی 5QI اون مشخص میشه) تنظیم کرد؟ این یک زمینه تحقیقاتی مهمه.
    • الگوریتم‌های کنترل ازدحام مبتنی بر L4S: طراحی الگوریتم‌های کنترل ازدحام جدید که بتونن به بهترین شکل با استراتژی‌های علامت‌گذاری ECN همکاری کنن، یک چالش دیگه‌ست. این الگوریتم‌ها باید بتونن بدون کاهش بی‌دلیل سرعت یا ایجاد نوسان، به سیگنال‌های ازدحام واکنش نشون بدن.
    • بهینه‌سازی تخصیص منابع بی‌سیم: با وجود L4S، چطور میشه منابع رادیویی شبکه (مثل پهنای باند فرکانسی) رو طوری تخصیص داد که هم تجربه کاربران L4S تضمین بشه و هم به بقیه کاربران شبکه فشار نیاد؟ تکنیک‌هایی مثل رزرو دینامیک منابع یا اسلایسینگ شبکه (Network Slicing) میتونن در این زمینه کمک کنن.
    • مدیریت تحرک (Mobility Management): وقتی یک کاربر با گوشی در حال حرکت از محدوده پوشش یک دکل به دکل دیگه میره (فرآیندی به اسم Handover)، L4S چطور باید به کارش ادامه بده؟ چطور میشه مطمئن شد که تشخیص ازدحام و علامت‌گذاری ECN در حین این جابجایی به صورت یکپارچه و بدون وقفه ادامه پیدا میکنه؟ اینها سوالاتی هستن که باید برای اونها راه حل‌های قوی پیدا بشه.

    حل این چالش‌ها و پیشرفت در این زمینه‌های تحقیقاتی کمک میکنه تا L4S بهتر و کارآمدتر در شبکه‌های 5G و نسل‌های بعدی پیاده‌سازی بشه و ما بتونیم از یک تجربه اینترنتی واقعا بی‌نقص لذت ببریم.

    فصل هشتم: اعداد و ارقام حرف میزنن (یک مطالعه موردی)

    برای اینکه ببینیم L4S در عمل چقدر بهتر از روش‌های قدیمی کار میکنه، یک تیم تحقیقاتی به رهبری «گوانگجین پن» (Guangjin Pan) و «شوگونگ شو» (Shugong Xu) یک سیستم آزمایشی برای ارتباطات ویدیویی زنده (RTC) ساختن و عملکرد الگوریتم‌های مختلف رو با هم مقایسه کردن. این مطالعه موردی به ما نشون میده که تفاوت‌ها فقط در حد تئوری نیستن و در دنیای واقعی هم قابل اندازه‌گیری هستن.

    اونها یک سیستم مبتنی بر WebRTC (یک استاندارد باز برای ارتباطات صوتی و تصویری زنده) ساختن و برای شبیه‌سازی یک روتر L4S، از یک نرم‌افزار متن‌باز به اسم DualPI2 استفاده کردن. بعد اومدن و چهار تا الگوریتم کنترل ازدحام مختلف رو با هم مقایسه کردن:

    1. GCC: این الگوریتم پیش‌فرض و معروف گوگل در WebRTC هست. GCC برای تخمین پهنای باند موجود، از اطلاعاتی مثل اتلاف بسته و تغییرات تاخیر استفاده میکنه.
    2. Sensitive-GCC: این یک نسخه حساس‌تر از GCC بود که پارامترهاش طوری تنظیم شده بود که سریع‌تر به ازدحام شبکه واکنش نشون بده.
    3. L4S-CC: این الگوریتم فقط از اطلاعات ECN (که از شبکه L4S میاد) برای تخمین پهنای باند و کنترل سرعت استفاده میکرد.
    4. L4S-GCC: این الگوریتم پیشنهادی و بهینه‌سازی شده خود محققان بود. L4S-GCC در واقع ترکیبی از GCC و L4S بود. یعنی هم از اطلاعات ECN برای واکنش سریع به ازدحام استفاده میکرد و هم از مکانیزم‌های GCC مثل گرادیان تاخیر برای بازیابی سریع‌تر سرعت بعد از رفع ازدحام بهره میبرد.

    این چهار الگوریتم در سناریوهای مختلفی تست شدن تا توانایی‌هاشون در دو زمینه اصلی سنجیده بشه: ۱) واکنش سریع به نوسانات پهنای باند برای کاهش فریز شدن ویدیو، و ۲) مقابله با لرزش تاخیر (Delay Jitter) برای افزایش بهره‌وری پهنای باند.

    نتایج در سناریوهای نوسان پهنای باند

    در سه سناریوی اول، پهنای باند شبکه متغیر بود (یک بار ثابت، یک بار با نوسان مربعی و یک بار بر اساس یک نمونه واقعی از شبکه 5G). نتایج این تست‌ها در جدول زیر خلاصه شده:

    مورد تستالگوریتمنرخ توقف ویدیو (Stalling Rate)کیفیت دریافتی (Mbps)
    Case 1GCC1.83%2.90
    Sensitive-GCC0.61%2.83
    L4S-CC0.28%2.32
    L4S-GCC0.32%2.72
    Case 2GCC3.42%3.26
    Sensitive-GCC0.95%3.19
    L4S-CC0.49%2.43
    L4S-GCC0.62%3.01
    Case 3GCC2.65%2.23
    Sensitive-GCC0.75%2.05
    L4S-CC0.62%1.71
    L4S-GCC0.68%1.92

    همونطور که توی جدول میبینید، الگوریتم L4S-GCC به طور چشمگیری عملکرد بهتری از GCC معمولی داشت. نرخ توقف ویدیو (Stalling Rate) که نشون‌دهنده تجربه کاربره، در الگوریتم L4S-GCC خیلی پایین‌تر بود. مثلا در سناریوی دوم، L4S-GCC نرخ توقف رو از ۳.۴۲ درصد به ۰.۶۲ درصد کاهش داد که یک بهبود ۲.۸۰ درصدی محسوب میشه. این یعنی کاربرها خیلی کمتر با صحنه فریز شده ویدیو مواجه میشن. درسته که کیفیت دریافتی (پهنای باند) L4S-GCC یه مقدار کمتر از GCC بود، اما این کاهش ناچیز در مقابل بهبود فوق‌العاده در روان بودن پخش، کاملا ارزشش رو داشت.

    نتایج در سناریوی لرزش تاخیر (Delay Jitter)

    در شبکه‌های بی‌سیم، خیلی وقت‌ها تاخیر بسته‌ها ثابت نیست و کم و زیاد میشه (به این میگن Jitter). الگوریتم GCC چون بر اساس تغییرات تاخیر کار میکنه، این Jitter رو با ازدحام اشتباه میگیره و بی‌دلیل سرعتش رو کم میکنه که باعث هدر رفتن پهنای باند میشه. اما L4S-GCC چون اطلاعات دقیق صف رو از طریق ECN میگیره، گول این Jitter رو نمیخوره. نتایج تست در این سناریو واقعا جالب بود:

    پیکربندی لرزش تاخیرالگوریتمکیفیت دریافتی (Mbps)بهره‌وری پهنای باند
    10/12/14/16 msGCC4.1282.4%
    Sensitive-GCC2.2545.0%
    L4S-CC4.0380.6%
    L4S-GCC4.6993.8%
    10/14/18/22 msGCC3.7374.6%
    Sensitive-GCC1.8036.0%
    L4S-CC4.1883.6%
    L4S-GCC4.7294.4%
    10/18/26/34 msGCC2.8657.2%
    Sensitive-GCC1.9338.6%
    L4S-CC3.9879.2%
    L4S-GCC4.4388.6%

    این نتایج به وضوح نشون میدن که L4S-GCC چقدر در مقابل Jitter مقاومه. در حالی که بهره‌وری پهنای باند GCC با افزایش Jitter به شدت افت میکنه (تا ۵۷.۲ درصد)، L4S-GCC همچنان بالای ۸۸ درصد باقی میمونه. این یعنی L4S-GCC میتونه بهره‌وری پهنای باند رو بین ۱۱.۴ تا ۳۱.۴ درصد نسبت به GCC بهبود بده. الگوریتم Sensitive-GCC هم که در سناریوی قبلی خوب عمل کرده بود، اینجا کاملا شکست خورد و نشون داد که در مقابل Jitter خیلی آسیب‌پذیره.

    این مطالعه موردی به صورت عملی و با اعداد و ارقام ثابت میکنه که L4S و الگوریتم‌های مبتنی بر اون، فقط یک ایده قشنگ نیستن، بلکه یک راه حل واقعی برای بهبود چشمگیر تجربه ما از اپلیکیشن‌های زنده و حساس به تاخیر در شبکه‌های پرچالش امروزی هستن.

    منابع

  • PHP 8.4، ویژگی‌ها، تغییرات و سازگاری با وردپرس

    یک نسخه جدید از زبان برنامه‌نویسی PHP با شماره ۸.۴ منتشر شده. شاید اسم PHP به گوشتون خورده باشه؛ این همون زبانیه که بخش بزرگی از اینترنت، از جمله سیستم‌های معروفی مثل وردپرس، با اون کار میکنن. هر چند وقت یک بار، یک نسخه جدید از این زبان میاد که یک سری تغییرات و ویژگی‌های تازه با خودش داره. این آپدیت‌ها میتونن روی سرعت، امنیت و امکانات سایت‌ها تاثیر بذارن.

    این مقاله قراره یک راست بره سر اصل مطلب و خیلی خودمونی و ساده توضیح بده که توی PHP 8.4 چه خبره. قراره ببینیم چه چیزهای جدیدی بهش اضافه شده، چه چیزهایی در حال حذف شدنه و این تغییرات، مخصوصا برای کسایی که با وردپرس کار میکنن، چه معنی‌ای میتونه داشته باشه. همچنین نگاهی به صحبت‌های کاربرها و شرکت‌های مختلف، مثل لاراول، پلسک و Kinsta، میندازیم تا ببینیم نظر اون‌ها در مورد این نسخه جدید چیه.

    ویژگی‌های جدید PHP 8.4: چه چیزهایی تغییر کرده؟

    نسخه ۸.۴ یک آپدیت بزرگ حساب میشه و کلی ویژگی‌های جدید، بهبود عملکرد، رفع اشکالات و تمیزکاری‌های کلی توش انجام شده. بیاین با هم این ویژگی‌ها رو یکی یکی بررسی کنیم.

    هوک‌های پراپرتی (Property Hooks): خداحافظی با کدهای تکراری

    یکی از بزرگ‌ترین تغییرات این نسخه، چیزیه به اسم «هوک‌های پراپرتی». برای اینکه بفهمیم این چیه، بذارید یک مثال بزنیم. فرض کنید توی سایتتون یک کلاس برای «کاربر» دارید. این کاربر اسم کوچیک و اسم فامیل داره. شما معمولا این دو تا رو جدا ذخیره می‌کنید. حالا اگه بخواید اسم کامل کاربر رو نشون بدید، باید یک تابع (Function) بنویسید که هر بار اسم کوچیک و فامیل رو بگیره و به هم بچسبونه و به شما تحویل بده. به این تابع میگن «گِتِر» (Getter). حالا اگه بخواید اسم کامل رو تغییر بدید، باید یک تابع دیگه به اسم «سِتِر» (Setter) بنویسید که اسم کامل رو بگیره، اون رو به دو بخش اسم کوچیک و فامیل تقسیم کنه و بعد ذخیره کنه. این یعنی برای هر چیزی کلی کد تکراری باید بنویسید.

    هوک‌های پراپرتی این مشکل رو حل میکنن. با این ویژگی، شما میتونید برای یک متغیر (Property) مثل «اسم کامل»، رفتار خوندن (get) و نوشتن (set) رو مستقیم تعریف کنید. دیگه نیازی به نوشتن تابع‌های جداگونه نیست.

    برای مثال، کد زیر رو در نظر بگیرید که در نسخه‌های قدیمی‌تر PHP نوشته میشد:

    کدنویسی قبل از PHP 8.4:

    class Locale  
    {  
        private string $languageCode;  
        private string $countryCode;  
      
        public function __construct(string $languageCode, string $countryCode)  
        {  
            $this->setLanguageCode($languageCode);  
            $this->setCountryCode($countryCode);  
        }  
      
        public function getLanguageCode(): string  
        {  
            return $this->languageCode;  
        }  
      
        public function setLanguageCode(string $languageCode): void  
        {  
            $this->languageCode = $languageCode;  
        }  
      
        public function getCountryCode(): string  
        {  
            return $this->countryCode;  
        }  
      
        public function setCountryCode(string $countryCode): void  
        {  
            $this->countryCode = strtoupper($countryCode);  
        }  
      
        public function setCombinedCode(string $combinedCode): void  
        {  
            [$languageCode, $countryCode] = explode('_', $combinedCode, 2);  
      
            $this->setLanguageCode($languageCode);  
            $this->setCountryCode($countryCode);  
        }  
      
        public function getCombinedCode(): string  
        {  
            return \sprintf("%s_%s", $this->languageCode, $this->countryCode);  
        }  
    }  
      
    $brazilianPortuguese = new Locale('pt', 'br');  
    var_dump($brazilianPortuguese->getCountryCode()); // BR  
    var_dump($brazilianPortuguese->getCombinedCode()); // pt_BR

    همونطور که میبینید، کلی تابع get و set برای هر متغیر نوشته شده.

    حالا ببینید با PHP 8.4 و هوک‌های پراپرتی چقدر کد ساده‌تر میشه:

    کدنویسی با PHP 8.4:

    class Locale  
    {  
        public string $languageCode;  
      
        public string $countryCode  
        {  
            set (string $countryCode) {  
                $this->countryCode = strtoupper($countryCode);  
            }  
        }  
      
        public string $combinedCode  
        {  
            get => \sprintf("%s_%s", $this->languageCode, $this->countryCode);  
            set (string $value) {  
                [$this->languageCode, $this->countryCode] = explode('_', $value, 2);  
            }  
        }  
      
        public function __construct(string $languageCode, string $countryCode)  
        {  
            $this->languageCode = $languageCode;  
            $this->countryCode = $countryCode;  
        }  
    }  
      
    $brazilianPortuguese = new Locale('pt', 'br');  
    var_dump($brazilianPortuguese->countryCode); // BR  
    var_dump($brazilianPortuguese->combinedCode); // pt_BR

    این ویژگی باعث میشه کد شما خواناتر بشه و ابزارهای تحلیل کد هم بهتر بفهمن که هر متغیر چطور کار میکنه. نکته جالب دیگه اینه که هوک‌های پراپرتی رو حتی میشه توی اینترفیس‌ها (Interfaces) هم تعریف کرد که برای برنامه‌نویس‌ها یک امکان خیلی کاربردیه. این ویژگی از زبان‌هایی مثل کاتلین، سی‌شارپ و سویفت الهام گرفته شده.

    دید نامتقارن (Asymmetric Visibility): کنترل دقیق‌تر روی دسترسی

    این هم یکی دیگه از ویژگی‌های مهم PHP 8.4 هست. تا قبل از این، وقتی شما یک متغیر توی یک کلاس تعریف می‌کردید، سطح دسترسی اون (مثلا public, protected, private) برای خوندن و نوشتن یکی بود. یعنی اگه یک متغیر public بود، هر کسی از بیرون کلاس میتونست هم اون رو بخونه و هم مقدارش رو تغییر بده.

    خیلی وقت‌ها برنامه‌نویس‌ها میخوان یک متغیر از بیرون قابل خوندن باشه، اما فقط از داخل خود کلاس بشه اون رو تغییر داد. برای این کار مجبور بودن متغیر رو private کنن و بعد یک تابع public برای خوندنش بنویسن (همون Getter که بالاتر گفتیم). این کار باعث تولید کدهای اضافه میشد.

    حالا با «دید نامتقارن»، شما میتونید سطح دسترسی برای خوندن و نوشتن رو جداگانه تعیین کنید.

    برای مثال، یک کلاس رو در نظر بگیرید که نسخه PHP رو نگه میداره. قبل از نسخه ۸.۴ کدش این شکلی بود:

    کدنویسی قبل از PHP 8.4:

    class PhpVersion  
    {  
        private string $version = '8.3';  
      
        public function getVersion(): string  
        {  
            return $this->version;  
        }  
      
        public function increment(): void  
        {  
            [$major, $minor] = explode('.', $this->version);  
            $minor++;  
            $this->version = "{$major}.{$minor}";  
        }  
    }

    اینجا متغیر version خصوصی (private) هست و برای خوندنش باید از تابع getVersion استفاده کرد.

    حالا با PHP 8.4 ببینید چطور میشه:

    کدنویسی با PHP 8.4:

    class PhpVersion  
    {  
        public private(set) string $version = '8.4';  
      
        public function increment(): void  
        {  
            [$major, $minor] = explode('.', $this->version);  
            $minor++;  
            $this->version = "{$major}.{$minor}";  
        }  
    }

    اینجا با public private(set) داریم میگیم که این متغیر برای خوندن public (عمومی) هست، اما برای نوشتن (set) فقط private (خصوصی) هست. یعنی از بیرون میشه مقدارش رو خوند، ولی نمیشه تغییرش داد. حتی یک حالت خلاصه‌تر هم وجود داره: private(set) که همین معنی رو میده. این سینتکس برای protected هم کار میکنه و با پراپرتی‌های پروموت شده (promoted properties) هم سازگاره.

    فراخوانی متد بعد از new بدون پرانتز اضافه

    این یک تغییر کوچیک اما خیلی کاربردیه که برنامه‌نویس‌ها مدت‌ها منتظرش بودن. فرض کنید میخواین یک شی (Object) جدید از یک کلاس بسازید و بلافاصله یکی از متدهای اون رو فراخوانی کنید. تا قبل از PHP 8.4، باید کل عبارت new MyClass() رو داخل یک جفت پرانتز میذاشتید.

    قبل از PHP 8.4:

    $name = (new ReflectionClass($objectOrClass))->getShortName();

    این پرانتزهای اضافه شاید به نظر چیز مهمی نیان، ولی توی کدنویسی روزمره میتونن اذیت‌کننده باشن.

    توی PHP 8.4، دیگه نیازی به این پرانتزها نیست.

    با PHP 8.4:

    $name = new ReflectionClass($objectOrClass)->getShortName();

    این تغییر باعث میشه کد تمیزتر و شبیه‌تر به زبان‌های برنامه‌نویسی دیگه‌ای مثل جاوا و سی‌شارپ بشه. این قابلیت نه تنها برای متدها، بلکه برای دسترسی به پراپرتی‌ها و ثابت‌های کلاس هم کار میکنه.

    اتربیوت #[Deprecated]: راهی استاندارد برای منسوخ کردن کد

    کلمه «Deprecated» یعنی «منسوخ شده». توی برنامه‌نویسی، گاهی وقت‌ها یک تابع یا متد قدیمی میشه و یک راه بهتر برای انجام همون کار به وجود میاد. برنامه‌نویس‌ها دوست دارن به بقیه بگن که «از این روش قدیمی استفاده نکنید، چون قراره در آینده حذف بشه».

    تا قبل از این، راه استاندارد این بود که بالای تابع یک کامنت مخصوص مثل /** @deprecated */ میذاشتن. این کامنت‌ها رو فقط ابزارهای خارجی مثل IDE‌ها میفهمیدن و خود PHP کاری باهاشون نداشت.

    حالا توی PHP 8.4، یک اتربیوت (Attribute) داخلی به اسم #[Deprecated] اضافه شده. وقتی شما این اتربیوت رو بالای یک تابع، متد یا ثابت کلاس میذارید، خود PHP متوجه میشه که اون کد منسوخ شده. اگه کسی از اون کد استفاده کنه، PHP یک اخطار (warning) نشون میده.

    قبل از PHP 8.4:

    class PhpVersion  
    {  
        /**  
        * @deprecated 8.3 use PhpVersion::getVersion() instead  
        */  
        public function getPhpVersion(): string  
        {  
            return $this->getVersion();  
        }  
      
        public function getVersion(): string  
        {  
            return '8.3';  
        }  
    }  
      
    $phpVersion = new PhpVersion();  
    // هیچ هشداری داده نمیشه
    echo $phpVersion->getPhpVersion();

    با PHP 8.4:

    class PhpVersion  
    {  
        #[\Deprecated(  
            message: "use PhpVersion::getVersion() instead",  
            since: "8.4",  
        )]  
        public function getPhpVersion(): string  
        {  
            return $this->getVersion();  
        }  
      
        public function getVersion(): string  
        {  
            return '8.4';  
        }  
    }  
      
    $phpVersion = new PhpVersion();  
    // این خط یک هشدار تولید میکنه
    // Deprecated: Method PhpVersion::getPhpVersion() is deprecated since 8.4, use PhpVersion::getVersion() instead  
    echo $phpVersion->getPhpVersion();

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

    پشتیبانی از HTML5 و API جدید برای DOM

    DOM یا Document Object Model راهی برای کار با اسناد HTML و XML در برنامه‌نویسیه. API قبلی DOM در PHP قدیمی بود و با استانداردهای جدید، به خصوص HTML5، مشکلاتی داشت.

    در PHP 8.4، یک API کاملا جدید برای DOM در فضای نام (namespace) جدید Dom معرفی شده. این API جدید با استانداردهای وب مدرن سازگاره و میتونه اسناد HTML5 رو به درستی تجزیه (parse) کنه. همچنین خیلی از باگ‌های قدیمی API قبلی رو رفع کرده و توابع جدیدی برای کار راحت‌تر با اسناد بهش اضافه شده.

    برای مثال، کد زیر رو ببینید که چطور با API قدیمی کار میکرد:

    قبل از PHP 8.4:

    $dom = new DOMDocument();  
    $dom->loadHTML(  
        <<<'HTML'  
        <main>  
            <article>PHP 8.4 is a feature-rich release!</article>  
            <article class="featured">PHP 8.4 adds new DOM classes that are spec-compliant, keeping the old ones for compatibility.</article>  
        </main>  
        HTML,  
        LIBXML_NOERROR,  
    );  
      
    $xpath = new DOMXPath($dom);  
    $node = $xpath->query(".//main/article[not(following-sibling::*)]")[0];  
    $classes = explode(" ", $node->className); // Simplified  
    var_dump(in_array("featured", $classes)); // bool(true)

    حالا با API جدید در PHP 8.4، کار خیلی ساده‌تره:

    $dom = Dom\HTMLDocument::createFromString(  
        <<<'HTML'  
        <main>  
            <article>PHP 8.4 is a feature-rich release!</article>  
            <article class="featured">PHP 8.4 adds new DOM classes that are spec-compliant, keeping the old ones for compatibility.</article>  
        </main>  
        HTML,  
        LIBXML_NOERROR,  
    );  
      
    $node = $dom->querySelector('main > article:last-child');  
    var_dump($node->classList->contains("featured")); // bool(true)

    برای حفظ سازگاری با کدهای قدیمی، کلاس DOMDocument قبلی همچنان موجوده. کلاس جدید Dom\HTMLDocument نام داره.

    API شی‌گرا برای BCMath

    BCMath یک افزونه در PHP برای کار با اعداد با دقت خیلی بالاست (arbitrary precision numbers)، مثلا برای محاسبات ریاضی روی اعداد خیلی بزرگ یا خیلی اعشاری که دقتشون مهمه. تا قبل از این، کار با BCMath فقط از طریق توابع ممکن بود.

    در PHP 8.4، یک API شی‌گرا (Object-Oriented) به BCMath اضافه شده. حالا یک کلاس جدید به اسم BcMath\Number وجود داره که میتونید ازش استفاده کنید. جالب‌تر اینکه این اشیا از عملگرهای ریاضی استاندارد (مثل +، -، *، /) پشتیبانی میکنن.

    قبل از PHP 8.4:

    $num1 = '0.12345';  
    $num2 = '2';  
    $result = bcadd($num1, $num2, 5);  
      
    echo $result; // '2.12345'  
    var_dump(bccomp($num1, $num2) > 0); // false

    با PHP 8.4:

    use BcMath\Number;  
      
    $num1 = new Number('0.12345');  
    $num2 = new Number('2');  
    $result = $num1 + $num2;  
      
    echo $result; // '2.12345'  
    var_dump($num1 > $num2); // false

    این اشیا غیرقابل تغییر (immutable) هستن و میشه اون‌ها رو مثل یک رشته چاپ کرد.

    توابع جدید برای آرایه‌ها

    چند تا تابع جدید و کاربردی برای کار با آرایه‌ها (لیست‌ها) اضافه شده که خیلی‌ها منتظرشون بودن. این توابع به شما کمک میکنن بدون نوشتن حلقه‌های تکراری (loops)، کارهای رایجی رو انجام بدید.

    • array_find(): اولین عنصری از آرایه رو پیدا میکنه که شرط شما رو برآورده کنه.
    • array_find_key(): کلید (key) اولین عنصری رو پیدا میکنه که شرط شما رو برآورده کنه.
    • array_any(): چک میکنه که آیا حداقل یک عنصر در آرایه شرط شما رو برآورده میکنه یا نه. (نتیجه true یا false میده)
    • array_all(): چک میکنه که آیا تمام عناصر آرایه شرط شما رو برآورده میکنن یا نه. (نتیجه true یا false میده)

    مثلا برای array_find، قبلا باید اینجوری کد می‌نوشتید:

    قبل از PHP 8.4:

    $animal = null;  
    foreach (['dog', 'cat', 'cow', 'duck', 'goose'] as $value) {  
        if (str_starts_with($value, 'c')) {  
            $animal = $value;  
            break;  
        }  
    }  
      
    var_dump($animal); // string(3) "cat"

    با PHP 8.4:

    $animal = array_find(  
        ['dog', 'cat', 'cow', 'duck', 'goose'],  
        static fn (string $value): bool => str_starts_with($value, 'c'),  
    );  
      
    var_dump($animal); // string(3) "cat"

    این توابع کد رو خیلی خواناتر و کوتاه‌تر میکنن.

    زیرکلاس‌های مخصوص درایور برای PDO

    PDO یک راه استاندارد برای اتصال به انواع مختلف دیتابیس‌ها در PHP هست. قبلا وقتی شما یک اتصال PDO مثلا به دیتابیس SQLite میساختید، یک شی از نوع PDO دریافت میکردید.

    در PHP 8.4، برای هر درایور دیتابیس، یک زیرکلاس (subclass) مخصوص از PDO ایجاد شده. مثلا اگه به SQLite وصل بشید، یک شی از نوع Pdo\Sqlite میگیرید. این کار باعث میشه که توابع مخصوص هر دیتابیس (مثلا createFunction برای SQLite) رو بشه به صورت مستقیم روی شی اتصال فراخوانی کرد و کد شما از نظر نوع (type) امن‌تر باشه.

    لیست زیرکلاس‌های جدید:
    Pdo\Dblib, Pdo\Firebird, Pdo\MySql, Pdo\Odbc, Pdo\Pgsql, و Pdo\Sqlite.

    اشیا تنبل (Lazy Objects)

    این یک الگوی برنامه‌نویسیه که به خصوص فریمورک‌ها ازش استفاده میکنن. ایده اینه که یک شی فقط زمانی به طور کامل ساخته و مقداردهی اولیه بشه که واقعا بهش نیاز پیدا کنیم. این کار به بهبود عملکرد و کاهش مصرف حافظه کمک میکنه، به خصوص برای اشیایی که ساختنشون سنگینه. PHP 8.4 حالا به صورت داخلی از این قابلیت پشتیبانی میکنه.

    تغییرات JIT

    JIT یا Just-In-Time Compiler یک ویژگی برای افزایش سرعت اجرای کدهای PHP هست. در نسخه ۸.۴، یک پیاده‌سازی جدید از JIT بر اساس IR Framework انجام شده. همچنین نحوه فعال کردن JIT در فایل تنظیمات php.ini تغییر کرده. قبلا برای غیرفعال کردن JIT باید opcache.jit_buffer_size رو روی صفر تنظیم می‌کردید، اما الان باید opcache.jit=disable رو تنظیم کنید. این تغییر میتونه روی کاربرانی که jit_buffer_size رو مشخص کردن ولی opcache.jit رو نه، تاثیر بذاره. اون‌ها باید opcache.jit=tracing رو اضافه کنن تا JIT دوباره فعال بشه.

    تغییر رفتار exit() و die()

    در PHP، exit و die (که یک نام مستعار برای exit هست) همیشه موجودات عجیبی بودن. میشد اون‌ها رو هم مثل یک کلمه کلیدی (exit;) و هم مثل یک تابع (exit(0);) استفاده کرد. اما وقتی مثل تابع استفاده میشدن، واقعا یک تابع کامل نبودن. مثلا از آرگومان‌های نام‌گذاری شده پشتیبانی نمی‌کردن یا نمیشد اون‌ها رو به عنوان یک callable پاس داد.

    در PHP 8.4، این رفتار اصلاح شده و exit() و die() حالا به عنوان توابع واقعی در نظر گرفته میشن. البته حالت بدون پرانتز همچنان مثل قبل کار میکنه.

    لیست سایر توابع و کلاس‌های جدید

    علاوه بر موارد بالا، کلی تابع و متد جدید دیگه هم اضافه شده که اینجا به صورت لیست بهشون اشاره میکنیم:

    • توابع BCMath جدید: bcceil(), bcdivmod(), bcfloor(), و bcround() برای گرد کردن و تقسیم اعداد با دقت بالا.
    • حالت‌های گرد کردن جدید: یک enum جدید به اسم RoundingMode برای تابع round() با ۴ حالت جدید اضافه شده.
    • متدهای جدید DateTime: متدهای createFromTimestamp(), getMicrosecond(), و setMicrosecond() به کلاس‌های DateTime و DateTimeImmutable اضافه شدن.
    • توابع جدید mbstring: توابع mb_trim(), mb_ltrim(), mb_rtrim(), mb_ucfirst(), و mb_lcfirst() برای کار با رشته‌های چندبایتی (مثل فارسی).
    • توابع جدید PCNTL: توابع pcntl_getcpu(), pcntl_setns() و … برای کنترل پراسس‌ها در سطح سیستم عامل.
    • متدهای جدید Reflection: متدهای جدیدی مثل isDeprecated(), isClosed(), isDynamic() به کلاس‌های Reflection اضافه شدن.
    • توابع و متدهای جدید دیگر: مثل request_parse_body(), http_get_last_response_headers(), متدهای جدید برای XMLReader و XMLWriter و تابع grapheme_str_split().
    • پشتیبانی از AEGIS-128L و AEGIS256 در Sodium برای رمزنگاری.
    • ثابت‌های جدید در Curl برای HTTP/3: CURL_HTTP_VERSION_3 و CURL_HTTP_VERSION_3ONLY.
    • گزینه‌های جدید در Curl: مثل CURLOPT_PREREQFUNCTION, CURLOPT_DEBUGFUNCTION و …

    موارد منسوخ شده و تغییراتی که سازگاری را میشکنند

    هر نسخه جدیدی از PHP علاوه بر ویژگی‌های جدید، یک سری از ویژگی‌های قدیمی رو هم منسوخ (deprecate) یا حذف میکنه. این کار برای تمیز نگه داشتن زبان و بهبود امنیت و عملکرد لازمه.

    منظور از «منسوخ شده» چیه؟ یعنی اینکه یک ویژگی هنوز کار میکنه، اما استفاده از اون توصیه نمیشه و در نسخه‌های آینده (مثلا PHP 9) به طور کامل حذف خواهد شد. PHP با نشون دادن یک هشدار به شما اطلاع میده که از این ویژگی استفاده نکنید.

    لیست مهم‌ترین تغییرات این بخش:

    • جدا شدن چند افزونه از هسته: افزونه‌های IMAP, OCI8, PDO_OCI, و pspell دیگه به صورت پیش‌فرض با PHP نصب نمیشن. اگه به اون‌ها نیاز دارید، باید از طریق PECL به صورت جداگانه نصبشون کنید.
    • منسوخ شدن پارامترهای Nullable ضمنی: قبلا اگه برای یک پارامتر تایپ‌شده، مقدار پیش‌فرض null میذاشتید، PHP به طور خودکار اون رو nullable (قابل تهی بودن) در نظر می‌گرفت. این رفتار گیج‌کننده بود. از این به بعد این کار منسوخ شده و باید به صراحت از علامت سوال ? برای nullable کردن استفاده کنید.
      • مثال: function save(Book $book = null) منسوخ شده و باید به function save(?Book $book = null) تغییر پیدا کنه.
    • استفاده از _ به عنوان نام کلاس منسوخ شده.
    • ثابت E_STRICT منسوخ شده و سطح خطای مربوط به اون حذف شده.
    • تغییرات در round(): پاس دادن یک حالت (mode) نامعتبر به تابع round() از این به بعد یک خطای ValueError ایجاد میکنه.
    • تایپ‌دار شدن ثابت‌های کلاس: ثابت‌های کلاس در افزونه‌های مهمی مثل date, intl, pdo, و reflection حالا تایپ مشخص دارن.
    • کلاس GMP نهایی (final) شده و دیگه نمیشه ازش ارث‌بری کرد.
    • حذف برخی ثابت‌ها در mysqli و منسوخ شدن توابع mysqli_ping(), mysqli_kill(), mysqli_refresh().
    • تغییر هزینه پیش‌فرض Bcrypt در هش کردن پسورد: این هزینه از 10 به 12 افزایش پیدا کرده که باعث امن‌تر شدن هش‌های پسورد میشه.
    • افزایش حداقل نسخه مورد نیاز: برای افزونه OpenSSL حداقل نسخه ۱.۱.۱ و برای libcurl حداقل نسخه ۷.۶۱.۰ نیازه.

    PHP 8.4 و سازگاری با وردپرس و سایر سیستم‌ها

    خب، حالا که با ویژگی‌های جدید و تغییرات PHP 8.4 آشنا شدیم، سوال مهم اینه که آیا میشه ازش با سیستم‌های محبوبی مثل وردپرس استفاده کرد یا نه؟

    جواب کوتاه اینه: باید با احتیاط عمل کرد.

    وقتی یک نسخه جدید PHP منتشر میشه، مدتی طول میکشه تا تمام سیستم‌ها، فریمورک‌ها، پلاگین‌ها و تم‌ها خودشون رو باهاش سازگار کنن. استفاده از یک نسخه PHP که توسط CMS یا پلاگین‌های شما پشتیبانی نمیشه، میتونه باعث خطاهای جدی، از کار افتادن سایت یا رفتارهای غیرمنتظره بشه.

    وضعیت سازگاری وردپرس

    بر اساس اطلاعات موجود، وضعیت وردپرس با PHP 8.4 به این شکله:

    • وردپرس ۶.۷ فقط پشتیبانی بتا (beta support) از PHP 8.4 داره. این یعنی تیم وردپرس در حال کار روی سازگاری کامل هستن، اما هنوز برای استفاده در سایت‌های واقعی (production) توصیه نمیشه.
    • شرکت‌های هاستینگ مثل Kinsta این نسخه رو برای مشتریانشون فراهم کردن، اما خودشون هم تاکید میکنن که نسخه پیشنهادی برای اکثر سایت‌های وردپرسی در حال حاضر PHP 8.2 هست.
    • توصیه اکید اینه که قبل از آپدیت، حتما یک بکاپ کامل از سایتتون بگیرید و اول تغییرات رو روی یک محیط آزمایشی (staging) تست کنید. اگه همه چیز بدون خطا کار کرد، اون وقت میتونید سایت اصلی رو آپدیت کنید.
    • تیم توسعه‌دهنده وردپرس هم در حال اعمال تغییراتی در هسته وردپرس برای سازگاری با PHP 8.4 هستن. برای مثال، اون‌ها به خاطر منسوخ شدن trigger_error() با E_USER_ERROR در PHP 8.4، تابع wp_trigger_error() رو تغییر دادن و یک کلاس جدید به اسم WP_Exception معرفی کردن. این نشون میده که کار برای سازگاری کامل در جریانه.

    وضعیت سازگاری سایر سیستم‌ها

    بیایید نگاهی به جدول سازگاری که توسط سایت maxcluster.de و بقیه منابع تهیه شده بندازیم:

    سیستم / CMSسازگاری با PHP 8.4توضیحات
    Shopware 6طبق مستندات رسمی، هنوز پشتیبانی تایید شده‌ای وجود نداره.
    TYPO3از نسخه‌های ۱۲ و ۱۳ به بعد سازگار هست.
    WordPress / WooCommerce⚠️پشتیبانی بتا در وردپرس ۶.۷. برای استفاده در محیط واقعی توصیه نمیشه.
    Drupalفقط نسخه‌های ۱۰.۴ و ۱۱.۱ سازگار هستن.
    OroCommerceمستندات فقط پشتیبانی تا PHP 8.3 رو ذکر کردن.
    Matomo (Piwik)از نسخه ۵.۲.۰ به بعد سازگاره.
    Tidewaysکاملا با PHP 8.4 سازگاره.

    بحث‌ها و نظرات در جوامع برنامه‌نویسی

    نگاهی به صحبت‌های کاربران و توسعه‌دهندگان در پلتفرم‌هایی مثل Reddit، Plesk و Nextcloud هم جالبه:

    • جامعه لاراول (Reddit): یک کاربر در r/laravel میگه که در شرکتشون معمولا یک نسخه اصلی عقب‌تر از آخرین نسخه PHP باقی میمونن. دلیلش اینه که نمیخوان با «papercuts» یا مشکلات ریز و درشتی که ممکنه در ابتدای انتشار یک نسخه جدید برای پکیج‌های مختلف پیش بیاد، درگیر بشن. این یک دیدگاه رایج در بین خیلی از توسعه‌دهنده‌هاست.
    • انجمن Plesk: کاربرها در انجمن Plesk در مورد زمان ارائه PHP 8.4 سوال کرده بودن. توسعه‌دهنده‌های Plesk توضیح دادن که آماده‌سازی و تست یک نسخه جدید PHP برای بیش از ۱۰ سیستم‌عامل مختلف، فرآیند پیچیده و زمان‌بریه. اون‌ها باید مطمئن بشن که همه چیز پایدار و سازگار کار میکنه. جالبه که یکی از کاربران اشاره کرده بود که cPanel (که متعلق به همون شرکت مادر Plesk هست) زودتر PHP 8.4 رو ارائه کرده.
    • انجمن Nextcloud: کاربران Nextcloud هم سوال مشابهی داشتن. به اون‌ها گفته شده که پشتیبانی از نسخه‌های جدید PHP معمولا با انتشار نسخه‌های اصلی (major release) جدید Nextcloud اضافه میشه. مثلا برای پشتیبانی از PHP 8.4 باید منتظر Nextcloud 31 باشن که حدود ۳۵ روز بعد از اون تاریخ منتشر میشد.

    این بحث‌ها نشون میده که فرایند آپدیت به یک نسخه جدید PHP در دنیای واقعی چطور پیش میره. اینطور نیست که به محض انتشار، همه بتونن فورا ازش استفاده کنن. صبر و تست کردن، کلید یک انتقال موفق و بدون دردسره.

    چطور به PHP 8.4 مهاجرت کنیم؟

    اگه تصمیم گرفتید که از PHP 8.4 استفاده کنید، این مراحل رو دنبال کنید:

    1. بررسی سازگاری: اولین و مهم‌ترین قدم. مطمئن بشید که CMS، فریمورک، تم‌ها و تمام پلاگین‌های شما با PHP 8.4 سازگار هستن. مستندات رسمی اون‌ها رو چک کنید.
    2. تهیه بکاپ: یک نسخه پشتیبان کامل از فایل‌ها و دیتابیس سایتتون تهیه کنید. این کار مثل بیمه عمر برای سایت شماست.
    3. استفاده از محیط آزمایشی (Staging): اکثر هاستینگ‌های خوب مثل Kinsta، یک محیط staging در اختیار شما قرار میدن. سایتتون رو به اونجا کپی کنید و نسخه PHP رو به ۸.۴ تغییر بدید. همه جای سایت رو با دقت تست کنید.
    4. بررسی کد: اگه خودتون برنامه‌نویس هستید، کدهاتون رو برای استفاده از ویژگی‌های منسوخ شده بررسی کنید و اون‌ها رو با روش‌های جدید جایگزین کنید.
    5. آپدیت نهایی: بعد از اینکه مطمئن شدید همه چیز در محیط آزمایشی درست کار میکنه، میتونید نسخه PHP سایت اصلی‌تون رو آپدیت کنید. در هاستینگ‌هایی مثل Kinsta یا maxcluster، این کار معمولا با چند کلیک ساده از طریق پنل کاربری انجام میشه.

    در نهایت، شرکت‌های هاستینگ مثل maxcluster اعلام کردن که از تاریخ ۱۴ ژانویه ۲۰۲۵، کاربرانشون روی تمام کلاسترهای اوبونتو میتونن به راحتی PHP 8.4 رو از طریق پنل کاربری فعال کنن. این انعطاف‌پذیری در انتخاب نسخه PHP یک مزیت بزرگ محسوب میشه.

    منابع

  • راهنمای راه‌اندازی و شروع به کار با ووکامرس

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

    در ادامه، به بررسی دقیق‌تر این بخش‌ها و موضوعات مرتبط با آنها می‌پرداززیم. این موضوعات شامل موارد زیر است:

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

    پیش‌نیازهای سرور برای نصب ووکامرس

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

    حداقل نیازمندی‌های سرور

    برای اینکه ووکامرس به درستی کار کند و سایت شما از نظر امنیت و عملکرد دچار مشکل نشود، سرور شما باید حداقل شرایط زیر را داشته باشد. این موارد به عنوان یک راهنما توصیه می‌شوند:

    • نسخه وردپرس: شما باید از نسخه ۶.۳ وردپرس یا بالاتر استفاده کنید. داشتن نسخه‌های جدیدتر وردپرس به شما کمک می‌کند تا از آخرین امکانات و به‌روزرسانی‌های امنیتی بهره‌مند شوید. این یک الزام اساسی است که باید به آن توجه ویژه‌ای داشته باشید.
    • نسخه PHP: نسخه PHP سرور شما باید ۷.۴ یا بالاتر باشد. PHP زبان برنامه‌نویسی است که وردپرس و ووکامرس با آن ساخته شده‌اند و استفاده از نسخه‌های جدیدتر آن به بهبود عملکرد و امنیت سایت شما کمک می‌کند. بنابراین، اطمینان از اینکه هاست شما از نسخه مناسب PHP پشتیبانی می‌کند، بسیار حیاتی است.
    • نسخه MySQL یا MariaDB: پایگاه داده شما باید MySQL نسخه ۵.۶۷ یا بالاتر، یا MariaDB نسخه ۱۰.۴ یا بالاتر باشد. اطلاعات فروشگاه شما مانند محصولات، سفارشات و مشتریان در پایگاه داده ذخیره می‌شود و داشتن نسخه به‌روز آن برای عملکرد صحیح سیستم ضروری است.
    • محدودیت حافظه وردپرس: محدودیت حافظه وردپرس شما باید ۲۵۶ مگابایت یا بیشتر باشد. این مقدار حافظه به وردپرس اجازه می‌دهد تا فرآیندهای مربوط به ووکامرس را بدون مشکل اجرا کند. کمبود حافظه می‌تواند باعث بروز خطاهای غیرمنتظره در سایت شما شود.
    • پشتیبانی از HTTPS: سایت شما باید از HTTPS پشتیبانی کند. استفاده از HTTPS برای امنیت فروشگاه آنلاین ضروری است، زیرا اطلاعات حساس مشتریان مانند اطلاعات پرداخت را رمزنگاری می‌کند و اعتماد آنها را جلب می‌کند.

    همچنین ارزش دارد که نیازمندی‌های سرور برای خود وردپرس را نیز بررسی کنید، زیرا ووکامرس به عنوان یک افزونه روی وردپرس کار می‌کند و نیازمندی‌های هر دو باید برآورده شوند.

    موارد اختیاری ولی مفید

    علاوه بر نیازمندی‌های اصلی، موارد دیگری نیز وجود دارند که هرچند اختیاری هستند، اما ممکن است برای استفاده از برخی امکانات و افزونه‌های ووکامرس لازم باشند:

    • پشتیبانی از cURL یا fsockopen: این موارد توسط خود ووکامرس و چندین افزونه جانبی آن، مانند افزونه PayPal IPN، برای برقراری ارتباط با سرویس‌های دیگر استفاده می‌شوند.
    • پشتیبانی از SOAP: برخی از افزونه‌های موجود در سایت WooCommerce.com برای کار کردن به پشتیبانی از SOAP نیاز دارند.
    • پشتیبانی از Multibyte String: اگر فروشگاه شما به زبانی غیر از انگلیسی است، برای کار با رشته‌های چندبایتی به این پشتیبانی نیاز خواهید داشت. این موضوع برای فروشگاه‌های فارسی‌زبان اهمیت دارد.
    • نیازمندی‌های مربوط به پیوندهای یکتا: اگر می‌خواهید از پیوندهای یکتای «زیبا» در وردپرس استفاده کنید، باید نیازمندی‌های اضافی که در بخش Using Permalinks وردپرس ذکر شده است را نیز برآورده کنید.
    • تنظیمات Global SQL: گزینه‌های حالت SQL مانند ERROR_FOR_DIVISION_BY_ZERO، NO_ENGINE_SUBSTITUTION، NO_ZERO_DATE، NO_ZERO_IN_DATE و STRICT_ALL_TABLES نیز ممکن است مورد نیاز باشند.

    بعد از نصب ووکامرس، می‌توانید از طریق صفحه «وضعیت سیستم» (System Status) بررسی کنید که آیا سرور شما این موارد را دارد یا نه.

    تغییر تنظیمات سرور

    قبل از اینکه تنظیمات سرور را برای سایت ووکامرس خود تغییر دهید، بسیار مهم است که از سایت و فایل‌های خود یک نسخه پشتیبان تهیه کنید. تغییرات در محیط سرور می‌تواند به طور قابل توجهی بر عملکرد و کارایی سایت شما تأثیر بگذارد.

    برای تغییر تنظیمات سرور، بهتر است ابتدا با شرکت هاستینگ خود تماس بگیرید. ممکن است آنها این تنظیمات را برای شما به‌روزرسانی کنند یا شما را راهنمایی کنند که چگونه از ابزارهای آنها برای انجام این تغییرات استفاده کنید.

    همچنین می‌توانید به صورت دستی تنظیمات PHP مانند post_max_size، max_input_vars و max_execution_time را در فایل .htaccess تنظیم کنید. برای دسترسی به این فایل می‌توانید از مدیریت فایل پنل هاستینگ خود یا یک کلاینت FTP مانند FileZilla استفاده کنید. برای راهنمایی در مورد دسترسی یا تغییر این فایل، با شرکت هاستینگ خود تماس بگیرید.

    انتخاب هاست مناسب برای ووکامرس

    اولین قدم برای ساختن کسب‌وکارتان با ووکامرس، انتخاب هاست است. یک هاست خوب تضمین می‌کند که فروشگاه شما برای مشتریانتان سریع، در دسترس و امن باشد. به همین دلیل است که داشتن یک راه‌حل قابل اعتماد بسیار حیاتی است.

    هاستینگ چیست؟

    هاست جایی است که فروشگاه ووکامرس شما در اینترنت زندگی می‌کند. یک ارائه‌دهنده هاستینگ تمام فایل‌های فروشگاه شما را نگهداری می‌کند و به مردم اجازه می‌دهد آن را به صورت آنلاین پیدا کنند. انتخاب هاست برای یک فروشگاه آنلاین به همان اندازه مهم است که انتخاب مکان برای یک فروشگاه فیزیکی. این انتخاب می‌تواند بر سرعت، پایداری و امنیت فروشگاه شما تأثیر بگذارد. برای هر اندازه‌ای از فروشگاه و هر بودجه‌ای، هاست‌های مختلفی وجود دارد. منابعی برای کمک به شما در تصمیم‌گیری در مورد اینکه کدام هاست ممکن است برای شما مناسب باشد وجود دارد، از جمله راهنماهایی برای انتخاب هاست برای فروشگاه‌های جدید یا در حال رشد.

    هاست‌های توصیه‌شده برای ووکامرس

    چندین شرکت هاستینگ به عنوان گزینه‌های پیشنهادی برای فروشگاه‌های ووکامرس معرفی شده‌اند. این شرکت‌ها راه‌حل‌هایی را ارائه می‌دهند که برای کار با ووکامرس بهینه‌سازی شده‌اند:

    • WordPress.com: پلن Commerce در WordPress.com شامل همه چیزهایی است که برای فروش آنلاین نیاز دارید: هاستینگ قوی، پشتیبانی اولویت‌دار و ابزارهایی برای کمک به رشد شما.
    • Pressable: این پلتفرم که جوایزی نیز دریافت کرده است، بسیار سریع، به طور خودکار مقیاس‌پذیر و با دسترسی بالا است و به طور انحصاری برای وردپرس ساخته شده است.
    • WordPress VIP: این شرکت هاستینگ در سطح سازمانی برای فروشگاه‌های ووکامرس ارائه می‌دهد و برای مشتریانی مانند CNN و TechCrunch که میلیاردها بازدید صفحه دارند، خدمات ارائه می‌کند.
    • Hostinger: این شرکت هاستینگ بهینه‌سازی شده برای ووکامرس را با راه‌اندازی فروشگاه با یک کلیک، درگاه‌های پرداخت یکپارچه و ابزارهای عملکردی تخصصی ارائه می‌دهد که تسویه‌حساب روان مشتریان را حتی در دوره‌های فروش با ترافیک بالا تضمین می‌کند.
    • Bluehost: با این هاست، وردپرس، ووکامرس و جت‌پک به صورت از پیش نصب شده ارائه می‌شوند. همچنین فرآیند ورود ساده، افزونه‌های قدرتمند برای افزایش فروش آنلاین و پشتیبانی ۲۴/۷ برای اطمینان از موفقیت شما از روز اول فراهم است.
    • SiteGround: این شرکت پلن‌های مدیریت شده ووکامرس را ارائه می‌دهد که با ویژگی‌های ممتازی مانند پشتیبان‌گیری روزانه خودکار، گواهی SSL رایگان، به‌روزرسانی خودکار، CDN رایگان، امنیت عالی، ایمیل‌های تجاری و موارد دیگر همراه است.

    نصب و حذف ووکامرس

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

    مراحل نصب از طریق پنل مدیریت وردپرس

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

    1. به بخش افزونه‌ها > افزودن افزونه جدید بروید.
    2. در کادر جستجو، عبارت «WooCommerce» را جستجو کنید.
    3. روی دکمه «هم‌اکنون نصب کن» کلیک کنید.
    4. سپس روی «فعال کردن» کلیک کنید تا آماده ورود به ویزارد راه‌اندازی ووکامرس شوید.

    ویزارد راه‌اندازی ووکامرس

    هنگامی که ووکامرس برای اولین بار فعال می‌شود، صفحه بعدی که پس از کلیک بر روی «فعال کردن» مشاهده می‌کنید، ویزارد راه‌اندازی ووکامرس (WooCommerce Setup Wizard) خواهد بود. این ویزارد به شما کمک می‌کند تا سایت خود را با قابلیت‌های ووکامرس راه‌اندازی و پیکربندی کنید. برای راهنمایی کامل در مورد این ویزارد که به آن Onboarding Wizard نیز گفته می‌شود، می‌توانید مستندات مربوط به آن را مطالعه کنید.

    نصب در شبکه چندسایتی (Multisite)

    در یک نصب شبکه چندسایتی، ووکامرس مانند اکثر افزونه‌های دیگر عمل می‌کند. هر سایت در شبکه، اگرچه یک پایگاه داده مشترک دارد، اما اطلاعات خود را در جداول جداگانه ذخیره می‌کند. هر فروشگاه یک راه‌اندازی جداگانه است.

    در حالی که می‌توانید افزونه‌هایی مانند ووکامرس و افزونه‌های جانبی آن را در سطح شبکه فعال کنید (از طریق My Sites > Network Admin > Plugins)، اما نمی‌توانید پایگاه داده محصولات، فرآیند تسویه‌حساب و حساب‌های کاربری را بین سایت‌های مختلف در شبکه به اشتراک بگذارید. فقط قالب‌ها و افزونه‌ها در سراسر شبکه سایت‌ها به اشتراک گذاشته می‌شوند.

    آنچه پس از فعال‌سازی اضافه می‌شود

    با فعال شدن ووکامرس، چندین مورد به سایت شما اضافه می‌شود تا به درستی کار کند:

    • آیتم‌های منوی جدید، انواع پست سفارشی و طبقه‌بندی‌ها (taxonomies) برای سفارشات، محصولات و موارد دیگر.
    • صفحات جدید ووکامرس.
    • ویجت‌ها و شورت‌کدهای جدید.
    • نقش‌های کاربری برای مدیران فروشگاه و مشتریان.

    بازگردانی به نسخه قبلی ووکامرس

    همیشه توصیه می‌شود که از آخرین نسخه همه افزونه‌ها و افزونه‌های جانبی در سایت خود به دلایل امنیتی استفاده کنید. علاوه بر این، آخرین نسخه افزونه‌ها همیشه از ویژگی‌ها و قابلیت‌های جدید بهره‌مند است. در نتیجه، این بخش فقط برای راهنمایی ارائه می‌شود.

    برای استفاده از یک نسخه قبلی ووکامرس:

    1. افزونه فعلی را غیرفعال و حذف کنید.
    2. یک نسخه پشتیبان قبلی از پایگاه داده فروشگاه خود را بازیابی کنید.
    3. نسخه قبلی ووکامرس را از بخش Advanced View در صفحه افزونه در سایت وردپرس دانلود کنید.
    4. نسخه قبلی را از طریق افزونه‌ها > افزودن جدید آپلود کنید.
    5. نسخه قبلی ووکامرس را فعال کنید.

    یک هشدار مهم وجود دارد: همانطور که در مرحله دوم ذکر شد، باید بررسی کنید که آیا نسخه پایگاه داده ووکامرس به‌روز شده است یا خیر. در بیشتر موارد، با هر نسخه جدید ووکامرس، پایگاه داده نیز به‌روز می‌شود، بنابراین برای اطمینان از عملکرد صحیح همه چیز، باید پایگاه داده خود را از نسخه قبلی ووکامرس بازیابی کنید.

    به همین دلیل است که به شدت توصیه می‌شود که پشتیبان‌گیری‌های منظمی داشته باشید و از یک محیط آزمایشی (staging) برای تست نسخه‌های جدید نرم‌افزارهای حیاتی مانند ووکامرس استفاده کنید.

    حذف کامل ووکامرس

    هنگام حذف یا برداشتن ووکامرس، دو نکته مهم وجود دارد که باید بدانید:

    • اگر افزونه را از وردپرس غیرفعال و حذف کنید، فقط افزونه و فایل‌های آن حذف می‌شوند. تنظیمات، سفارشات، محصولات، صفحات و غیره شما همچنان در پایگاه داده وجود خواهند داشت.
    • اگر نیاز به حذف تمام داده‌های ووکامرس، از جمله محصولات، داده‌های سفارش و غیره دارید، باید بتوانید فایل wp-config.php سایت را قبل از غیرفعال کردن و حذف افزونه تغییر دهید. برای انجام این کار، باید کد زیر را به فایل wp-config.php اضافه کنید:
      define( 'WC_REMOVE_ALL_DATA', true);
      این کار باعث می‌شود هنگام حذف افزونه، تمام داده‌های مربوط به آن نیز از پایگاه داده پاک شوند. این یک اقدام غیرقابل بازگشت است.

    ویزارد راه‌اندازی گام به گام (Onboarding Wizard)

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

    بلافاصله پس از فعال کردن ووکامرس، به ویزارد راه‌اندازی هدایت می‌شوید. مراحل اینجا به شما امکان می‌دهد جزئیات مهمی در مورد فروشگاه خود وارد کنید، مانند مکان فروشگاه، صنعتی که در آن فعالیت می‌کنید، نوع محصولاتی که می‌فروشید و غیره. پس از اتمام ویزارد، یک چک‌لیست تکمیلی مشاهده خواهید کرد که به شما کمک می‌کند تا مطمئن شوید تمام جنبه‌های فروشگاه شما برای جذب مشتری و دریافت سفارش آماده است.

    مراحل ویزارد راه‌اندازی

    1. خوش‌آمدگویی به ووکامرس: در این مرحله با کلیک روی «Set up my Store» به مرحله بعد می‌روید.
    2. توصیف شما: در این بخش مشخص می‌کنید که در کجای مسیر تجارت خود قرار دارید: آیا تازه شروع کرده‌اید، به صورت آنلاین یا آفلاین فروش دارید، یا در حال راه‌اندازی فروشگاه برای یک مشتری هستید. این اطلاعات به شخصی‌سازی تجربه شما کمک می‌کند.
    3. اطلاعات فروشگاه: در این مرحله اطلاعاتی در مورد فروشگاه خود ارائه می‌دهید، مانند نام فروشگاه، صنعت، و مکان. این اطلاعات برای راه‌اندازی پرداخت‌ها، حمل‌ونقل و مالیات‌ها استفاده می‌شود. اگر مکان فروشگاهی که مشخص کرده‌اید با موقعیت جغرافیایی فعلی شما مطابقت نداشته باشد، ممکن است یک پیام هشدار ظاهر شود. این هشدار برای اطمینان از صحت و هماهنگی بین مکان فیزیکی فروشگاه و فرآیند راه‌اندازی طراحی شده است. با این حال، اگر در حال حاضر در جای دیگری هستید یا فروشگاهی را برای مشتری در مکان دیگری راه‌اندازی می‌کنید، می‌توانید با خیال راحت این هشدار را نادیده بگیرید و با کلیک بر روی «ادامه» فرآیند راه‌اندازی را تکمیل کنید.
    4. ویژگی‌های رایگان: بر اساس اطلاعاتی که در مراحل قبل ارائه دادید، ویژگی‌های تجاری رایگان که می‌توانند برای فروشگاه شما مفید باشند، توصیه می‌شوند. این ویژگی‌ها برای بهبود سفر تجاری شما طراحی شده‌اند و هیچ تعهدی لازم نیست. شما انعطاف‌پذیری دارید که هر یک از این ویژگی‌ها را در هر زمانی از سفر خود حذف کنید.
    5. اتصال به Jetpack: در این مرحله، حساب WordPress.com خود را متصل می‌کنید تا بتوانید از مزایای ارائه شده توسط Jetpack بهره‌مند شوید. این اتصال همچنین می‌تواند افزونه‌های WooPayments و WooCommerce Shipping and Taxes را در صورت استفاده از آنها، فعال کند.
    6. شروع به کار: پس از تکمیل مراحل بالا، سایت شما با ویژگی‌های انتخاب شده راه‌اندازی می‌شود.
    7. رد کردن راه‌اندازی: اگر مراحل اولیه راه‌اندازی را رد کنید، باید مکان فروشگاه خود را برای راه‌اندازی وارد کنید.

    چک‌لیست راه‌اندازی فروشگاه

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

    ۱. سفارشی‌سازی فروشگاه شما

    با انتخاب «Customize your store»، صفحه‌ای را می‌بینید که در آن می‌توانید یک قالب موجود را انتخاب کنید یا با انتخاب Start designing طرح خود را ایجاد کنید. پس از انتخاب «Start designing»، دو اتفاق ممکن است بیفتد:

    • اگر قالب فعال شما از قبل Twenty Twenty-four باشد، انتخاب «Start designing» شما را مستقیما به Pattern Assembler جدید هدایت می‌کند.
    • اگر از قالب دیگری استفاده می‌کنید، یک پیام شما را راهنمایی می‌کند تا به Twenty Twenty-Four تغییر دهید و سپس به Pattern Assembler بروید.

    وقتی وارد شدید، می‌توانید ابتدا یک تور از فرآیند سفارشی‌سازی داشته باشید و اجازه دهید شما را از طریق ویژگی‌های آن راهنمایی کند.

    • استایل (Style):
    • افزودن لوگو: لوگوی سایت خود را اضافه، حذف یا جایگزین کنید تا با برند شما هماهنگ باشد.
    • انتخاب پالت رنگ: از یکی از ۱۸ جفت رنگ از پیش تعریف شده استفاده کنید یا رنگ‌های خود را برای سفارшы‌سازی سایت خود ایجاد کنید.
    • انتخاب فونت: یکی از ۸ جفت فونت را کاوش کنید. این قابلیت توسط کتابخانه فونت وردپرس پشتیبانی می‌شود.
    • چیدمان (Layout):
    • هدر: می‌توانید یک الگوی هدر برای سایت خود انتخاب کنید. ۴ الگوی هدر آماده وجود دارد که شامل عناصر رایجی مانند لوگوی سایت، عنوان سایت، حساب کاربری مشتری و بلوک‌های مینی‌کارت در کنار منوی ناوبری است.
    • صفحه اصلی: می‌توانید صفحه اصلی خود را طراحی کرده و الگویی را انتخاب کنید که به بهترین شکل فروشگاه و محصولات شما را به نمایش بگذارد. این بلوک‌ها و الگوها به راحتی قابل ویرایش هستند تا با تصاویر خود جایگزین شده و به محصولات خودتان لینک شوند.
    • فوتر: در نهایت، می‌توانید از بین ۳ الگوی فوتر برای سایت خود انتخاب کنید. این الگوها اغلب به اضافه کردن لینک‌های اضافی، آیکون‌های اجتماعی و غیره کمک می‌کنند. فوتر نیز به راحتی قابل ویرایش و سفارشی‌سازی بیشتر است.

    پس از انجام تمام انتخاب‌ها، می‌توانید «Save» را برای انتشار سفارشی‌سازی‌های خود انتخاب کنید.

    ۲. افزودن اولین محصول شما

    در این مرحله، شما را در فرآیند افزودن اولین محصولات خود با استفاده از ووکامرس راهنمایی می‌کنیم:

    • افزودن دستی (Add manually): می‌توانید به صورت دستی محصولات خود را اضافه کنید.
    • شروع با یک الگو (Start with a template): می‌توانید با یک الگوی از پیش پر شده از انواع مختلف محصولات شروع کنید: محصولات فیزیکی، دیجیتال و متغیر.
    • وارد کردن (Import): می‌توانید از ابزار داخلی واردات و صادرات CSV محصولات استفاده کنید.
    • مهاجرت (Migrate): می‌توانید از افزونه‌هایی مانند Cart2Cart برای مهاجرت محصولات از پلتفرم‌های دیگر استفاده کنید.
    • وارد کردن داده‌های نمونه (Import Sample Data): اگر آماده اضافه کردن محصول واقعی نیستید، می‌توانید داده‌های نمونه را اضافه کنید تا ببینید یک فروشگاه پر از محصول چگونه به نظر می‌رسد.

    ۳. دریافت پول (با WooPayments)

    در این مرحله، می‌توانید یک یا چند گزینه را برای پذیرش پرداخت‌های آنلاین و آفلاین انتخاب و فعال کنید. تمام افزونه‌های پرداخت رایگان هستند و پس از انتخاب به طور خودکار نصب و فعال می‌شوند.

    در برخی از درگاه‌های پرداخت، مانند WooPayments، Stripe و PayPal، به شما کمک می‌شود تا یک حساب کاربری در ارائه‌دهنده پرداخت ایجاد کنید و فرآیند احراز هویت را در همین مرحله تکمیل کنید تا بتوانید بلافاصله شروع به پذیرش پرداخت کنید.

    بسته به مکان فروشگاه شما و اطلاعاتی که در طول پروفایل فروشگاه ارائه دادید، سناریوهای مختلفی وجود دارد. WooPayments در حال حاضر در بیش از ۱۵ کشور در دسترس است. اگر فروشگاه شما در کشوری غیر از ایالات متحده باشد، گزینه‌های پرداخت دیگری مانند Stripe و PayPal به شما نشان داده می‌شود. همچنین گزینه‌های دیگری بسته به کشور فروشگاه شما نمایش داده می‌شود، مانند: Square، Klarna، Mollie، PayFast، PayU، Razorpay، Mercado Pago و Eway. از طریق این بخش، می‌توانید به راحتی پرداخت‌های آفلاین مانند پرداخت در محل و انتقال مستقیم بانکی را نیز تنظیم کنید.

    ۴. جمع‌آوری مالیات فروش

    شما در این مرحله سه گزینه در دسترس دارید: استفاده از WooCommerce Tax، استفاده از Avalara، تنظیم دستی مالیات‌ها، یا عدم دریافت مالیات فروش.

    می‌توانید مکان فروشگاه خود را تأیید یا اضافه کنید. اگر WooCommerce Tax را انتخاب کرده و Jetpack را نصب کرده باشید، می‌توانید با اتصال فروشگاه خود به WordPress.com، به طور خودکار مالیات‌ها را محاسبه کنید. اگر انتخاب کنید که فروشگاه خود را متصل کنید، به جریان WordPress.com هدایت می‌شوید تا بتوانید یک حساب کاربری ایجاد کنید یا به یک حساب موجود وارد شوید. پس از اتمام این فرآیند، به بخش مالیات هدایت می‌شوید و می‌توانید محاسبه خودکار مالیات را فعال کنید. اگر انتخاب کنید که نرخ‌های مالیات را به صورت دستی تنظیم کنید، به تنظیمات ووکامرس هدایت می‌شوید.

    دسترسی مجدد به ویزارد راه‌اندازی و چک‌لیست

    اگر در هر زمانی بخواهید به ویزارد راه‌اندازی یا چک‌لیست نصب بازگردید، برای مثال اگر به طور تصادفی چک‌لیست را بسته‌اید، می‌توانید از طریق مراحل زیر دوباره به آنها دسترسی پیدا کنید:

    1. به یک صفحه ووکامرس بروید که هنوز تب «راهنما» (Help) را نشان می‌دهد. برای مثال، صفحات WooCommerce > Settings یا WooCommerce > Status کار می‌کنند.
    2. منوی «راهنما» را انتخاب کنید تا باز شود.
    3. در آن منو، «Setup wizard» را در گزینه‌های سمت چپ انتخاب کنید.
    4. با انتخاب دکمه مربوطه، می‌توانید دوباره وارد ویزارد راه‌اندازی شوید یا لیست وظایف (Task list) یا لیست وظایف توسعه‌یافته (Extended task list) را فعال کنید.

    ساختار فنی ووکامرس: انواع پست و طبقه‌بندی‌ها

    برای درک بهتر نحوه کار ووکامرس، باید با دو مفهوم کلیدی در وردپرس آشنا باشیم: انواع پست (Post Types) و طبقه‌بندی‌ها (Taxonomies). این دو، بلوک‌های اصلی سازنده محیط وردپرس هستند و ووکامرس برای سازماندهی و مدیریت محتوای فروشگاه از آنها استفاده می‌کند.

    • نوع پست (Post Type): در وردپرس، انواع پست برای تمایز بین انواع مختلف محتوا استفاده می‌شود. به عنوان مثال، وردپرس به طور پیش‌فرض انواع پست مختلفی برای «نوشته‌ها» (posts)، «برگه‌ها» (pages)، «رسانه‌ها» (media) و غیره دارد.
    • طبقه‌بندی (Taxonomy): طبقه‌بندی روشی برای گروه‌بندی انواع پست است. به عنوان مثال، «دسته‌ها» (categories) و «برچسب‌ها» (tags) دو نوع طبقه‌بندی پیش‌فرض در وردپرس هستند که برای گروه‌بندی نوشته‌ها استفاده می‌شوند.

    انواع پست و طبقه‌بندی‌های اختصاصی ووکامرس

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

    • محصول (Product): product
    • دسته‌بندی‌های محصول (Product categories): product_cat
    • برچسب‌های محصول (Product tags): product_tag
    • تنوع محصول (Product variation): product_variation (این موارد از رابط کاربری پنهان هستند)
    • قابلیت مشاهده محصول (Product visibility): product_visibility
    • سفارش فروشگاه (Shop order) (قدیمی): shop_order
    • وضعیت‌های سفارش (Order statuses): shop_order_status
    • بازپرداخت‌های سفارش (Order refunds): shop_order_refund
    • کوپن فروشگاه (Shop coupon): shop_coupon
    • وب‌هوک فروشگاه (Shop webhook): shop_webhook

    درک این عناصر برای توسعه‌دهندگان و مدیران سایت بسیار مهم است تا بتوانند به طور مؤثر نصب ووکامرس خود را توسعه، سفارشی‌سازی و مدیریت کنند.

    جداول پایگاه داده در ووکامرس

    ووکامرس برای ذخیره اطلاعات مختلف فروشگاه از ترکیبی از جداول اصلی وردپرس و جداول سفارشی خود استفاده می‌کند. این ساختار به ووکامرس اجازه می‌دهد تا داده‌های خود را به صورت سازمان‌یافته مدیریت کند.

    استفاده از جداول اصلی وردپرس

    ووکامرس از جداول موجود وردپرس برای ذخیره برخی از اطلاعات خود بهره می‌برد:

    • wp_options: برای ذخیره تنظیمات فروشگاه و اطلاعاتی مانند آدرس فروشگاه، کشورهایی که فروشگاه به آنها فروش یا ارسال دارد و سایر اطلاعاتی که از بخش WooCommerce > Settings > General پیکربندی می‌کنید، استفاده می‌شود.
    • wp_posts و wp_postmeta: اطلاعات مربوط به محصولات، کوپن‌ها و کلاس‌های حمل‌ونقل در این جداول ذخیره می‌شوند.
    • wp_terms, wp_termmeta, wp_term_taxonomy, wp_term_relationships: برای ذخیره طبقه‌بندی‌هایی مانند برچسب‌ها، دسته‌بندی‌ها و ویژگی‌های محصول، و همچنین کلاس‌های حمل‌ونقل و کلاس‌های مالیاتی استفاده می‌شوند.
    • wp_commentmeta: برای ذخیره نظرات و نقدهای محصولات استفاده می‌شود.
    • wp_users: برخی از اطلاعات مشتریان مانند نام کاربری، آدرس ایمیل و شناسه کاربری آنها در این جدول ذخیره می‌شود.
    • wp_usermeta: اطلاعات اضافی مشتریان مانند نام، آدرس حمل‌ونقل و آدرس صورت‌حساب در این جدول ذخیره می‌شود.

    جداول سفارشی ووکامرس

    علاوه بر جداول بالا، ووکامرس جداول سفارشی خود را نیز ایجاد می‌کند که اطلاعات اضافی را در آنها ذخیره می‌کند:

    • wp_woocommerce_payment_tokens: توکن‌های پرداخت استفاده شده توسط درگاه‌های پرداخت را ذخیره می‌کند. ظاهر این جدول بسته به درگاه‌های پرداختی که در سایت خود استفاده می‌کنید، متفاوت خواهد بود.
    • wp_woocommerce_payment_tokenmeta: اطلاعات پرداخت اضافی مشتریان مانند چهار رقم آخر کارت، نوع کارت و تاریخ انقضا را نشان می‌دهد.
    • wp_woocommerce_sessions: به شما امکان می‌دهد تا جلسات سبد خرید فعال بازدیدکنندگان سایت خود را مشاهده کنید.
    • wp_woocommerce_shipping_zones, wp_woocommerce_shipping_zone_methods, wp_woocommerce_shipping_zone_locations: مناطق حمل‌ونقل پیکربندی شده، مکان‌های این مناطق و روش‌های حمل‌ونقل موجود برای این مناطق را لیست می‌کند.
    • wp_woocommerce_tax_rates و wp_woocommerce_tax_rate_locations: یک نمای کلی از نرخ‌های مالیاتی که پیکربندی شده‌اند و مکان‌هایی که برای آنها پیکربندی شده‌اند، ارائه می‌دهد.
    • wp_woocommerce_api_keys: جایی است که می‌توانید کلیدهای REST API ذخیره شده خود را مشاهده کنید.
    • wp_woocommerce_attribute_taxonomies: یک نمای کلی از تمام ویژگی‌هایی که در سایت ووکامرس شما ذخیره شده‌اند، ارائه می‌دهد.
    • wp_woocommerce_downloadable_product_permissions: رکوردی از اینکه کدام مشتریان برای کدام محصولات دانلودی مجوز دانلود دارند، ذخیره می‌کند.
    • wp_woocommerce_log: گزارش‌ها و داده‌های رویداد از ووکامرس را ذخیره می‌کند.

    ذخیره‌سازی سفارشات با عملکرد بالا (HPOS)

    از ووکامرس نسخه ۸.۲ که در اکتبر ۲۰۲۳ منتشر شد، ویژگی ذخیره‌سازی سفارشات با عملکرد بالا (High-Performance Order Storage – HPOS) به طور رسمی به عنوان پایدار علامت‌گذاری شده و به طور پیش‌فرض برای نصب‌های جدید فعال است.

    فروشگاه‌هایی که با استفاده از HPOS راه‌اندازی می‌شوند، از نوع پست shop_order استفاده نمی‌کنند، زیرا سفارشات در جدول _posts ذخیره نمی‌شوند. اگر فروشگاه شما ابتدا با نسخه‌ای از ووکامرس پایین‌تر از ۸.۲ نصب شده باشد، می‌توانید در مورد سازگاری با نسخه‌های قبلی و مهاجرت به HPOS با عملکرد بهتر، در مستندات HPOS اطلاعات بیشتری کسب کنید.

    HPOS جداول اختصاصی برای داده‌هایی مانند سفارشات، آدرس‌های سفارش و ایندکس‌های اختصاصی معرفی می‌کند. این امر منجر به عملیات خواندن/نوشتن کمتر و جداول شلوغ کمتر می‌شود. این ویژگی به فروشگاه‌های تجارت الکترونیک در هر شکل و اندازه‌ای امکان می‌دهد تا به حداکثر پتانسیل خود مقیاس‌پذیر شوند.

    به جای ذخیره شدن در جداول _posts و _postmeta، HPOS داده‌های سفارش را در چهار جدول سفارش اختصاصی ذخیره می‌کند:

    • _wc_orders
    • _wc_order_addresses
    • _wc_order_operational_data
    • _wc_orders_meta

    برای توسعه‌دهندگان، اطلاعات دقیق در مورد شمای استفاده شده در HPOS در پست وبلاگ توسعه‌دهندگان که شمای پایگاه داده HPOS را شرح می‌دهد، موجود است.

    ایجاد شبکه چندسایتی (Multisite Network)

    شما می‌توانید با استفاده از ویژگی چندسایتی (multisite) یک شبکه از سایت‌ها ایجاد کنید. این مقاله شامل دستورالعمل‌هایی برای ایجاد یک شبکه چندسایتی است. توصیه می‌شود ابتدا مقاله «قبل از ایجاد یک شبکه» را بخوانید، زیرا حاوی اطلاعات مهمی در مورد برنامه‌ریزی شبکه شما است.

    یک شبکه چندسایتی می‌تواند بسیار شبیه به نسخه شخصی شما از WordPress.com باشد. کاربران نهایی شبکه شما می‌توانند سایت‌های خود را در صورت تقاضا ایجاد کنند، درست مانند کاربران نهایی WordPress.com که می‌توانند وبلاگ‌های خود را در صورت تقاضا ایجاد کنند. اگر نیازی به اجازه دادن به کاربران نهایی برای ایجاد سایت‌های خود ندارید، می‌توانید یک شبکه چندسایتی ایجاد کنید که در آن فقط شما، به عنوان مدیر، می‌توانید سایت‌های جدید اضافه کنید.

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

    مرحله ۰: قبل از شروع

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

    لطفا قبل از ادامه، مقاله «قبل از ایجاد یک شبکه» را به طور کامل بخوانید.

    مرحله ۱: آماده‌سازی وردپرس

    سایت وردپرس موجود شما هنگام ایجاد یک شبکه به‌روز می‌شود. مگر اینکه این یک نصب جدید باشد و چیزی برای از دست دادن نداشته باشید، لطفاً از پایگاه داده و فایل‌های خود پشتیبان‌گیری کنید.

    بررسی کنید که پیوندهای یکتای زیبا (Pretty Permalinks) در نصب تکی وردپرس شما کار می‌کنند. همچنین تمام افزونه‌های فعال را غیرفعال کنید. می‌توانید پس از ایجاد شبکه، آنها را دوباره فعال کنید.

    مرحله ۲: اجازه دادن به چندسایتی

    برای فعال کردن آیتم منوی «راه‌اندازی شبکه»، ابتدا باید چندسایتی را در فایل wp-config.php تعریف کنید. فایل wp-config.php را باز کنید و این خط را بالای جایی که نوشته شده /* That's all, stop editing! Happy publishing. */ اضافه کنید.

    /* Multisite */
    define( 'WP_ALLOW_MULTISITE', true );

    برای ادامه باید مرورگر خود را تازه‌سازی کنید.

    مرحله ۳: نصب یک شبکه

    مرحله قبل، آیتم «راه‌اندازی شبکه» (Network Setup) را در منوی «ابزارها» (Tools) شما فعال می‌کند. از آن آیتم منو برای رفتن به صفحه «ایجاد یک شبکه از سایت‌های وردپرس» استفاده کنید.

    آدرس سایت‌ها در شبکه شما
    به شما امکان انتخاب بین زیردامنه‌ها (sub-domains) و زیرپوشه‌ها (sub-directories) داده می‌شود، مگر اینکه تنظیمات موجود انتخاب شما را محدود کند. شما باید یکی از این دو را انتخاب کنید.

    • زیردامنه‌ها: یک شبکه مبتنی بر دامنه که در آن سایت‌های درخواستی از زیردامنه‌ها استفاده می‌کنند (مثلا site1.yourdomain.com).
    • زیرپوشه‌ها: یک شبکه مبتنی بر مسیر که در آن سایت‌های درخواستی از مسیرها استفاده می‌کنند (مثلا yourdomain.com/site1).

    جزئیات شبکه
    این موارد به طور خودکار پر می‌شوند، اما می‌توانید تغییراتی ایجاد کنید:

    • آدرس سرور: دامنه URL که برای دسترسی به نصب وردپرس خود استفاده می‌کنید.
    • عنوان شبکه: عنوان شبکه شما به طور کلی.
    • ایمیل مدیر شبکه: آدرس ایمیل شما به عنوان مدیر کل شبکه.

    جزئیات را دوباره بررسی کرده و دکمه «نصب» (Install) را فشار دهید.

    مرحله ۴: فعال کردن شبکه

    برای فعال کردن شبکه خود، دستورالعمل‌های روی صفحه «ایجاد یک شبکه از سایت‌های وردپرس» را دنبال کنید. دستورالعمل‌هایی که می‌بینید برای نصب شما سفارشی شده‌اند و ممکن است با مثال‌هایی که در اینجا می‌بینید یکسان نباشند.

    از فایل‌های wp-config.php و .htaccess موجود خود پشتیبان‌گیری کنید.

    دو مرحله وجود دارد:

    1. خطوط مشخص شده را به فایل wp-config.php خود اضافه کنید. این خطوط اضافی درست بعد از جایی که خط را در مرحله ۲ اضافه کردید، قرار می‌گیرند.
    2. خطوط مشخص شده را به فایل .htaccess خود اضافه کنید. اگر فایل .htaccess ندارید، آن را در همان دایرکتوری فایل wp-config.php خود ایجاد کنید. اگر از قبل فایل .htaccess دارید، هر خط وردپرس موجود را با این خطوط جدید جایگزین کنید.

    پس از تکمیل این مراحل، با استفاده از لینک ارائه شده دوباره وارد شوید. ممکن است لازم باشد حافظه پنهان و کوکی‌های مرورگر خود را پاک کنید تا بتوانید وارد شوید.

    مرحله ۵: تنظیمات مدیر شبکه

    در سمت چپ نوار ابزار وردپرس شما، «سایت‌های من» (My Sites) اکنون آیتم دوم است. در آنجا، تمام سایت‌های شما لیست شده‌اند، با منوهای پروازی مفید، و همچنین یک آیتم منوی «مدیر شبکه» (Network Admin). در زیر «مدیر شبکه» می‌توانید از آیتم «داشبورد» برای رفتن به صفحه داشبورد شبکه استفاده کنید.

    به صفحه تنظیمات بروید تا گزینه‌های شبکه را پیکربندی کنید و به صفحه سایت‌ها بروید تا سایت‌های خود را مدیریت کنید.

    یکپارچه‌سازی با حساب‌های WordPress.com

    اکنون WooCommerce.com از حساب‌های WordPress.com استفاده می‌کند. شما می‌توانید حساب ووکامرس موجود خود را با چند کلیک ادغام کنید و مستقیماً به مدیریت خریدها، تیکت‌ها و اشتراک‌های خود بازگردید.

    مزایای استفاده از حساب‌های WordPress.com

    • استفاده از حساب WordPress.com شما ورود و تسویه‌حساب را با دسترسی یک کلیک سریع‌تر می‌کند.
    • از امنیت پیشرفته‌ای که به صورت استاندارد با هر حساب WordPress.com ارائه می‌شود، بهره‌مند می‌شوید.
    • دیگر نیازی به به خاطر سپردن نام‌های کاربری و رمزهای عبور مختلف در سرویس‌های ما نخواهید داشت.

    پشتیبانی و راهنمایی

    اگر همچنان سوالی دارید و به کمک نیاز دارید، منابع مختلفی در دسترس شماست. این مستندات مربوط به افزونه رایگان و اصلی ووکامرس است که پشتیبانی آن در انجمن‌های جامعه در WordPress.org ارائه می‌شود. با جستجو در این انجمن، اغلب متوجه می‌شوید که سوال شما قبلاً پرسیده و پاسخ داده شده است.

    • اگر به دنبال گسترش عملکرد اصلی نشان داده شده در اینجا هستید، توصیه می‌شود افزونه‌های موجود در بازار ووکامرس (WooCommerce Marketplace) را بررسی کنید.
    • اگر به پشتیبانی پیشرفته مداوم یا سفارشی‌سازی برای ووکامرس نیاز دارید، می‌توانید یک شریک آژانس ووکامرس (Woo Agency Partner) استخدام کنید.
    • اگر شما یک توسعه‌دهنده هستید که در حال ساخت ادغام یا افزونه خود برای ووکامرس هستید، منابع توسعه‌دهندگان (Developer Resources) را بررسی کنید.

    منابع

  • راهنمای قدم به قدم به‌روزرسانی ووکامرس

    احتمالا اگه یه فروشگاه آنلاین داشته باشی که با وردپرس و ووکامرس کار میکنه، اعلان‌های به روزرسانی یکی از چیزهایی هست که دائم جلوی چشمت میاد. از خود وردپرس گرفته تا قالب‌ها و افزونه‌ها، همیشه یه چیزی برای آپدیت شدن وجود داره. این آپدیت‌ها یه جورایی مثل رگ‌های حیاتی فروشگاه شما هستن. تیم ووکامرس همیشه در حال کار کردنه تا با انتشار آپدیت‌های جدید، ویژگی‌های تازه اضافه کنه، امنیت رو بالاتر ببره، مشکلات رو حل کنه و در کل، فروشگاه شما رو از همیشه بهتر کنه.

    اما سوال اصلی اینجاست: چطوری ووکامرس رو آپدیت کنیم که مشکلی پیش نیاد؟ شاید شما هم مثل کاربری به اسم «mottoworks» در انجمن‌های پشتیبانی وردپرس، با این سوال روبرو شده باشین که چرا دکمه آپدیت برای ووکامرس شما که روی نسخه قدیمی 3.1.2 هست، نمایش داده نمیشه، در حالی که بقیه افزونه‌ها این دکمه رو دارن. این یه نگرانی کاملا واقعیه. کلیک کردن روی دکمه «به‌روزرسانی کن» گاهی میتونه ترسناک باشه، مخصوصا وقتی فروشگاه شما آنلاینه و مشتری‌ها در حال بازدید و خرید هستن. یه آپدیت اشتباه میتونه کل وب‌سایت رو دچار مشکل کنه، از به هم ریختن ظاهر سایت گرفته تا از کار افتادن فرایندهای مهمی مثل اضافه کردن محصول به سبد خرید یا پرداخت. این یعنی مشتری‌های ناراضی و از دست رفتن درآمد.

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

    چرا به روزرسانی ووکامرس انقدر مهمه؟

    شاید از خودتون بپرسین اصلا چرا باید خودم رو درگیر این پروسه کنم؟ آپدیت کردن افزونه ووکامرس به چند دلیل خیلی مهمه و نباید اون رو نادیده گرفت. در واقع، این کار برای سلامت و عملکرد روان کسب و کار آنلاین شما ضروریه.

    • بهبودهای امنیتی: یکی از حیاتی‌ترین دلایل برای آپدیت کردن ووکامرس، برطرف کردن آسیب‌پذیری‌های امنیتیه. مشتری‌ها اطلاعات حساس خودشون رو توی وب‌سایت شما وارد میکنن، پس امنیت باید در بالاترین سطح ممکن باشه. افزونه‌ها و نرم‌افزارهای قدیمی میتونن در برابر حملات هکرها و بدافزارها آسیب‌پذیر باشن و این موضوع میتونه منجر به عواقب فاجعه‌باری برای وب‌سایت شما بشه. توسعه‌دهنده‌های افزونه‌ها همیشه در حال کار برای بهبود امنیت محصولاتشون هستن. با آپدیت کردن ووکامرس، شما آخرین وصله‌های امنیتی رو دریافت میکنین و مطمئن میشین که سایتتون امن و امانه. این کار از سایت شما در برابر اختلالات احتمالی محافظت میکنه، از داده‌های مشتریان شما نگهداری میکنه و جلوی از دست رفتن درآمدی که میتونه ناشی از یه وب‌سایت به خطر افتاده باشه رو میگیره.
    • افزایش عملکرد و سرعت: توسعه‌دهنده‌ها همیشه در تلاش برای بهبود عملکرد ووکامرس هستن. یه آپدیت جدید ممکنه سرعت فروشگاه آنلاین شما رو بیشتر کنه. اونها اغلب افزونه‌هاشون رو برای بهبود سرعت سایت، قابلیت استفاده و عملکرد کلی بهینه میکنن. این به‌روزرسانی‌ها ممکنه شامل رفع باگ، بهینه‌سازی کد و ساده‌سازی فرایندها باشه. سرعت یه فاکتور خیلی مهم در سئو هست و به فروش بیشتر شما هم کمک میکنه. با آپدیت منظم ووکامرس، فروشگاه شما میتونه از این بهبودهای عملکردی بهره‌مند بشه که نتیجه‌اش زمان بارگذاری سریع‌تر، عملکرد بهتر و تجربه کاربری بهتر برای مشتریان شماست.
    • رفع باگ‌ها: با تکامل تکنولوژی، ممکنه ناسازگاری‌هایی به وجود بیاد که روی فروشگاه شما تاثیر بذاره. هر چیزی که سفر خرید مشتری رو مختل کنه، روی فروش تاثیر میذاره. آپدیت‌ها معمولا این باگ‌ها و مشکلات رو برطرف میکنن.
    • ویژگی‌ها و قابلیت‌های جدید: با هر آپدیت، شما به آخرین ویژگی‌ها و قابلیت‌ها دسترسی پیدا میکنین. توسعه‌دهنده‌های ووکامرس به طور مداوم در حال اضافه کردن ویژگی‌های جدید برای بهبود این پلتفرم هستن. این ویژگی‌های جدید میتونن به بهبود عملکرد فروشگاه و تجربه کاربری کمک کنن. مثلا ممکنه شامل ابزارهای پیشرفته مدیریت موجودی، فرایندهای پرداخت ساده‌تر یا حتی بهبودهایی در طراحی و چیدمان پلتفرم باشن.
    • سازگاری: آپدیت‌ها میتونن سازگاری ووکامرس با ابزارهای دیگه‌ای که در فروشگاهتون استفاده میکنین رو بهبود بدن یا اضافه کنن که این همیشه یه نکته مثبته.

    آماده شدن برای به روزرسانی ووکامرس: اقدامات احتیاطی

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

    ۱. پشتیبان‌گیری (بکاپ) از وب‌سایت

    اولین و حیاتی‌ترین قدم در آماده‌سازی برای آپدیت ووکامرس، گرفتن بکاپ کامل از وب‌سایت شماست. این کار فوق‌العاده مهمه چون آپدیت کردن افزونه ووکامرس گاهی اوقات میتونه باعث بروز مشکلاتی بشه که ممکنه منجر به از دست رفتن داده‌ها، از کار افتادن وب‌سایت و مسائل دیگه‌ای بشه که تعمیر اونها زمان‌بر و پرهزینه است. فکر کنین بکاپ مثل بیمه است؛ تا وقتی بهش نیاز پیدا نکنین شاید مهم به نظر نرسه، ولی وقتی بهش احتیاج پیدا میکنین ارزشش غیرقابل محاسبه است.

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

    داده‌های شما کجا ذخیره میشن؟

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

    چطور از این داده‌ها بکاپ بگیریم؟
    • بکاپ خودکار: کارآمدترین و قابل اعتمادترین روش، استفاده از یه سرویس بکاپ خودکار سایت است. یکی از گزینه‌هایی که پیشنهاد میشه Jetpack هست. این سرویس‌ها علاوه بر صرفه‌جویی در زمان شما (چون نیازی به انجام کار دستی ندارین)، مزایای دیگه‌ای هم دارن:
      • فضای ذخیره‌سازی نامحدود.
      • بکاپ‌های منظم و خودکار از کل سایت شما، شامل دیتابیس، تمام محتوا، افزونه‌ها، قالب‌ها، تنظیمات و غیره.
      • بازیابی فوری که به شما اجازه میده با یک کلیک به نسخه قبلی برگردین.
      • دسترسی مستقیم به پشتیبانی تخصصی ۲۴/۷.
    • بکاپ دستی: برای بکاپ‌گیری دستی از فروشگاهتون دو مرحله وجود داره:
      • اول، از دیتابیس خودتون بکاپ بگیرین. راه‌های مختلفی برای این کار وجود داره. میتونین برای گزینه‌های مختلف به WordPress Codex مراجعه کنین. هم گزینه‌های دستی و هم گزینه‌های مبتنی بر افزونه در دسترس هستن.
      • دوم، با استفاده از پروتکل انتقال فایل امن (SFTP)، به پوشه wp-content خودتون برین تا از فایل‌های قالب و افزونه‌هاتون بکاپ بگیرین. اگه هرگونه سفارشی‌سازی روی فایل‌های قالب خودتون انجام دادین، اکیدا توصیه میشه که از اونها بکاپ تهیه کنین.

    ابزارهای بکاپ‌گیری زیادی هم وجود دارن که میتونین ازشون استفاده کنین. افزونه‌هایی مثل UpdraftPlus، WP Migrate DB Pro، BackWPup و WP Database Backup از گزینه‌های محبوب هستن. برای مثال، افزونه UpdraftPlus به شما اجازه میده فورا از کل سایتتون بکاپ بگیرین، بکاپ‌ها رو زمان‌بندی کنین و اونها رو روی کامپیوتر محلی یا در فضای ابری ذخیره کنین.

    ۲. بررسی مشکلات سازگاری

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

    ۳. تست آپدیت روی یک سایت آزمایشی (Staging)

    این یکی از مهم‌ترین توصیه‌هاست: هیچوقت آپدیت‌ها رو مستقیما روی فروشگاه فعال خودتون اعمال نکنین. همیشه ایده خوبیه که آپدیت رو قبل از فعال کردن روی سایت اصلی، روی یه سایت آزمایشی یا «Staging» تست کنین. این کار به شما اجازه میده سازگاری وب‌سایتتون با نسخه‌های جدید ووکامرس رو بررسی کنین، مشکلات احتمالی رو شناسایی کنین و قبل از فعال‌سازی نهایی، تنظیمات لازم رو انجام بدین.

    سایت Staging چیست؟

    سایت Staging یه نسخه کپی از وب‌سایت زنده شماست که جدا از دسترس بازدیدکنندگان سایت شما وجود داره. آپدیت در این محیط روی سایت زنده شما تاثیری نخواهد داشت. این سایت باید همان تنظیمات سرور سایت زنده شما رو داشته باشه.

    چطور سایت Staging بسازیم؟

    بهترین راه برای فهمیدن اینکه آیا نسخه جدید ووکامرس با قالب شما یا هر یک از افزونه‌های دیگه شما کار میکنه یا نه، راه‌اندازی یه سایت Staging هست.

    • ابزارهای میزبان وب: خیلی از شرکت‌های هاستینگ ابزارهایی برای راه‌اندازی محیط Staging ارائه میدن. برای مثال، SiteGround یه ابزار Staging داره که از طریق کنترل پنل Site Tools در دسترسه. شما میتونین به راحتی یه کپی از سایتتون بسازین.
    • افزونه‌های وردپرس: اگه میزبان شما ابزار Staging ارائه نمیده، میتونین از افزونه‌های Staging وردپرس مثل Duplicator یا قابلیت Staging در سرویس‌هایی مثل BlogVault استفاده کنین. این افزونه‌ها به شما اجازه میدن به راحتی یه کپی از سایتتون بسازین.

    ۴. غیرفعال کردن آپدیت‌های خودکار برای ووکامرس

    آپدیت کردن افزونه‌ها اساسا کار خوبیه. با این حال، برای چیزی به اهمیت ووکامرس، توصیه میشه که آپدیت خودکار رو فعال نکنین. به دلایلی که تا الان باید کاملا واضح باشه، شما باید ببینین چه چیزی در آپدیت وجود داره، اون رو تست کنین و مطمئن بشین که قبل از آپدیت روی سایت زنده، فروشگاه شما رو خراب نمیکنه. شما میتونین آپدیت خودکار ووکامرس رو از مسیر پنل مدیریت وردپرس > افزونه‌ها > غیرفعال کردن به‌روزرسانی‌های خودکار غیرفعال کنین.

    ۵. بررسی نسخه‌ها و پیش‌نیازها

    • نسخه ووکامرس و وردپرس: همیشه آخرین نسخه ووکامرس رو نصب داشته باشین. برای بررسی اینکه آیا نسخه‌ای که دارین با آخرین نسخه منتشر شده یکسانه، به مخزن افزونه‌های وردپرس سر بزنین. همچنین، وردپرس هم باید به روز باشه. اگه ووکامرس رو در حالی که نسخه قدیمی وردپرس رو اجرا میکنین آپدیت کنین، فروشگاه شما به احتمال زیاد ناسازگار میشه و شاید از کار بیفته.
    • نسخه PHP: در کنار نسخه وردپرس، باید نسخه PHP سرور خودتون رو هم چک کنین. ووکامرس برای اجرا به نسخه‌های خاصی از PHP نیاز داره (مثلا برای ووکامرس ۵.۰، به PHP نسخه ۷.۰ یا بالاتر نیاز بود). برای پیدا کردن نسخه PHP، به حساب کاربری هاستینگ خودتون وارد بشین. این اطلاعات معمولا زیر بخش cPanel > phpMyAdmin یا PHP Manager پیدا میشه.

    ۶. آپدیت در ساعات کم ترافیک

    زمان‌های خلوت بهترین زمان برای انجام هرگونه تعمیر و نگهداری روی یه فروشگاهه. سرورهای شما خلوت‌تر هستن و منابع بیشتری در اختیار دارن و هر مشکلی که پیش بیاد، کمترین تعداد کاربر رو تحت تاثیر قرار میده. اگه در ساعاتی که بازدیدکننده و فروش کمتری دارین آپدیت کنین، فضای مانور بیشتری برای بهبودی از یه خطای احتمالی خواهید داشت.

    ۷. قرار دادن سایت در حالت تعمیر (Maintenance Mode)

    قبل از شروع پروسه ساخت سایت Staging یا آپدیت، توصیه میشه فروشگاه خودتون رو در حالت تعمیر قرار بدین. شما نمیخواین هیچ مشتری در حین انجام این فرایند خریدی انجام بده. حالت تعمیر میتونه از این کار جلوگیری کنه و در عین حال یه پیام دوستانه در مورد تعمیر و نگهداری سایت به کاربر نشون بده. افزونه‌هایی مثل SeedProd میتونن در این زمینه به شما کمک کنن.

    آزمایش به روزرسانی‌ها: یک فرایند سه مرحله‌ای

    تست کردن آپدیت‌ها شاید در نگاه اول فنی و پیچیده به نظر برسه، ولی نگران نباشین! اگه ترجیح میدین خودتون این کار رو انجام ندین، کار کردن با یه توسعه‌دهنده که با این وظایف آشناست هم یه گزینه است. توصیه میشه از یه Woo Agency Partner کمک بگیرین.

    اصطلاحاتی که باید بدونیم

    اول، بیایین چند اصطلاح رو مرور کنیم. بعضی منابع ممکنه از اصطلاحات دیگه‌ای مثل «محیط توسعه»، «محیط تست» و «محیط زنده» استفاده کنن، ولی ما به سه اصطلاح اصلی پایبند میمونیم:

    • محلی (Local): روی یه کامپیوتر شخصی، که معمولا از طریق وب برای عموم قابل دسترسی نیست.
    • آزمایشی (Staging): جایی که شما آپدیت‌ها رو تست میکنین. این محیط باید دقیقا همان تنظیمات سرور سایت زنده رو تکثیر کنه.
    • تولید (Production): سایت زنده شما، جایی که مردم از اون بازدید و خرید میکنن.

    به خاطر داشته باشین که این یه نمای کلی ساده است و ابزارها و راه‌های زیادی برای انجام این کار وجود داره. هیچ روش مطلقی برای تست آپدیت‌ها وجود نداره، تا زمانی که شما به طور کلی اونها رو روی یه سایت زنده تست نکنین.

    مرحله ۱: محیط محلی (Local)

    بیشتر توسعه‌دهنده‌ها کارشون رو با یه نصب محلی شروع میکنن. این یعنی وردپرس روی کامپیوتر اونها نصب شده و مثل یه سرور عمل میکنه. با استفاده از یه ویرایشگر کد، میشه آپدیت‌ها رو روی کامپیوتر شخصی ساخت، به روز کرد و تست کرد. وقتی روی یه نصب محلی کار میکنین، اکیدا توصیه میشه از کنترل نسخه مثل Git یا SVN استفاده کنین. این کار در صورتی که نیاز به بازگشت به یه نسخه کاری قبلی داشته باشین خیلی مفیده و همچنین میتونه استقرار یه سایت محلی روی Staging و Production رو آسان‌تر کنه.

    مرحله ۲: محیط آزمایشی (Staging)

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

    مرحله ۳: محیط تولید (Production)

    اگه همه چیز در طول تست‌های Staging خوب پیش بره، شما آماده‌این تا سایت زنده (تولید) خودتون رو آپدیت کنین. میتونین این کار رو به هر روشی که ترجیح میدین انجام بدین. یه نکته حرفه‌ای: سایت خودتون رو در حالت تعمیر قرار بدین تا از پرداخت یا تسویه حساب توسط افراد جلوگیری کنین. اگه یه تراکنش در حین آپدیت اتفاق بیفته، ممکنه سفارش‌ها از دست برن.

    بعضی از صاحبان فروشگاه‌ها Git رو برای استقرار از یه شاخه اصلی تنظیم کردن. شما همچنین میتونین روی دکمه «به‌روزرسانی» کلیک کنین اگه این آپدیت‌ها رو تست کردین و مطمئن هستین که برای سایت شما امن هستن. البته، بکاپ‌های شما آماده هستن تا در صورت بروز هر اتفاق غیرمنتظره‌ای فورا بازیابی بشن. به این ترتیب هیچ زمان از کار افتادگی یا درآمد از دست رفته‌ای وجود نخواهد داشت.

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

    راهنمای قدم به قدم به روزرسانی ووکامرس

    فرایند آپدیت کردن ووکامرس نسبتا سرراسته. در ادامه، یه راهنمای دقیق و قدم به قدم ارائه میدیم. این مراحل رو دنبال کنین تا افزونه ووکامرس خودتون رو با موفقیت به روز کنین:

    قدم ۱: دسترسی به داشبورد وردپرس

    اولین قدم دسترسی به داشبورد وردپرس شماست. برای این کار، وارد وب‌سایت خودتون بشین و روی تب «داشبورد» از منوی اصلی کلیک کنین.

    قدم ۲: بررسی برای به روزرسانی‌های ووکامرس روی سایت Staging

    یادتون نره، این مراحل رو اول روی سایت آزمایشی (Staging) انجام میدیم. وقتی به داشبورد وردپرس دسترسی پیدا کردین، به بخش «افزونه‌ها» برین و ووکامرس رو پیدا کنین. اگه نسخه جدیدی از افزونه موجود باشه، یه اعلان به روزرسانی مشاهده خواهید کرد. روی دکمه «هم‌اکنون به‌روزرسانی کن» کلیک کنین تا فرایند شروع بشه. اگه آپدیت هنوز قابل مشاهده نیست، میتونین منتظر بمونین یا صفحه رو رفرش کنین، و وقتی در دسترس باشه ظاهر میشه.

    قدم ۳: به روزرسانی افزونه ووکامرس روی سایت Staging

    با کلیک کردن روی «هم‌اکنون به‌روزرسانی کن» در مرحله قبل، فرایند به روزرسانی افزونه ووکامرس شروع میشه. افزونه شروع به دانلود و نصب نسخه جدید به صورت خودکار میکنه. در طول فرایند نصب، افزونه برای آماده شدن برای آپدیت به طور موقت غیرفعال میشه. پس از اتمام نصب، افزونه به طور خودکار دوباره فعال میشه.

    قدم ۴: به روزرسانی پایگاه داده (Database) ووکامرس

    گاهی اوقات، وقتی به نسخه جدیدی از ووکامرس آپدیت میکنین، یه به روزرسانی برای پایگاه داده هم لازمه. در این صورت، یه اعلان به روزرسانی پایگاه داده ووکامرس نمایش داده میشه. این اعلان دو گزینه داره:

    • به‌روزرسانی پایگاه داده ووکامرس: کلیک کردن روی این دکمه فرایند به روزرسانی دیتابیس شما رو برای تطابق با نسخه افزونه‌ای که نصب یا آپدیت کردین شروع میکنه. دیتابیس محصولات، سفارش‌ها، پست‌ها و صفحات شما رو سازماندهی، شامل و ذخیره میکنه؛ یه فرایند ضروری.
    • اطلاعات بیشتر درباره به‌روزرسانی‌ها: این دکمه شما رو به بهترین شیوه‌ها برای آپدیت ووکامرس، افزونه‌ها و درگاه‌های پرداخت هدایت میکنه.

    مطمئن بشین که قبل از کلیک روی «به‌روزرسانی پایگاه داده ووکامرس» یه بکاپ در جای خودش دارین. وقتی فرایند آپدیت شروع میشه، یه اعلان دیگه نمایش داده میشه. با کلیک روی لینک «مشاهده پیشرفت»، به بخش «اقدامات زمان‌بندی شده» منتقل میشین و اقدامات در حال انتظار آپدیت رو میبینین. پس از اتمام فرایند، یه پیام «به‌روزرسانی پایگاه داده ووکامرس کامل شد» که قابل بستن هست، مشاهده خواهید کرد.

    قدم ۵: تایید و تست کامل آپدیت روی سایت Staging

    وقتی به روزرسانی پایگاه داده کامل شد، لازمه که تایید کنین آپدیت افزونه ووکامرس موفقیت‌آمیز بوده. ساده‌ترین راه برای این کار اینه که در سایت خودتون گشت و گذار کنین و مطمئن بشین همه چیز به درستی کار میکنه.

    یه چک‌لیست کامل برای تست:

    • تست بخش‌های مشتری‌مدار: مناطق مشتری‌مدار سایت خودتون رو تست کنین، کارهای مختلفی مثل خرید کردن، بررسی محصولات و استفاده از صفحه پرداخت رو انجام بدین.
    • صفحات اصلی: صفحات اصلی فروشگاه مثل صفحه اصلی، درباره ما، فروشگاه، قیمت‌گذاری، سبد خرید، پرداخت، تماس و غیره رو بررسی کنین.
    • تست بصری: میتونین از ابزارهایی مثل WP Boom استفاده کنین. این ابزار یه عکس فوری از سایت شما قبل و بعد از آپدیت میگیره و دو نسخه رو مقایسه میکنه تا تغییرات بصری مثل فونت، رنگ یا موقعیت عناصر رو به شما نشون بده.
    • تست عملکرد خودکار: از ابزارهای تست خودکار مثل Ghost Inspector استفاده کنین. این ابزار به شما اجازه میده تست‌های خودکار رو روی وب‌سایتتون اجرا کنین تا مطمئن بشین لینک‌های خراب وجود نداره و تمام عملکردهای فروشگاه به درستی کار میکنن. شما میتونین یه سناریوی تست رو ضبط کنین (مثلا اضافه کردن محصول به سبد خرید و پرداخت) و ابزار اون رو به صورت خودکار اجرا میکنه.
    • سازگاری با مرورگرها: فروشگاه خودتون رو روی مرورگرهای اصلی مثل کروم، فایرفاکس و سافاری بررسی کنین.
    • سازگاری با دستگاه‌ها: فروشگاهتون رو روی دستگاه‌های اصلی مثل دسکتاپ، لپ‌تاپ، موبایل و تبلت چک کنین.

    اگه همه چیز خوب به نظر میرسه، آماده‌این که به مرحله بعد برین.

    قدم ۶: اعمال به روزرسانی ووکامرس از Staging به سایت زنده

    حالا که آپدیت رو روی سایت آزمایشی تست کردیم و از سلامت اون مطمئن شدیم، وقتشه که این تغییرات رو به سایت اصلی منتقل کنیم. برای این کار چند راه وجود داره:

    • گزینه ۱: دستی: این ساده‌ترین گزینه است. از اونجایی که شما ووکامرس رو روی سایت Staging آپدیت کردین و میدونین که مشکلی ایجاد نمیکنه، حالا میتونین با خیال راحت همین آپدیت رو روی سایت زنده هم اجرا کنین. به داشبورد وردپرس سایت اصلی برین و ووکامرس رو آپدیت کنین.
    • گزینه ۲: انتقال از Staging به زنده (Push to Live): خیلی از ارائه‌دهندگان هاستینگ این قابلیت رو دارن. همونطور که ایجاد محیط Staging آسون بود، انتقال تغییرات از Staging به سایت زنده هم به همون اندازه ساده است. برای مثال، در SiteGround گزینه‌ای به نام «Full Deploy» وجود داره که با انتخاب اون، سایت زنده شما با نسخه Staging جایگزین میشه.
    • گزینه ۳: انتقال جزئی (Partial Push): گاهی اوقات شما نمیخواین کل سایت رو منتقل کنین، مخصوصا اگه در حین تست، سفارش‌های جدیدی روی سایت زنده ثبت شده باشه. در این حالت، میتونین فقط فایل‌ها و دیتابیس‌هایی که آپدیت شدن رو منتقل کنین. ابزارهایی مثل UpdraftPlus و WP Migrate DB Pro و همچنین گزینه‌هایی مثل «Custom Deploy» در هاستینگ‌ها این امکان رو فراهم میکنن.

    قدم ۷: تست نهایی سایت زنده و پاک کردن کش

    بله، شما سایت Staging رو بعد از آپدیت تست کردین. ولی همیشه توصیه میشه که بعد از انتقال آپدیت به سایت زنده، دوباره تست‌ها رو روی سایت اصلی هم اجرا کنین.

    • تست مجدد: یه بررسی دستی روی تمام عناصر اصلی فروشگاه مثل سبد خرید، پرداخت و غیره انجام بدین. سفر کامل مشتری رو یک بار دیگه روی سایت زنده طی کنین.
    • پاک کردن کش (Cache): اگه از افزونه کشینگ استفاده میکنین، باید کش وب‌سایت خودتون رو پاک کنین تا مطمئن بشین که فقط محتوای جدید نمایش داده میشه. افزونه‌های کشینگ متحدان بزرگی برای وب‌سایت شما هستن، اما بعد از آپدیت باید کش رو پاک کرد.

    به روزرسانی افزونه‌ها و درگاه‌های پرداخت

    آپدیت کردن فقط به خود ووکامرس محدود نمیشه. افزونه‌های جانبی (Extensions) و درگاه‌های پرداخت هم باید به روز باشن.

    از WooCommerce.com

    برای دریافت آپدیت هر چیزی که از مارکت‌پلیس WooCommerce.com خریدین، به مسیر ووکامرس > افزونه‌ها > اشتراک‌های WooCommerce.com در داشبورد WP Admin فروشگاه خودتون برین و مطمئن بشین که فروشگاه شما به حساب WooCommerce.com شما متصل است. وصل کردن حساب به شما اجازه میده:

    • وضعیت ووکامرس (به علاوه افزونه‌ها، قالب‌ها و درگاه‌های پرداخت) رو مشاهده کنین.
    • این موارد رو با استفاده از گزینه‌های «نصب شده»، «فعال شده»، «دانلود» و «به‌روزرسانی موجود» فیلتر کنین.
    • مشخص کنین کدوم افزونه‌ها، قالب‌ها و درگاه‌های پرداخت با نسخه ووکامرس شما سازگار هستن.

    همیشه موقع آپدیت احتیاط کنین؛ فراموش نکنین که اول روی یه سایت Staging تست کنین.

    از توسعه‌دهندگان شخص ثالث (Third-Party)

    افزونه‌ها، درگاه‌های پرداخت و قالب‌هایی که توسط تیم داخلی ووکامرس توسعه داده و نگهداری نمیشن، از توسعه‌دهندگان شخص ثالث هستن. صاحبان فروشگاه باید برای پشتیبانی در مورد آپدیت‌ها و سازگاری، مستقیما با توسعه‌دهنده شخص ثالث تماس بگیرن.

    مواجهه با مشکلات و خطاهای رایج در به روزرسانی

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

    • تعارض افزونه‌ها (Plugin Conflicts): گاهی اوقات، آپدیت کردن ووکامرس میتونه منجر به مشکلات سازگاری با افزونه‌های دیگه نصب شده روی وب‌سایت شما بشه. برای عیب‌یابی، به طور موقت تمام افزونه‌ها به جز ووکامرس رو غیرفعال کنین و فرایند آپدیت رو دوباره اجرا کنین. پس از تکمیل موفقیت‌آمیز آپدیت، افزونه‌های خودتون رو یکی یکی فعال کنین تا مشخص بشه کدوم افزونه با ووکامرس تداخل داره.
    • سازگاری قالب (Theme Compatibility): آپدیت ووکامرس ممکنه با مشکلات سازگاری قالب همراه باشه، مخصوصا اگه قالب شما قدیمی یا با نسخه آپدیت شده افزونه ناسازگار باشه. یه راه برای عیب‌یابی اینه که به طور موقت به یه قالب پیش‌فرض وردپرس سوییچ کنین. این کار به شما فرصت میده تا تشخیص بدین آیا قالب روی اجرای روان فرایند آپدیت تاثیر میذاره یا نه.
    • الزامات سرور (Server Requirements): سروری که وب‌سایت شما روی اون میزبانی میشه ممکنه حداقل الزامات برای آپدیت‌های ووکامرس رو نداشته باشه. این میتونه منجر به مشکلات عملکردی بشه که فرایند آپدیت رو مختل میکنه. الزامات سرور برای نسخه جدید ووکامرس رو بررسی کنین تا مطمئن بشین با محیط هاستینگ شما سازگاره.
    • خطای «به‌روزرسانی ناموفق بود: امکان کپی فایل وجود نداشت»: این خطا ممکنه موقع آپدیت ظاهر بشه. اول کش وردپرس و مرورگر رو پاک کنین، از سیستم خارج و دوباره وارد بشین. اگه جواب نداد، ممکنه مشکل از ناسازگاری یه افزونه یا قالب باشه.
    • گیر کردن در حالت تعمیر: اگه سایت شما برای مدت طولانی (بیشتر از ۲۰ یا ۳۰ دقیقه) در حالت تعمیر باقی موند، از طریق FTP یا cPanel وارد ریشه سایتتون بشین و فایل .maintenance رو حذف کنین.
    • خطای بحرانی (Critical Error) یا صفحه سفید: این خطا معمولا نشون‌دهنده یه مشکل جدی‌تره. با فعال کردن wp-debug در فایل wp-config.php میتونین پیام خطای دقیق رو ببینین و متوجه بشین مشکل از کجاست.

    اگه با تمام این مراحل هنوز مشکل دارین، به انجمن‌های پشتیبانی وردپرس و ووکامرس سر بزنین. احتمال زیادی وجود داره که افراد دیگه‌ای هم با مشکل مشابه شما روبرو شده باشن و راه‌حلش رو پیدا کرده باشن.

    یک مورد واقعی: مشکل کاربر با نسخه خیلی قدیمی

    در انجمن پشتیبانی وردپرس، کاربری به نام «mottoworks» با نسخه 3.1.2 ووکامرس با این مشکل روبرو شده بود که اعلان یا دکمه آپدیت رو نمیدید. یکی از پاسخ‌دهندگان به نام «Robin» اشاره کرد که این نسخه خیلی قدیمیه و احتمالا آپدیت‌های بیشتری به جز ووکامرس، مثل ارتقا PHP هاست، لازمه. کاربر دیگری به نام «Moses M» توضیح داد که آخرین نسخه ووکامرس در اون زمان 9.6.1 بوده و برای کمک بیشتر، گزارش وضعیت سیستم رو درخواست کرد.

    این مورد نشون میده که آپدیت از نسخه‌های خیلی قدیمی میتونه چالش‌برانگیز باشه. در چنین مواردی، بهتره آپدیت‌ها رو به صورت تدریجی انجام بدین. یعنی به جای پریدن از نسخه ۳ به ۹، ابتدا به نزدیک‌ترین نسخه اصلی بالاتر (مثلا نسخه ۴) آپدیت کنین و این کار رو قدم به قدم ادامه بدین. شما میتونین نسخه‌های مختلف ووکامرس رو از صفحه انتشار اونها در سایت توسعه‌دهندگان ووکامرس دانلود کنین.

    روش‌های جایگزین برای به روزرسانی

    علاوه بر روش استاندارد کلیک روی دکمه آپدیت در داشبورد، راه‌های دیگه‌ای هم برای به روزرسانی ووکامرس وجود داره.

    • استفاده از WP-CLI: برای توسعه‌دهندگان، WP-CLI یه رابط خط فرمان برای کنترل سایت هست. با اتصال به سرور از طریق SSH و اجرای دستور wp plugin update woocommerce و سپس wp wc update، میتونین افزونه و دیتابیس رو به روز کنین.
    • به روزرسانی دستی با FTP: این روش که شامل جایگزینی پوشه افزونه ووکامرس روی سایت با نسخه جدید از طریق FTP است، خیلی توصیه نمیشه. این کار زمان‌بره و در تمام مدت سایت شما از دسترس خارج میشه. همچنین ریسک بروز خطا در حین انتقال فایل‌ها وجود داره.

    پشتیبانی و سوالات

    اگه هنوز سوالی دارین یا به کمک نیاز دارین، مستندات ووکامرس شامل راهنماها، سوالات متداول و اطلاعات دیگه‌ای برای کمک به شماست. برای افزونه رایگان و اصلی ووکامرس، پشتیبانی در انجمن‌های عمومی در WordPress.org ارائه میشه. اگه به دنبال گسترش قابلیت‌های اصلی هستین، افزونه‌های موجود در مارکت‌پلیس ووکامرس رو بررسی کنین. برای پشتیبانی پیشرفته مداوم یا سفارشی‌سازی، میتونین از یه Woo Agency Partner کمک بگیرین. و اگه توسعه‌دهنده‌ای هستین که در حال ساخت ادغام یا افزونه خودتون هستین، منابع توسعه‌دهندگان ووکامرس برای شماست.

    منابع

  • راهنمای انتخاب قالب ووکامرس، آپدیت ۲۰۲۵

    انتخاب یک قالب برای فروشگاه ووکامرس شما یکی از اولین و مهمترین قدم‌هاست. این انتخاب فقط به ظاهر وبسایت شما مربوط نمیشه؛ بلکه روی همه چیز از طراحی و عملکرد گرفته تا کارایی و امنیت تاثیر مستقیم داره. وقتی با هزاران گزینه از منابع مختلف روبرو میشید که هر کدوم کیفیت و کارایی متفاوتی دارن، این سوال پیش میاد که چطور میشه بهترین انتخاب رو برای فروشگاه انجام داد؟

    بازدیدکننده‌ها تقریبا در یک چشم به هم زدن، یک برداشت خوب یا بد از سایت شما پیدا میکنن. همین برداشت اولیه روی تصمیمشون برای اینکه بیشتر در مورد شما بدونن، سوالی بپرسن، محصولی رو ذخیره کنن یا خریدی انجام بدن، تاثیر میذاره. قالب شما چیزی فراتر از طراحیه؛ اون ستون فقرات عملکرد، قابلیت استفاده و حتی نرخ تبدیل فروش شماست. یک قالب با کدنویسی ضعیف میتونه سایت شما رو کند کنه، کاربرها رو سردرگم کنه و باعث بشه فروشگاه شما غیرقابل اعتماد به نظر برسه. از طرف دیگه، یک قالب سریع، واکنش‌گرا و حرفه‌ای، یک تجربه خرید روان ایجاد میکنه که بازدیدکننده‌ها رو تشویق میکنه بیشتر بگردن و با اطمینان خرید کنن.

    اینطوری بهش فکر کنید: قالب شما ویترین فروشگاه آنلاین شماست. ترجیح میدید مشتری‌ها رو به یک فروشگاه تمیز و با مسیریابی آسون دعوت کنید یا یک فروشگاه شلوغ و کند؟ درسته که قالب در طراحی سایت شما نقش داره، اما روی بازاریابی، تبدیل بازدیدکننده به مشتری، زمان بارگذاری، امنیت و خیلی چیزهای دیگه هم موثره. یک وبسایت کند، غیرواکنش‌گرا و سخت برای استفاده، در نتایج جستجو عملکرد ضعیفی خواهد داشت و فروش رو کاهش میده.

    تکامل قالب‌های ووکامرس

    در روزهای اول، قالب‌های ووکامرس بیشتر شبیه یک سایز برای همه بودن: طرح‌بندی‌های ساده، سفارشی‌سازی محدود و پشتیبانی ضعیف از موبایل. اما دنیای تجارت الکترونیک تغییر کرده و قالب‌ها هم همینطور. امروزه بهترین قالب‌های ووکامرس این ویژگی‌ها رو دارن:

    • سرعت برق‌آسا برای عملکرد بهتر و سئو.
    • اولویت با موبایل، چون میدونن بیشتر خریدارها با گوشی‌هاشون وبگردی میکنن.
    • قابلیت سفارشی‌سازی بالا برای هماهنگ شدن با هر ظاهر و هویت برندی.
    • یکپارچگی کامل با ووکامرس، و ارائه ویژگی‌های پیشرفته مثل فیلتر محصولات، سبد خرید ایجکس (AJAX)، نمایش سریع و موارد دیگه.

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

    دنیای قالب‌های وردپرس: کلاسیک در برابر بلاک

    در دنیای وردپرس، دو نوع قالب اصلی وجود داره: کلاسیک و بلاک. درک تفاوت این دو به شما کمک میکنه تصمیم بهتری بگیرید.

    قالب‌های بلاک (Block Themes)

    یک قالب بلاک به شما این امکان رو میده که تمام قالب‌های وبسایت خودتون رو با استفاده از عناصر کشیدنی و رها کردنی به نام «بلاک» سفارشی کنید. اگه از قبل با وردپرس کار کرده باشید، احتمالا با ویرایشگر بلاک که روی صفحات، پست‌ها و انواع محتوای دیگه فعاله، آشنا هستید. قالب‌های بلاک ابزاری به نام ویرایشگر سایت (Site Editor) رو شامل میشن که این مفهوم رو میگیره و اون رو برای همه چیز، از هدرها و فوترها گرفته تا سایدبارها و صفحات محصول و تجربه پرداخت، به کار میبره.

    این برای فروشنده‌ها چه معنایی داره؟ این یعنی شما میتونید واقعا هر جنبه‌ای از فروشگاه آنلاین خودتون رو در سطح جهانی (یعنی در کل وبسایت) بدون نیاز به کار با هیچ کدی، سفارشی کنید.

    کافیه بلاک‌هایی مثل پاراگراف، عنوان، تصویر، ویدیو و فید محصولات رو به محل مورد نظر بکشید و رها کنید و بعد تنظیمات اونها رو ویرایش کنید. همچنین میتونید از ویرایشگر سایت برای ایجاد تغییرات طراحی در سراسر سایت مثل رنگ‌ها، فونت‌ها، فاصله‌گذاری و موارد دیگه استفاده کنید.

    قالب‌های کلاسیک (Classic Themes)

    یک قالب کلاسیک یک قالب سنتی وردپرسه که از ویرایشگر سایت پشتیبانی نمیکنه. یک قالب کلاسیک طرح‌بندی و طراحی ثابت‌تری نسبت به یک قالب بلاک داره و برای ایجاد تغییرات طراحی باید از سفارشی‌ساز وردپرس (WordPress Customizer) استفاده کنید.

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

    خلاصه کلام اینه که قالب‌های بلاک امکان سفارشی‌سازی بسیار بیشتری رو بدون نیاز به کار با کد فراهم میکنن، به خصوص برای قالب‌های سراسری سایت.

    چک لیست انتخاب قالب: ۲۱ نکته کلیدی که باید در نظر بگیرید

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

    ۱. ظاهر و زیبایی‌شناسی

    انتخاب یک قالب مناسب برای ووکامرس طبیعتا تا حد زیادی به سلیقه شخص بستگی داره. همونطور که میگن «زیبایی در چشم بیننده‌ست». اما زیبایی فقط ظاهر نیست. فقط دنبال قالبی نباشید که «خوب به نظر میرسه». قالب باید مناسب کسب‌وکار شما باشه. یک فراری ظاهر فوق‌العاده‌ای داره اما بهترین انتخاب برای رفتن به فروشگاه و برگشتن نیست.

    مخاطبان، برند و مهمتر از همه، محصولاتتون رو در نظر بگیرید. سعی کنید قالبی رو انتخاب کنید که حس میکنید به نوعی با این سه مورد همخوانی داره. مثلا اگه مبلمان مینیمالیستی میفروشید، دنبال قالبی با فضای سفید و تایپوگرافی تمیز باشید. اگه اسباب‌بازی بچگانه میفروشید، دنبال یک قالب بازیگوش با رنگ‌های روشن و زیاد بگردید.

    اگه قالبی که در نظر دارید ادعا میکنه با ووکامرس یکپارچه شده، حتما همه صفحات ووکامرس رو بررسی کنید تا مطمئن بشید. صفحاتی مثل بخش «حساب من»، سبد خرید و صفحه پرداخت رو فراموش نکنید. برای مثال، قالب Botiga یک طراحی مینیمالیستی با ویژگی‌های متعدد تجارت الکترونیک ارائه میده که اون رو به گزینه‌ای عالی برای ساخت فروشگاه‌های آنلاین تبدیل میکنه.

    ۲. سرعت و عملکرد

    زمان پوله و سرعت برای فروشگاه‌های آنلاین حیاتیه. هیچ کاربری از یک وبسایت کند خوشش نمیاد. تاخیر حتی یک ثانیه‌ای میتونه تبدیل بازدیدکننده به مشتری رو تا ۲۰ درصد کاهش بده. سرعت فقط برای تجربه کاربری مهم نیست، بلکه روی رتبه‌بندی سئو و نرخ پرش (Bounce Rate) هم تاثیر میذاره. ۴۷ درصد بازدیدکننده‌ها انتظار دارن یک وبسایت در دو ثانیه یا کمتر بارگذاری بشه. اگه مجبور بشن زیاد منتظر بمونن، به سادگی میرن جای دیگه‌ای خرید میکنن.

    قالب‌هایی رو انتخاب کنید که از انیمیشن‌ها و اسکرولرها به حداقل میزان استفاده میکنن چون اینها باعث مشکلات در بارگذاری صفحه میشن.

    میتونید سرعت وبسایتتون رو با استفاده از یک هاست تجارت الکترونیک مناسب با بهینه‌سازی تصاویر و یک شبکه توزیع محتوا (CDN) افزایش بدید. کمی دستکاری اینجا و اونجا باید بار روی هر صفحه رو کم کنه و در نتیجه وبسایت سریع‌تری به شما بده.

    • چطور تست کنیم؟
      سرعت دموی زنده قالب رو با ابزارهایی مثل GTMetrix یا PageSpeed Insights تست کنید. فقط کافیه URL دمو رو وارد کنید تا یک گزارش کامل از سرعت دریافت کنید. قالب‌هایی مثل Astra و GeneratePress به خاطر سبک بودن و بارگذاری سریع، حتی روی اینترنت‌های کند، شناخته شده هستن.

    ۳. طراحی واکنش‌گرا (Responsive)

    همیشه دنبال قالبی باشید که طراحی واکنش‌گرا داشته باشه. بیش از نیمی از ترافیک وب روی دستگاه‌های موبایل اتفاق میفته و این آمار برای برخی مخاطبان و مکان‌ها حتی میتونه بالاتر باشه. اگه وبسایت شما روی گوشی و تبلت به راحتی قابل استفاده نباشه، بخش بزرگی از مشتریان بالقوه رو از دست میدید.

    مطمئن بشید که برای همه دستگاه‌ها، از گوشی‌های هوشمند دستی گرفته تا کامپیوترهای رومیزی و تلویزیون‌ها بهینه شده باشه. شما میخواید تجربه عالی برای همه مشتریانتون ارائه بدید.

    • چطور تست کنیم؟
      وقتی یک قالب رو بررسی میکنید، دموی زنده اون رو روی گوشی خودتون باز کنید. میتونید راحت مسیرتون رو پیدا کنید؟ چیزی بریده شده یا خیلی کوچیکه که نشه خوند؟ دمو رو از طریق تست موبایل‌پسند گوگل اجرا کنید؛ عملکردش چطوره؟ همچنین میتونید از ابزارهایی مثل BrowserStack برای تست دمو روی اندازه‌های مختلف صفحه، از گوشی‌های موبایل و تبلت‌ها گرفته تا دسکتاپ‌ها، استفاده کنید.
      قالب Bistro یک مثال عالی از طراحی موبایل‌پسنده: عکس‌ها، متن و محصولات به طور خودکار در دستگاه‌های موبایل تغییر اندازه میدن. همچنین یک نوار منوی با دسترسی آسان وجود داره که به حساب کاربری، جستجو و سبد خرید لینک شده و همیشه در دسترس مشتریانه.

    ۴. به‌روزرسانی منظم، پشتیبانی و نگهداری

    هم ووکامرس و هم وردپرس به طور منظم به‌روزرسانی‌هایی رو منتشر میکنن، از جمله چندین نسخه «بزرگ» در سال. این به‌روزرسانی‌ها گاهی اوقات میتونن باعث خطا در قالب‌ها بشن اگه با آخرین نسخه‌های بتا به طور کامل تست نشده باشن. همیشه ارزش داره که تغییرات (changelog) یک قالب رو بررسی کنید تا ببینید توسعه‌دهنده هنوز به طور منظم اون رو نگهداری میکنه یا نه. همچنین قبل از نصب، حتما بپرسید که آیا قالب با آخرین نسخه وردپرس و ووکامرس سازگاره. بیشتر قالب‌ها و پلاگین‌های بزرگ وردپرس هر از گاهی باگ دارن.

    • چطور بررسی کنیم؟
      برای اطمینان از اینکه یک قالب «سازگار با ووکامرس» واقعا با آخرین نسخه ووکامرس سازگاره، میتونید این بررسی سریع رو انجام بدید. به دمو نگاهی بندازید و سورس کد رو ببینید. در سورس کد یک تگ متای generator وجود داره که نسخه فعال ووکامرس رو اعلام میکنه. باید چیزی شبیه به این باشه:
    <!-- WooCommerce Version -->
    <meta name="generator" content="WooCommerce 2.0.13" />

    بررسی کنید که دمو در حال اجرای نسخه فعلی ووکامرس باشه. اگه چند نسخه قدیمی‌تره، بپرسید چرا و اگه خیلی قدیمی‌تره، مراقب باشید. کتابخانه قالب WordPress.org هم تاریخ «آخرین به‌روزرسانی» و هم فیلد «نسخه وردپرس» رو نشون میده که نشانه‌ای از سازگاریه. به دنبال قالب‌هایی باشید که در چند ماه گذشته به‌روزرسانی شده باشن.

    ۵. پشتیبانی مشتری و مستندات خوب

    اگه با باگی مواجه شدید، باید بدونید که به سرعت رفع میشه، یا حداقل در صورتی که باگ رو خودتون ایجاد کرده باشید، راهنمایی میشید که چطور اون رو برطرف کنید.

    اگه در حال خرید یک قالب پرمیوم هستید، سیاست پشتیبانی فروشگاه قالب رو بررسی کنید. اگه از یک قالب از WordPress.org استفاده میکنید، ببینید فروم پشتیبانی چقدر فعاله. یک جامعه و پشتیبانی قوی برای قالب، فاکتورهای حیاتی هستن. به دنبال قالب‌هایی با جامعه فعال، به‌روزرسانی‌های منظم و پشتیبانی پاسخگو باشید.

    یک قالب خوب باید مستندات جامع، آموزش‌ها و یک تیم پشتیبانی داشته باشه که بتونه در حل هر مشکلی به شما کمک کنه. تعامل با قالبی که سیستم پشتیبانی قوی داره، میتونه در زمان و انرژی شما صرفه‌جویی کنه و اطمینان بده که سایت ووکامرس شما به آرامی و کارآمدی اجرا میشه.

    ۶. سفارشی‌سازی، عملکردها و افزونه‌ها

    یک چیز دیگه که شاید بخواید بررسی کنید اینه که چقدر عملکرد سفارشی توسط قالب معرفی شده. بعضی از نویسندگان قالب (نویسندگان ThemeForest برای این کار معروفن) مقادیر زیادی عملکرد رو در قالب‌هاشون بسته‌بندی میکنن. چیزهایی مثل اسلایدرهای سفارشی، شورت‌کدها، ویجت‌ها، مدیران چیدمان و سازنده‌های محتوا، موارد متداولی هستن. هنگام انتخاب چنین قالبی مراقب باشید. اگه بعدا تصمیم به تغییر قالب بگیرید، تمام عملکردهای سفارشی رو که شاید بهشون وابسته شده باشید از دست خواهید داد. این میتونه بسیار مشکل‌ساز باشه اگه عملکرد در کل وبسایت شما تنیده شده باشه. تصور کنید که از یک شورت‌کد [اسلایدر] در تمام صفحات محصول خودتون استفاده میکنید. وقتی قالب رو عوض میکنید، باید تمام محصولاتتون رو بررسی کنید تا نمونه‌های اون شورت‌کد رو حذف کنید.

    توصیه ما اینه که همیشه به دنبال قالب‌های سبک و کم‌حجم باشید و بعد عملکردهای اضافی رو از طریق پلاگین‌ها و افزونه‌ها اضافه کنید. به این ترتیب وقتی قالب رو عوض میکنید، عملکرد باقی میمونه. اینجاست که قالب‌های بلاک واقعا میدرخشن. از اونجایی که عملکرد و طراحی اونها بیشتر بر اساس ویرایشگر سایت و بلاک‌هاست تا کد اختصاصی، میتونید با رشد فروشگاه و تغییر نیازها، خیلی راحت‌تر قالب رو عوض کنید.

    ۷. یکپارچگی عمیق با ووکامرس

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

    قالب‌های مخصوص ووکامرس ممکنه شامل موارد اضافی مثل بلاک‌ها و الگوهای تجارت الکترونیک، قالب‌های صفحه محصول و پرداخت، و طراحی‌های گالری محصول هم باشن. هنگام خوندن توضیحات قالب و بررسی دموی زنده، به دنبال این ویژگی‌ها باشید. برخی قالب‌ها فقط با ووکامرس «کار میکنن»، در حالی که برخی دیگه برای اون ساخته شدن. قالبی رو انتخاب کنید که پشتیبانی عمیقی از ووکامرس داشته باشه. این شامل فیلتر کردن محصول، لیست علاقه‌مندی‌ها، نمایش سریع، نمونه‌های رنگ و اندازه، به‌روزرسانی سبد خرید با ایجکس (AJAX) و موارد دیگه میشه.

    ۸. بدون ویژگی‌های اضافی و سنگین

    بسیاری از قالب‌ها فراتر از طراحی میرن و عملکردهایی مثل صفحه‌سازها، اسلایدرهای سفارشی، ویجت‌ها، پاپ‌آپ‌ها و موارد دیگه رو ارائه میدن. در حالی که اگه به اینها نیاز دارید عالی هستن، اما قالبی رو با ۵۰ ویژگی انتخاب نکنید اگه فقط به پنج تاش نیاز دارید. این میتونه منجر به یک وبسایت غیرضروری سنگین، کند و سخت برای مدیریت بشه.

    برای مثال، قالب Block Shop به جای ویژگی‌های غیرضروری، بر کارایی تاکید داره و تمام گزینه‌های سفارشی‌سازی مورد نیاز شما رو بدون اینکه طاقت‌فرسا باشه، فراهم میکنه.

    ۹. سئوپسند (SEO Equipped)

    «بسازش، و اونها خواهند آمد.» اینها آخرین کلمات معروف هر صاحب فروشگاه آنلاین شکست‌خورده‌ایه. یک شعار خیلی بهتر اینه: «بسازش، اونها رو بهش بیار، و فروش خواهی کرد!» چطور مردم رو به وبسایتتون بیارید؟ این خودش یک مقاله جداگانه‌ست، اما چیزی که میتونیم بهتون بگیم اینه که سئو (بهینه‌سازی برای موتورهای جستجو) نقش مهمی در این فرآیند داره.

    یک قالب خوب باید از شیوه‌های کدنویسی تمیز پیروی کنه، از نشانه‌گذاری اسکیما (schema markup) پشتیبانی کنه و سریع بارگذاری بشه؛ همه اینها به دیده‌شدن در موتورهای جستجو کمک میکنه. یک امتیاز خوب که از ۸۵ درصد در ابزارهای سئوی شخص ثالث مثل GTMetrix و Pingdom فراتر بره، ضروریه. قالب باید این ابزارها رو همراه با تگ‌های H1-H6 هوشمندانه و پشتیبانی از HTTPS داشته باشه تا به دیده‌شدن وبسایت شما کمک کنه. قالب‌ها باید از CDN پشتیبانی کنن و با بسیاری از پلاگین‌های سئو (مثل YOAST SEO) و پلاگین‌های کش (مثل WP Super Cache) سازگار باشن.

    ۱۰. نظرات و امتیازات کاربران

    نظرات اغلب ساده‌ترین راه برای فهمیدن اینکه آیا یک قالب باکیفیته یا نه، هستن. آیا تعدادشون بیشتر از چندتاست؟ مثبتن یا منفی؟ وقت بذارید و نظرات رو بخونید به جای اینکه فقط به میانگین امتیاز ستاره‌ای نگاه کنید. این به شما یک نگاه عمیق به مشکلات بالقوه میده؛ مثل سرعت پایین، پشتیبانی ضعیف، گلیچ‌های عجیب و غریب.

    Theme Forest تنها فروشگاه قالبیه که نظرات کاربران رو نمایش میده، چون به نویسندگان اجازه دستکاری در نظرات رو نمیده. همیشه هنگام بررسی یک قالب، نظرات کاربران رو بخونید. نظرات خوب اگه طولانی و با شور و اشتیاق نوشته شده باشن بهترن. بررسی کنید که آیا ویژگی‌های خوبی که در نظرات لیست شدن برای شما مهمن یا نه. این نشون میده که کاربران به محصول اعتقاد دارن و برای همین تلاش میکنن اون رو به عنوان یک نظر بیان کنن.

    همچنین، بیشتر روی نظرات بد تمرکز کنید و ببینید آیا و چطور نویسندگان به اونها پاسخ دادن. به نظرات کلامی بیشتر از امتیازات ستاره‌ای اعتبار بدید. همیشه قالبی با امتیاز ۴.۶ یا بالاتر انتخاب کنید چون پشتیبانی اونها به سرعت برای حل مشکلات کاربر و محصول پاسخ میده.

    ۱۱. بودجه و قیمت

    قالب‌ها از نظر قیمت میتونن خیلی متفاوت باشن. گزینه‌های رایگان و پرمیوم در دسترس هستن، همراه با قالب‌های «فریمیوم» با پلن‌هایی که شامل ویژگی‌های مختلفی میشن. رایگان لزوما بهتر یا بدتر از پولی نیست؛ همه چیز به ارزش بستگی داره.

    ببینید یک قالب چه ویژگی‌هایی ارائه میده، همراه با سطح پشتیبانی. شاید شما یک مبتدی باشید که از کمک عملی و ابزارهایی که یک قالب پرمیوم خاص ارائه میده قدردانی کنید. شاید کمی تجربه بیشتری داشته باشید و ترجیح بدید با یک قالب رایگان شروع کنید و از پلاگین‌ها و ویرایشگر بلاک برای ایجاد چیزی واقعا سفارشی استفاده کنید.

    قالب‌های رایگانی مثل ShopStudio یا قالب‌های پولی زیادی برای تجارت الکترونیک در وردپرس وجود داره، اما یک قالب پرمیوم که یک راه حل جامع ارائه میده، همیشه توصیه میشه. این به این دلیله که اونها امن‌ترن و به طور منظم بعد از رفع باگ‌ها و حفره‌های امنیتی به‌روزرسانی میشن. قالب‌های پرمیوم همچنین پشتیبانی بهتری نسبت به قالب‌های رایگان دارن.

    ۱۲. ضمانت بازگشت وجه

    تا زمانی که قالب‌ها رو امتحان نکنیم، هیچوقت نمیتونیم از قبل بدونیم که آیا از رابط کاربری خوشمون میاد یا اینکه از پلاگین‌های ضروری پشتیبانی میکنه یا نه. بیشتر قالب‌ها ممکنه اون چیزی رو که انتظار دارید به شما ندن. ممکنه از بیرون یک اثر هنری به نظر برسن و از درون چشمگیر نباشن. بنابراین، بعد از خرید پولتون رو از دست میدید.

    مهمه که بررسی کنید آیا فروشندگان ضمانت بازگشت وجه و یک فرآیند بازپرداخت روان در صورتی که محصول نامناسب تشخیص داده بشه، ارائه میدن یا نه.

    ۱۳. آمادگی برای ترجمه

    اگه هدف شما اینه که وبسایتتون به گروه جمعیتی گسترده‌تر و متنوع‌تری برسه، پس باید به راحتی قابل ترجمه باشه. به دنبال قالب‌های وردپرسی باشید که برای ترجمه مناسب (translation-friendly) هستن.

    ۱۴. سازگاری با افزونه‌ها

    قالب مورد نظر شما باید پلاگین‌هایی رو که برای سایت شما ضروری هستن، داشته باشه و از اونها پشتیبانی کنه. پلاگین‌ها برای افزایش تعامل کاربر و نرخ تبدیل برای کسب‌وکارهای تجارت الکترونیک حیاتی هستن. یکپارچگی کامل قالب‌های ووکامرس با سایر پلاگین‌های تجارت الکترونیک یک قدم حیاتی در طراحی وب هست.

    ۱۵. شبکه‌های اجتماعی

    اگه میخواید بازدیدهای وبسایتتون رو افزایش بدید، قالبی رو انتخاب کنید که امکان یکپارچه‌سازی با رسانه‌های اجتماعی رو فراهم میکنه. چون تبلیغات دهان به دهان از طریق رسانه‌های اجتماعی سریع‌تر پخش میشه و روی مخاطبان شما تاثیر میذاره و در نتیجه بازدیدهای صفحه رو به فروش تبدیل میکنه. مطمئن بشید که قالب شما به کاربران امکان دسترسی آسان از طریق حساب‌های رسانه‌های اجتماعی‌شون رو میده.

    ۱۶. امنیت

    قالب باید امنیت خوبی ارائه بده، به خصوص برای عملکرد سبد خرید. اگرچه ایمنی بیشتر به هاستینگ وب، پلاگین‌ها و SSL بستگی داره، اما قالب‌ها هم تا حدی مسائل امنیتی رو کاهش میدن. Divi یک مثال عالی از یک قالب چند منظوره‌ست که دارای مهر ایمنی (Safe Seal) از Sucuri هست و به کاربرانش حس راحتی میده.

    ۱۷. قابلیت ناوبری (Navigability)

    قالب مورد نظر باید به کاربران اجازه بده به راحتی در صفحات وب تجارت الکترونیک حرکت کنن. بازدیدکننده باید راه خودش رو به طور شهودی از صفحه فرود تا پرداخت پیدا کنه. تجربه کاربری باید روان و بدون شلوغی باشه.

    قالب وردپرس باید ویژگی‌های ناوبری مثل فلش‌ها و هدرهای چسبان (sticky headers) رو داشته باشه تا به کاربر کمک کنه از یک صفحه به صفحه دیگه بره.

    ۱۸. پلاگین‌های ثبت‌نام ایمیل یکپارچه

    اگرچه بازاریابی ایمیلی چیز جدیدی نیست، اما اطلاع‌رسانی به مشتریان با اطلاعات ارزشمند محصول بسیار مهمه. همه ما در مورد پلاگین‌های ایمیلی که فورا یک فرم به صفحه اصلی و ویجت‌های ما اضافه میکنن، میدونیم. اما چیزی که جالب‌تره، یک قالب ایمیل یکپارچه‌ست که طراحی ثابتی رو تضمین میکنه و دردسر استایل‌دهی به فرم رو از بین میبره.

    ۱۹. پیش‌نیازهای سیستم

    قبل از انتخاب یک قالب وردپرس، مطمئن بشید که پیش‌نیازهای سیستم رو برآورده میکنه. قالبی رو انتخاب کنید که با حداقل نسخه PHP و محدودیت حافظه PHP ارائه میشه. به طور متوسط، یک قالب خوب نوشته شده باید به حداقل ۶۴ مگابایت و بهینه ۱۲۸ مگابایت حافظه نیاز داشته باشه. اگه قالب شما به بیش از ۲۵۶ مگابایت نیاز داشته باشه، باعث مشکلات عملکردی میشه.

    ۲۰. سازگاری هدر قالب

    ناسازگاری هدر قالب یک مشکل بزرگ در بسیاری از قالب‌های وردپرسه. هر کسب‌وکاری نیاز به لوگوی متفاوتی داره و یک توسعه‌دهنده باید بتونه ابعاد لوگو رو مطابق با میل شرکت تنظیم کنه.

    بیش از ۵۰ درصد قالب‌ها این ویژگی رو ارائه نمیدن. قالب‌ها با یک اندازه لوگوی پیش‌فرض ارائه میشن که باعث میشه لوگوی شما نامناسب، کج و معوج و تار به نظر برسه. لوگوها کوچک، بزرگ یا باریک به نظر میرسن و ممکنه در بعضی موارد هدر رو بشکنن و وبسایت رو غیرقابل استفاده کنن. پس قبل از خرید قالب با نویسنده اون چک کنید و بعد خرید کنید.

    ۲۱. سبدهای خرید تعاملی

    یک قالب ووکامرس با داشتن ابزار سبد خرید تعاملی از یک قالب استاندارد وردپرس متمایزه. ووکامرس به افراد یا کسب‌وکارها اجازه میده تا فروشگاه‌های خودشون رو با ویژگی‌های گسترده تاسیس کنن.

    یک فروشگاه آنلاین خوب ساخته شده شامل یک سبد خرید تعاملیه که با اطلاع‌رسانی به کاربران در مورد تعداد اقلام اضافه‌شده، موجودی اقلام و قیمت‌هاشون، اونها رو مطلع میکنه.

    بعضی از سایت‌های تجارت الکترونیک استثنایی، ویژگی‌های متحرکی رو برای ترغیب کاربر به اضافه کردن محصولات مورد علاقه با بردن ماوس روی اونها، در نظر میگیرن. سبد خرید همچنین به‌روزرسانی‌های آنی سبد، اعلان‌ها و یادآوری‌هایی رو به مشتریان میده تا به سمت پرداخت برن و فرآیند خرید رو تموم کنن.

    از کجا قالب‌های باکیفیت پیدا کنیم؟

    حالا که میدونید چطور یک قالب عالی برای فروشگاه ووکامرس خودتون انتخاب کنید، چطور یکی پیدا کنید؟ جواب ساده اینه: با خرید کردن، خرید کردن زیاد! و کوتاه نیومدن از ویژگی‌های مهم. از اونجایی که وردپرس متن‌بازه، هزاران گزینه وجود داره! اینجا دو جای خوب برای شروع جستجوی شما وجود داره:

    1. کتابخانه قالب ووکامرس: همه این قالب‌ها تضمین شده که با ووکامرس کار میکنن و توسط تیم پشتیبانی Woo پشتیبانی میشن.
    2. دایرکتوری وردپرس: هر قالب قبل از اضافه شدن به این کتابخانه، یک بررسی کیفیت دقیق رو طی میکنه. برای سریع‌تر کردن جستجوی خودتون، میتونید قالب‌ها رو بر اساس ویژگی‌ها، طرح‌بندی‌ها یا موضوع فیلتر کنید.

    اگه سایت وردپرسی دیگه‌ای دیدید که ازش خوشتون اومد، ابزارهایی مثل WordPress Theme Search وجود دارن که میتونن سعی کنن تشخیص بدن یک سایت از چه قالبی استفاده میکنه.

    همچنین بازارهای پولی مختلفی با قالب‌های عالی و باکیفیت وجود دارن. خیلی مراقب باشید و وقت بذارید تا هر کدوم رو بررسی کنید. فقط از بازارهایی استفاده کنید که الزامات کیفیت و نظرات و دموهای با دسترسی آسان دارن.

    نمونه‌هایی از قالب‌های ووکامرس

    در منابع مختلف، قالب‌های زیادی به عنوان نمونه ذکر شدن. در اینجا لیستی از اونها به همراه برخی ویژگی‌ها و قیمت‌های ذکر شده ارائه میشه تا یک دید کلی داشته باشید.

    قالب‌های برتر و پرکاربرد

    • Astra: یکی از محبوب‌ترین قالب‌ها که در سال ۲۰۲۵ همچنان مورد علاقه کاربران ووکامرسه. این قالب سبک، بسیار قابل تنظیم و ساخته شده برای سرعته. با بیش از ۱ میلیون دانلود و بیش از ۵۷۰۰ نقد پنج ستاره، برای عملکردش تحسین شده. یک برند سبک زندگی که به Astra تغییر کاربری داد، کاهش ۴۰ درصدی نرخ پرش و ۲۰ درصد بارگذاری سریع‌تر صفحه رو گزارش کرد. برای انواع فروشگاه‌های آنلاین، به ویژه اونهایی که سرعت، سئو و انعطاف‌پذیری رو در اولویت قرار میدن، عالیه.
    • Flatsome: این قالب با هدف فروش طراحی شده. پر از ویژگی‌های تجربه کاربریه که به تبدیل بازدیدکننده‌ها به خریدار کمک میکنه. یک فروشگاه محصولات زیبایی با استفاده از Flatsome پس از طراحی مجدد با UX Builder، افزایش ۳۰ درصدی در فروش رو مشاهده کرد. برای فروشگاه‌هایی با موجودی بزرگ و تمرکز بر حداکثرسازی تبدیل‌ها، مثل فروشگاه‌های لباس، الکترونیک و دکوراسیون منزل، مناسبه.
    • WoodMart: یک قالب مدرن و مبتنی بر عملکرده که برای فروشگاه‌های با محصولات زیاد ایده‌آله. ویژگی‌هایی مثل فیلترینگ AJAX، پشتیبانی از ویدیوهای محصول و نمای ۳۶۰ درجه داره. یک فروشگاه الکترونیک با استفاده از WoodMart برای نمایش انواع مختلف محصول، افزایش ۱۵ درصدی در میانگین ارزش سفارش رو گزارش کرد.
    • OceanWP: یک قالب سبک و انعطاف‌پذیره که به طور یکپارچه با ووکامرس کار میکنه. یک فروشگاه صنایع دستی دست‌ساز گزارش داد که طرح‌بندی تمیز و واکنش‌گرایی موبایل OceanWP منجر به رشد ۲۵ درصدی در فروش موبایل در عرض سه ماه شد.
    • Shoptimizer: این قالب حول یک هدف اصلی ساخته شده: تبدیل. سبکه، تمیزه و روی بهبود سرعت فروشگاه، سئو و فرآیند پرداخت تمرکز داره. یک برند تغذیه پس از تغییر به Shoptimizer، کاهش ۱۸ درصدی در رها کردن سبد خرید رو به لطف فرآیند پرداخت ساده و طراحی متمرکز بر سرعتش تجربه کرد.
    • Divi: به خاطر سازنده بصری قدرتمند و انعطاف‌پذیری طراحی فوق‌العاده‌ش شناخته شده. اگرچه مختص ووکامرس نیست، اما حالا با ماژول‌های ووکامرس برای یکپارچگی کامل ارائه میشه. یک فروشگاه تجهیزات عکاسی از Divi برای ساخت یک صفحه اصلی منحصر به فرد و هنری استفاده کرد و افزایش ۱۵ درصدی در زمان تعامل در سایت رو مشاهده کرد.
    • Shop Mania: یک قالب جدیدتر که در سال ۲۰۲۵ سر و صدا کرده. سریع، واکنش‌گرا و ساخته شده برای پشتیبانی از بازارهای چند فروشندگی مثل اونهایی که با MultiVendorX یا Dokan کار میکنن. یک بازار آنلاین گجت برای مدیریت بیش از ۱۰۰ فروشنده فعال به Shop Mania روی آورد. نتیجه؟ ورود روان‌تر فروشندگان، سرعت بیشتر سایت و افزایش حفظ مشتری.

    قالب‌های قابل توجه دیگر

    • XStore: یک قالب همه‌کاره ووکامرس که بیش از ۱۰۰ دموی از پیش ساخته شده برای صنایع مختلف ارائه میده. ایده‌آل برای صاحبان فروشگاهی که انعطاف‌پذیری و طیف وسیعی از گزینه‌های سفارشی‌سازی رو بدون دست زدن به کد میخوان. قیمت: ۳۹ دلار.
    • Brandy: یک قالب مدرن و مینیمال ووکامرس که عمدتا برای فروشگاه‌های مد و برندهای سبک زندگی طراحی شده. تمرکز اون روی زیبایی‌شناسی تمیز و داستان‌سرایی بصری قویه. قیمت: ۴۹ دلار.
    • Angro: یک قالب قدرتمند ووکامرس که برای کسب‌وکارهای عمده‌فروشی و B2B طراحی شده. پر از ویژگی‌هاییه که به کسب‌وکارها کمک میکنه تا موجودی‌های بزرگ و سطوح قیمت‌گذاری رو به طور موثر مدیریت کنن. قیمت: ۲۹ دلار.
    • ShopMe: یک قالب انعطاف‌پذیر ووکامرس که برای تجارت الکترونیک عمومی ساخته شده اما برای موجودی‌های بزرگ و سایت‌های غنی از محصول میدرخشه. قیمت: ۵۹ دلار.
    • Threads: قالبی برای بوتیک‌ها با قالب‌های مخصوص لباس، صفحات فروشگاه و آرشیو زیبا، و طراحی‌های خیره‌کننده محصولات مرتبط. قیمت: ۷۹ دلار سالانه.
    • Artisan: قالبی برای محصولات دست‌ساز با طراحی‌های صفحه متمرکز بر تصویر و قالب‌های محصول ساخته شده برای مجموعه‌ها و گالری‌ها. قیمت: ۷۹ دلار سالانه.
    • iuStore: یک قالب سبک و سریع ووکامرس که با سادگی و قابلیت استفاده در ذهن طراحی شده. برای مبتدیان یا کسب‌وکارهایی که یک فروشگاه آنلاین بدون دردسر میخوان عالیه.
    • Milano: یک قالب ووکامرس که با زیبایی‌شناسی طراحی سطح بالا ساخته شده. جسورانه، پر از تصویر و به خصوص برای خطوط تولید لوکس یا طراحان مناسبه.
    • Zorka: یک قالب زنانه و ظریف ووکامرس که به طور خاص برای برندهای زیبایی، مد و سبک زندگی ساخته شده.
    • Cusio: قیمت ۷۹ دلار سالانه.
    • Wardrobe: قیمت ۷۹ دلار سالانه.
    • Kirana: قیمت ۷۹ دلار سالانه.
    • Organic Goodness: قیمت ۷۹ دلار سالانه و امتیاز ۴.۸ از ۵ ستاره.
    • La Beauté: قیمت ۹۹ دلار سالانه.
    • Glowess: قیمت ۵۹ دلار سالانه.
    • Maudern: قیمت ۷۹ دلار سالانه.
    • CBD Retailer: قیمت ۷۹ دلار سالانه.

    جدول مقایسه قالب‌ها

    این مقایسه کنار هم، ویژگی‌های کلیدی چندین قالب برتر رو نشون میده تا بتونید قالبی رو پیدا کنید که با اهداف کسب‌وکار شما همراستا باشه.

    ویژگیAstraFlatsomeXStoreBrandyAngroShopMe
    سرعت⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐
    سفارشی‌سازی⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐
    پشتیبانی ووکامرس✅ کامل✅ کامل✅ کامل✅ بهینه‌شده✅ متمرکز بر B2B✅ کامل
    آماده برای چند فروشندگی✅ (با افزونه)✅ (با افزونه)✅ داخلی
    بهینه‌سازی سئو⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐
    پشتیبانی مشتری۲۴/۷، پرمیومفروم فعالچت ۲۴/۷مبتنی بر ایمیلمبتنی بر تیکتایمیل و فروم
    قیمترایگان + پرو ($)۵۹ دلار۳۹ دلار۴۹ دلار۲۹ دلار۵۹ دلار

    فرآیند انتخاب و پیاده‌سازی قالب شما

    انتخاب یک قالب ووکامرس فقط یک تصمیم طراحی نیست، بلکه یک گام حیاتی برای کسب‌وکاره که بر عملکرد، قابلیت استفاده و نرخ تبدیل فروشگاه شما تاثیر میذاره. در ادامه نکات کلیدی برای کمک به شما در انتخاب و پیاده‌سازی با اطمینان قالب مناسب برای فروشگاهتون ارائه میشه.

    چطور یک قالب رو قبل از تعهد تست کنیم؟

    قبل از سرمایه‌گذاری زمان یا پول روی یک قالب، همیشه اون رو به طور کامل تست کنید:

    1. از دموی قالب یا سندباکس استفاده کنید: بیشتر قالب‌های پرمیوم یک دموی زنده یا نسخه سندباکس ارائه میدن. فروشگاه دمو رو هم روی دسکتاپ و هم روی موبایل بررسی کنید تا موارد زیر رو ارزیابی کنید:
    2. سرعت
    3. نمایش محصول
    4. فرآیند پرداخت
    5. ناوبری
    6. روی یک سایت آزمایشی (Staging) نصب کنید: اگه قالب نسخه آزمایشی داره یا رایگانه، اون رو روی یک سایت آزمایشی (نه سایت زنده‌تون) نصب کنید و:
    7. داده‌های نمونه رو وارد کنید.
    8. صفحه اصلی رو سفارشی کنید.
    9. محصولات نمونه اضافه کنید.
    10. واکنش‌گرایی رو در دستگاه‌های مختلف تست کنید.
    11. ابزارهای سرعت صفحه: از Google PageSpeed Insights، GTmetrix یا Pingdom برای تست عملکرد قالب استفاده کنید. به دنبال موارد زیر باشید:
    12. زمان بارگذاری سریع
    13. درخواست‌های سرور کم
    14. اسکریپت‌های مسدودکننده حداقلی

    تغییر قالب در یک سایت فعال

    اگه از قبل یک وبسایت دارید و میخواید قالب رو عوض کنید، این مراحل رو برای یک انتقال موفق دنبال کنید:

    • برنامه‌ریزی برای انتقال: اولین قدم شما برنامه‌ریزیه. این شامل پیدا کردن یک قالب جدیده، اما همچنین:
    • ایجاد یک محیط آزمایشی (Staging): یک محیط آزمایشی راه‌اندازی کنید که به شما اجازه میده سایت زنده‌تون رو در حین تغییر و تست قالب، فعال نگه دارید.
    • تعیین مشکلاتی که باید حل کنید: سایتتون رو بررسی کنید و به دنبال عملکردهای وابسته به قالب باشید. این شامل چیزهایی مثل شورت‌کدها، قالب‌ها و صفحه‌سازها میشه. یک لیست تهیه کنید تا بدونید به چه جایگزین‌هایی نیاز دارید.
    • ایجاد یک بکاپ کامل: یک بکاپ کامل از سایتتون بگیرید که در صورت لزوم بتونید اون رو بازیابی کنید.
    • انتقال ویژگی‌های محتوا: روی سایت آزمایشی‌تون، با فعال کردن قالب جدید شروع کنید. بعد، تمام انواع پست‌هایی که دارید (پست‌ها، صفحات، محصولات و غیره) رو بررسی کنید و مطمئن بشید که به شکلی که میخواید به نظر میرسن. هرگونه ویرایش لازم رو با ویرایشگر بلاک، عملکرد داخلی قالب یا CSS سفارشی انجام بدید.
    • انتقال ویژگی‌های سفارشی: اگه بین قالب قبلی و جدید شما تفاوت‌های عملکردی وجود داره، دو گزینه دارید:
      1. خودتون به‌روزرسانی‌های کد رو انجام بدید یا یک توسعه‌دهنده استخدام کنید.
      2. به دنبال پلاگین‌ها یا افزونه‌هایی باشید که عملکرد مشابهی ارائه میدن.
    • تست و انجام تنظیمات نهایی: در نهایت، تست کنید و دوباره تست کنید! تمام صفحات و پست‌های خودتون رو بررسی کنید تا مطمئن بشید روی دستگاه‌های با اندازه‌های مختلف (به خصوص موبایل) خوب به نظر میرسن. تمام عملکردهای سایتتون، مثل فرآیندهای سبد خرید و پرداخت رو تست کنید تا مطمئن بشید بازدیدکننده‌ها میتونن به درستی از فروشگاه شما استفاده کنن. همچنین باید یک تست عملکرد برای بررسی سرعت سایتتون و انجام هرگونه بهبود لازم انجام بدید.

    وقتی همه این کارها انجام شد، آماده‌اید که سایت رو به صورت زنده راه‌اندازی کنید!

    اشتباهات رایج که باید از اونها اجتناب کرد

    از این اشتباهات در حین انتخاب و پیاده‌سازی قالب اجتناب کنید:

    اشتباهچرا مشکل‌سازه؟چه کاری باید انجام داد؟
    انتخاب قالب فقط بر اساس ظاهرممکنه عالی به نظر برسه اما کند یا بهینه نشده باشهسرعت، آمادگی برای سئو و ویژگی‌ها رو ارزیابی کنید
    نادیده گرفتن تست موبایلمنجر به تجربه کاربری ضعیف و نرخ پرش بالا میشههمیشه واکنش‌گرایی موبایل رو تست کنید
    بارگذاری بیش از حد افزونه‌هاسایت رو کند میکنه و ممکنه باعث تداخل بشهفقط از چیزهایی که نیاز دارید استفاده کنید
    نادیده گرفتن ساختار سئوقابلیت کشف در موتورهای جستجو رو محدود میکنهقالب‌هایی با نشانه‌گذاری اسکیما و کد تمیز انتخاب کنید

    سوالات و پشتیبانی

    آیا هنوز سوالی دارید و به کمک نیاز دارید؟

    این مستندات در مورد افزونه رایگان و اصلی ووکامرس (core WooCommerce plugin) است که پشتیبانی برای آن در فروم‌های جامعه ما در WordPress.org ارائه میشه. با جستجو در این فروم، اغلب متوجه میشید که سوال شما قبلا پرسیده شده و به اون پاسخ داده شده.

    منابع

  • گزارش حملات DDoS کلودفلر سه ماهه دوم ۲۰۲۵، جهش حمله‌های هایپروالومتریک

    این مقاله نگاهی عمیق و دقیق به دنیای حمله‌های منع سرویس توزیع شده یا همون DDoS میندازه و بر اساس داده‌هایی که از شبکه بزرگ کلودفلر به دست اومده، چشم انداز این تهدیدها رو در سه ماهه دوم سال ۲۰۲۵ تحلیل میکنه. این مطلب، بیست و دومین نسخه از گزارش‌های تهدید DDoS کلودفلر هست که هر فصل منتشر میشه و اطلاعات جامعی رو در اختیار همه قرار میده. اگه دوست داشتین گزارش‌های قبلی رو هم ببینین، میتونین به سایت www.ddosreport.com سر بزنین. نویسنده‌های این گزارش «عمر یواخیمیک» و «خورخه پاچکو» هستن.

    قبل از اینکه وارد جزئیات فنی و اعداد و ارقام بشیم، لازمه به یک نکته مهم اشاره کنیم. ماه ژوئن شلوغ‌ترین ماه از نظر حمله‌های DDoS در سه ماهه دوم سال ۲۰۲۵ بود. این ماه به تنهایی تقریبا ۳۸ درصد از کل فعالیت‌های ثبت شده رو به خودش اختصاص داد. یکی از موارد قابل توجه در این ماه، حمله به یک خبرگزاری مستقل در اروپای شرقی بود که تحت حفاظت کلودفلر قرار داشت. این خبرگزاری گزارش داد که بعد از پوشش خبری یک راهپیمایی پراید محلی در ماه افتخار دگرباشان جنسی (LGBTQ Pride Month)، هدف حمله قرار گرفته. این اتفاق نشون میده که چطور رویدادهای اجتماعی و فرهنگی میتونن بهانه‌ای برای حمله‌های سایبری بشن.

    نگاهی کلی به یافته‌های کلیدی در مورد حمله‌های DDoS

    حمله‌های DDoS همچنان در حال شکستن رکوردهای قبلی خودشون هستن. این یک روند نگران کننده است که نشون میده حمله کننده‌ها هر روز قوی‌تر و مجهزتر میشن. در سه ماهه دوم سال ۲۰۲۵، کلودفلر به صورت خودکار بزرگترین حمله‌های DDoS گزارش شده در تاریخ رو مسدود کرد. یکی از این حمله‌ها به اوج ۷.۳ ترابیت بر ثانیه (Tbps) و دیگری به ۴.۸ میلیارد بسته بر ثانیه (Bpps) رسید. برای اینکه درک بهتری از این اعداد داشته باشین، تصور کنین که یک حمله با قدرت ۷.۳ ترابیت بر ثانیه، مثل اینه که هزاران فیلم با کیفیت بالا رو در یک لحظه به سمت یک سرور سرازیر کنین. این حجم از ترافیک میتونه هر زیرساخت اینترنتی محافظت نشده‌ای رو در چند ثانیه از کار بندازه.

    در همین دوره، حمله‌های DDoS هایپروالومتریک، یعنی حمله‌هایی با حجم فوق العاده زیاد، به شدت افزایش پیدا کردن. کلودفلر در این سه ماه، بیشتر از ۶۵۰۰ حمله هایپروالومتریک رو مسدود کرد. این یعنی به طور متوسط روزی ۷۱ حمله با این حجم عظیم اتفاق افتاده. این حمله‌ها دیگه یک اتفاق نادر و استثنایی نیستن، بلکه به یک تهدید روزمره و دائمی برای کسب و کارهای آنلاین تبدیل شدن.

    یک نکته جالب دیگه اینه که با وجود اینکه تعداد کل حمله‌های DDoS نسبت به سه ماهه اول سال کاهش پیدا کرده، اما این کاهش به یک دلیل خاص بوده. در سه ماهه اول، یک کمپین حمله گسترده و طولانی علیه شبکه خود کلودفلر و زیرساخت‌های حیاتی اینترنت که توسط این شرکت محافظت میشدن، اتفاق افتاد که آمار رو به شدت بالا برده بود. اگه اون کمپین خاص رو در نظر نگیریم، تعداد حمله‌ها در سه ماهه دوم سال ۲۰۲۵، هنوز هم ۴۴ درصد بیشتر از مدت مشابه در سال ۲۰۲۴ بوده. این یعنی روند کلی همچنان صعودیه. زیرساخت‌های حیاتی هم همچنان تحت فشار شدید قرار دارن. در این سه ماه، بخش «مخابرات، ارائه دهندگان خدمات و اپراتورها» دوباره به صدر جدول صنایعی که بیشترین حمله رو تجربه کردن، برگشت.

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

    برای اینکه بیشتر در مورد حمله‌های DDoS و بقیه تهدیدهای سایبری یاد بگیرین، میتونین به بخش آموزشی سایت کلودفلر (Learning Center) مراجعه کنین. همچنین برای دیدن نسخه تعاملی این گزارش که میتونین جزئیات بیشتری رو در اون ببینین، به سایت «کلودفلر رادار» (Cloudflare Radar) سر بزنین. اونجا یک API رایگان هم برای کسایی که علاقه دارن روندهای اینترنتی رو بررسی کنن، وجود داره. متدولوژی و روش‌هایی که برای تهیه این گزارش‌ها استفاده شده هم در بخش توسعه دهندگان کلودفلر توضیح داده شده.

    آمار و ارقام حمله‌های DDoS به زبان ساده

    در سه ماهه دوم سال ۲۰۲۵، کلودفلر موفق شد ۷.۳ میلیون حمله DDoS رو خنثی کنه. این عدد در مقایسه با ۲۰.۵ میلیون حمله در سه ماهه اول، کاهش قابل توجهی رو نشون میده. اما دلیل این کاهش بزرگ، یک کمپین ۱۸ روزه در سه ماهه اول بود که به تنهایی ۱۳.۵ میلیون حمله رو علیه زیرساخت‌های خود کلودفلر و مشتریانش ایجاد کرده بود. اگه اون اتفاق خاص رو فاکتور بگیریم، روند حمله‌ها همچنان بالاست.

    جالبه بدونین که ما تازه از نیمه سال ۲۰۲۵ عبور کردیم و تا همینجا، کلودفلر ۲۷.۸ میلیون حمله DDoS رو مسدود کرده. این عدد به تنهایی معادل ۱۳۰ درصد کل حمله‌هایی هست که این شرکت در تمام سال ۲۰۲۴ مسدود کرده بود. این مقایسه به خوبی نشون میده که سال ۲۰۲۵ از نظر حجم و تعداد حمله‌های سایبری، سالی بی سابقه بوده و رشد چشمگیری در فعالیت‌های مخرب دیده میشه. این یعنی حمله کننده‌ها به شدت فعال شدن و هر روز روش‌های جدیدی رو برای از کار انداختن سرویس‌های آنلاین امتحان میکنن.

    اگه بخوایم آمار رو کمی دقیق‌تر بررسی کنیم، میبینیم که حمله‌های DDoS در لایه ۳ و ۴ شبکه (L3/4)، که بیشتر شامل حمله‌های حجمی و پروتکلی میشن، نسبت به سه ماهه قبل ۸۱ درصد کاهش داشتن و به ۳.۲ میلیون حمله رسیدن. اما در مقابل، حمله‌های HTTP DDoS، که لایه اپلیکیشن رو هدف میگیرن، ۹ درصد افزایش پیدا کردن و به ۴.۱ میلیون حمله رسیدن. این نشون میده که تمرکز حمله کننده‌ها کمی از حمله‌های حجمی صرف به سمت حمله‌های پیچیده‌تر در لایه اپلیکیشن تغییر کرده.

    با این حال، وقتی این آمار رو با سال قبل مقایسه میکنیم، همچنان اعداد بسیار بالا هستن. تعداد کل حمله‌ها ۴۴ درصد بیشتر از سه ماهه دوم سال ۲۰۲۴ بوده و حمله‌های HTTP DDoS با یک رشد خیره کننده ۱۲۹ درصدی نسبت به سال قبل مواجه شدن. این یعنی کسب و کارها باید برای هر دو نوع حمله، هم حجمی و هم اپلیکیشن، آماده باشن.

    حمله‌های DDoS هایپروالومتریک: تهدیدی که هر روز بزرگتر میشه

    همونطور که قبلا اشاره شد، در سه ماهه دوم سال ۲۰۲۵، کلودفلر بیشتر از ۶۵۰۰ حمله هایپروالومتریک رو مسدود کرد. این یعنی به طور متوسط هر روز ۷۱ حمله فوق العاده سنگین. حمله‌های هایپروالومتریک به حمله‌هایی گفته میشه که در لایه ۳ و ۴ شبکه از مرز ۱ میلیارد بسته بر ثانیه (Bpps) یا ۱ ترابیت بر ثانیه (Tbps) عبور کنن، و یا در لایه HTTP از مرز ۱ میلیون درخواست بر ثانیه (Mrps) فراتر برن.

    اگه بخوایم این آمار رو دقیق‌تر بشکافیم، میبینیم که:

    • تعداد حمله‌های هایپروالومتریکی که از ۱۰۰ میلیون بسته بر ثانیه (pps) فراتر رفتن، نسبت به سه ماهه قبل ۵۹۲ درصد افزایش داشته. این یک جهش فوق العاده بزرگ و نگران کننده است.
    • تعداد حمله‌هایی که از ۱ میلیارد بسته بر ثانیه و ۱ ترابیت بر ثانیه عبور کردن، نسبت به سه ماهه قبل دو برابر شده.
    • تعداد حمله‌های HTTP DDoS که از ۱ میلیون درخواست بر ثانیه (rps) فراتر رفتن، تقریبا ثابت مونده و در مجموع حدود ۲۰ میلیون حمله بوده. این یعنی به طور متوسط هر روز تقریبا ۲۲۰ هزار حمله HTTP با این شدت اتفاق افتاده.

    این آمار نشون میده که نه تنها تعداد حمله‌ها بالاست، بلکه شدت و قدرت اون‌ها هم به شکل بی سابقه‌ای در حال افزایشه. حمله کننده‌ها دارن از ابزارهای قدرتمندتری استفاده میکنن تا بتونن آسیب بیشتری به هدف‌هاشون بزنن.

    چه کسانی پشت این حمله‌ها هستن؟

    یکی از سوال‌های همیشگی اینه که چه افرادی یا گروه‌هایی این حمله‌های DDoS رو انجام میدن. وقتی از مشتریانی که مورد حمله قرار گرفته بودن سوال شد، اکثریت اون‌ها (۷۱ درصد) گفتن که نمیدونن چه کسی به اون‌ها حمله کرده. این موضوع کاملا طبیعیه، چون حمله کننده‌ها معمولا از روش‌هایی مثل جعل IP و استفاده از شبکه‌های بات‌نت برای پنهان کردن هویت خودشون استفاده میکنن.

    اما در بین اون ۲۹ درصدی که ادعا میکردن هویت حمله کننده رو شناسایی کردن، آمار جالبی به دست اومد:

    • ۶۳ درصد از اون‌ها انگشت اتهام رو به سمت رقبای تجاری خودشون نشونه گرفتن. این الگو به خصوص در صنایع رقابتی مثل بازی‌های آنلاین (Gaming)، قمار (Gambling) و ارزهای دیجیتال (Crypto) خیلی شایع بود. در این صنایع، از کار انداختن سایت رقیب میتونه به معنی سود مستقیم برای حمله کننده باشه.
    • ۲۱ درصد معتقد بودن که حمله از طرف عوامل دولتی یا تحت حمایت دولت‌ها انجام شده. این نوع حمله‌ها معمولا اهداف سیاسی دارن و خبرگزاری‌ها، فعالان مدنی یا سازمان‌های دولتی کشورهای دیگه رو هدف میگیرن.
    • ۵ درصد هم گفتن که به طور ناخواسته به خودشون حمله کردن (که بهش میگن self-DDoS). این اتفاق معمولا به خاطر تنظیمات اشتباه در شبکه یا تست‌های امنیتی کنترل نشده رخ میده.
    • ۵ درصد دیگه هم توسط اخاذی کننده‌ها هدف قرار گرفته بودن.
    • و در نهایت، ۵ درصد هم گفتن که حمله از طرف مشتری‌ها یا کاربران ناراضی انجام شده.

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

    حمله‌های DDoS برای اخاذی (Ransom DDoS)

    حمله‌های DDoS برای اخاذی یا همون Ransom DDoS، نوعی از حمله است که در اون حمله کننده قبل یا حین حمله، با قربانی تماس میگیره و در ازای دریافت پول (معمولا به شکل ارز دیجیتال)، قول میده که حمله رو متوقف کنه یا اصلا شروع نکنه.

    در سه ماهه دوم سال ۲۰۲۵، درصد مشتریان کلودفلر که گزارش دادن توسط این نوع حمله‌ها هدف قرار گرفتن یا تهدید شدن، نسبت به سه ماهه قبل ۶۸ درصد افزایش پیدا کرد. این عدد نسبت به مدت مشابه در سال ۲۰۲۴ هم ۶ درصد رشد داشته. این یعنی باج‌گیرهای سایبری دوباره فعال شدن و این روش رو به عنوان یک راه کسب درآمد انتخاب کردن.

    اگه بخوایم این موضوع رو ماه به ماه بررسی کنیم، میبینیم که حمله‌های Ransom DDoS در ماه ژوئن ۲۰۲۵ به اوج خودشون رسیدن. در این ماه، حدود یک سوم از پاسخ دهنده‌ها گزارش دادن که با تهدید یا حمله برای اخاذی مواجه شدن. این افزایش ناگهانی میتونه نشون دهنده فعالیت یک یا چند گروه باج‌گیر جدید در این ماه باشه.

    موقعیت‌های جغرافیایی که بیشترین حمله را دریافت کردند

    در این بخش، ۱۰ موقعیت جغرافیایی که بیشترین حمله DDoS رو تجربه کردن، رتبه بندی شدن. این رتبه بندی در سه ماهه دوم سال ۲۰۲۵ تغییرات قابل توجهی داشته.

    لیست ۱۰ کشور برتر به این صورته:

    1. چین: با دو پله صعود، دوباره به جایگاه اول برگشت.
    2. برزیل: با چهار پله صعود، به رتبه دوم رسید.
    3. آلمان: با دو پله سقوط، در جایگاه سوم قرار گرفت.
    4. هند: با یک پله صعود، به رتبه چهارم رسید.
    5. کره جنوبی: با چهار پله صعود، در جایگاه پنجم قرار گرفت.
    6. ترکیه: با چهار پله سقوط، به رتبه ششم رفت.
    7. هنگ کنگ: با سه پله سقوط، در جایگاه هفتم قرار گرفت.
    8. ویتنام: با یک جهش خیره کننده پانزده پله‌ای، به رتبه هشتم رسید.
    9. روسیه: با یک جهش فوق العاده چهل پله‌ای، به رتبه نهم رسید.
    10. آذربایجان: با یک صعود سی و یک پله‌ای، لیست ده کشور برتر رو تکمیل کرد.

    یک نکته بسیار بسیار مهم در مورد این آمار وجود داره که باید بهش توجه کنین: این موقعیت‌های جغرافیایی بر اساس کشوری که صورتحساب مشتری کلودفلر در اون صادر میشه تعیین شدن، نه اینکه خود اون کشورها مستقیما مورد حمله قرار گرفته باشن. به عبارت ساده‌تر، رتبه بالای یک کشور در این لیست به این معنیه که مشتریان بیشتری از کلودفلر که در اون کشور ثبت نام کردن، هدف حمله ترافیک DDoS قرار گرفتن. این آمار به هیچ وجه به معنی هدف گیری ژئوپلیتیکی مستقیم اون کشورها نیست.

    صنایعی که بیشترین حمله را تجربه کردند

    رتبه بندی صنایعی که بیشترین حمله DDoS رو در سه ماهه دوم سال ۲۰۲۵ تجربه کردن هم تغییرات جالبی داشته. این آمار نشون میده که حمله کننده‌ها تمرکزشون رو روی چه بخش‌هایی گذاشتن.

    لیست ۱۰ صنعت برتر به این صورته:

    1. مخابرات، ارائه دهندگان خدمات و اپراتورها: با یک پله صعود، به جایگاه اول رسید. این صنعت به خاطر نقش حیاتی که در زیرساخت اینترنت داره، همیشه یک هدف جذاب برای حمله کننده‌هاست.
    2. اینترنت: با دو پله صعود، به رتبه دوم رسید. این دسته شامل شرکت‌های ارائه دهنده خدمات وب، پلتفرم‌های آنلاین و… میشه.
    3. فناوری اطلاعات و خدمات: جایگاه خودش رو به عنوان سومین صنعت پرحمله حفظ کرد.
    4. بازی‌های آنلاین (Gaming): با یک پله صعود، به رتبه چهارم رسید. این صنعت به خاطر رقابت شدید و تاثیر مستقیم قطعی سرویس بر درآمد، همیشه هدف حمله‌هاست.
    5. قمار و کازینو (Gambling & Casinos): با چهار پله سقوط، به رتبه پنجم رفت.
    6. بانکداری و خدمات مالی: جایگاه خودش رو در رتبه ششم حفظ کرد.
    7. خرده فروشی (Retail): با یک پله صعود، به رتبه هفتم رسید.
    8. کشاورزی (Agriculture): با یک جهش فوق العاده ۳۸ پله‌ای، به رتبه هشتم رسید. این یک تغییر بسیار عجیب و قابل توجهه که نشون میده دیجیتالی شدن این صنعت، اون رو به یک هدف جدید برای حمله کننده‌ها تبدیل کرده.
    9. نرم افزارهای کامپیوتری: با دو پله صعود، به رتبه نهم رسید.
    10. دولت: با دو پله صعود، لیست ده صنعت پرحمله رو تکمیل کرد.

    منابع اصلی حمله‌های DDoS

    در این بخش، ۱۰ کشوری که بیشترین حجم ترافیک حمله DDoS از اون‌ها سرچشمه گرفته، رتبه بندی شدن. این رتبه بندی هم نسبت به سه ماهه قبل تغییراتی داشته.

    لیست ۱۰ کشور برتر به این صورته:

    1. اندونزی: با یک پله صعود، به جایگاه اول رسید.
    2. سنگاپور: با دو پله صعود، به رتبه دوم رسید.
    3. هنگ کنگ: با دو پله سقوط، در جایگاه سوم قرار گرفت.
    4. آرژانتین: با یک پله سقوط، به عنوان چهارمین منبع بزرگ حمله‌ها شناخته شد.
    5. اوکراین: جایگاه خودش رو به عنوان پنجمین منبع بزرگ حمله‌های DDoS حفظ کرد.
    6. روسیه: با شش پله صعود، به عنوان ششمین منبع بزرگ معرفی شد.
    7. اکوادور: با هفت پله صعود، در رتبه بعدی قرار گرفت.
    8. ویتنام: با یک پله صعود، به عنوان هشتمین منبع بزرگ شناخته شد.
    9. هلند: با چهار پله صعود، به عنوان نهمین منبع بزرگ معرفی شد.
    10. تایلند: با سه پله سقوط، به عنوان دهمین منبع بزرگ حمله‌های DDoS شناخته شد.

    باز هم یک نکته بسیار مهم در مورد این آمار وجود داره: این رتبه بندی «منبع» حمله، به معنی محل واقعی حمله کننده‌ها نیست. این کشورها جایی هستن که نودهای بات‌نت، پراکسی‌ها یا نقاط پایانی VPN در اون‌ها قرار دارن. در حمله‌های لایه ۳ و ۴ که جعل IP (IP spoofing) خیلی رایجه، کلودفلر موقعیت جغرافیایی هر بسته رو بر اساس دیتاسنتری که اولین بار اون رو دریافت و مسدود کرده، ثبت میکنه. به خاطر حضور کلودفلر در بیشتر از ۳۳۰ شهر جهان، این موقعیت یابی دقت بسیار بالایی داره.

    شبکه‌های منبع اصلی حمله‌های DDoS

    یک ASN یا «شماره سیستم خودگردان» (Autonomous System Number)، یک شناسه منحصر به فرده که به یک شبکه یا گروهی از شبکه‌های IP که تحت یک سیاست مسیریابی واحد در اینترنت کار میکنن، اختصاص داده میشه. از این شماره برای تبادل اطلاعات مسیریابی بین سیستم‌ها با استفاده از پروتکل‌هایی مثل BGP استفاده میشه. به زبان ساده‌تر، هر شرکت بزرگ ارائه دهنده اینترنت یا خدمات هاستینگ، یک یا چند ASN مخصوص به خودش رو داره.

    برای اولین بار در حدود یک سال گذشته، شبکه آلمانی Hetzner (AS24940) از جایگاه اول به عنوان بزرگترین منبع حمله‌های HTTP DDoS به جایگاه سوم سقوط کرد. به جای اون، یک شرکت آلمانی دیگه به اسم Drei-K-Tech-GmbH (AS200373) که با نام 3xK Tech هم شناخته میشه، با ۶ پله صعود به جایگاه اول بزرگترین منبع حمله‌های HTTP DDoS رسید. شرکت آمریکایی DigitalOcean (AS14061) هم با یک پله صعود به جایگاه دوم رسید.

    یک نگاه به لیست ۱۰ شبکه برتر (ASN) که منبع حمله‌های HTTP بودن، نکته جالبی رو نشون میده: ۹ تا از ۱۰ شبکه برتر، خدمات ماشین مجازی (VM)، هاستینگ یا خدمات ابری ارائه میدن. این موضوع به وضوح نشون دهنده استفاده رایج از بات‌نت‌های مبتنی بر ماشین مجازی هست. این نوع بات‌نت‌ها، که از سرورهای مجازی قدرتمند در دیتاسنترها تشکیل شدن، تخمین زده میشه که ۵۰۰۰ برابر قوی‌تر از بات‌نت‌های مبتنی بر دستگاه‌های اینترنت اشیا (IoT) مثل دوربین‌های مداربسته یا روترهای خانگی باشن. تنها شبکه‌ای که در این لیست عمدتا یک شرکت مخابراتی/ISP هست و خدمات VM عمومی گسترده‌ای ارائه نمیده، شبکه ChinaNet Backbone (AS4134) هست.

    برای کمک به شرکت‌های هاستینگ، ارائه دهندگان خدمات ابری و هر ارائه دهنده خدمات اینترنتی دیگه برای شناسایی و از کار انداختن حساب‌های کاربری سوءاستفاده‌گری که این حمله‌ها رو انجام میدن، کلودفلر از موقعیت منحصر به فرد خودش استفاده میکنه و یک فید رایگان تهدید بات‌نت DDoS برای ارائه دهندگان خدمات ارائه میده. تا الان بیشتر از ۶۰۰ سازمان در سراسر جهان برای این فید ثبت نام کردن و همکاری‌های خوبی در جامعه اینترنتی برای از کار انداختن نودهای بات‌نت شکل گرفته. این فید به ارائه دهندگان خدمات، لیستی از آدرس‌های IP متخلف در داخل ASN خودشون رو که در حال انجام حمله‌های HTTP DDoS هستن، میده. این سرویس کاملا رایگانه و فقط کافیه یک حساب کاربری رایگان در کلودفلر باز کنین، ASN خودتون رو از طریق PeeringDB تایید کنین و بعد اطلاعات تهدید رو از طریق API دریافت کنین.

    با یک فراخوانی ساده API، ارائه دهندگان خدمات میتونن لیستی از IPهای متخلف در شبکه خودشون رو بگیرن. نمونه پاسخ API به این شکله:

    {
      "result": [
        {
          "cidr": "127.0.0.1/32",
          "date": "2024-05-05T00:00:00Z",
          "offense_count": 10000
        },
        // ... ورودی‌های دیگر ...
      ],
      "success": true,
      "errors": [],
      "messages": []
    }

    این پاسخ به مدیر شبکه میگه که کدوم IP در چه تاریخی چه تعداد درخواست مخرب ارسال کرده تا بتونه حساب کاربری مربوطه رو مسدود کنه.

    بردارهای حمله (Attack Vectors)

    دفاع در برابر بات‌نت‌های DDoS

    در سه ماهه دوم سال ۲۰۲۵، اکثریت حمله‌های HTTP DDoS (یعنی ۷۱ درصد) توسط بات‌نت‌های شناخته شده انجام شدن. شناسایی و مسدودسازی سریع این حمله‌ها به خاطر داشتن یک شبکه عظیم و مشاهده انواع مختلفی از حمله‌ها و بات‌نت‌ها امکان پذیر شده. با استفاده از هوش تهدید در لحظه (real-time threat intelligence)، سیستم‌های کلودفلر میتونن خیلی سریع بات‌نت‌های DDoS رو مجرم تشخیص بدن و این به خنثی سازی موثرتر کمک میکنه. حتی اگه یک بات‌نت DDoS فقط در حین حمله به یک وبسایت یا آدرس IP شناسایی بشه، کل شبکه و پایگاه مشتریان کلودفلر فورا در برابر اون محافظت میشن. این سیستم هوش تهدید در لحظه، خودش رو با بات‌نت‌ها تطبیق میده، حتی وقتی که اون‌ها نودهاشون رو تغییر میدن.

    بردارهای حمله لایه ۳ و ۴ (L3/4)

    در سه ماهه دوم سال ۲۰۲۵، حمله‌های DNS flood بردار اصلی حمله در لایه ۳ و ۴ بودن و تقریبا یک سوم کل حمله‌های L3/4 رو تشکیل میدادن. حمله‌های SYN flood با کاهش از ۳۱ درصد در سه ماهه اول به ۲۷ درصد در سه ماهه دوم، دومین بردار حمله رایج بودن.

    در جایگاه سوم، حمله‌های UDP flood هم رشد قابل توجهی داشتن و از ۹ درصد در سه ماهه اول به ۱۳ درصد در سه ماهه دوم رسیدن. حمله‌های RST flood، که نوع دیگه‌ای از حمله‌های مبتنی بر TCP هستن، با تشکیل ۵ درصد از کل حمله‌های L3/4، چهارمین بردار حمله رایج بودن. در نهایت، حمله‌های SSDP flood با وجود کاهش از ۴.۳ درصد در سه ماهه قبل، با ۳ درصد در جایگاه پنجم قرار گرفتن و باعث شدن حمله‌های قبلا رایج Mirai (که از ۱۸ درصد در سه ماهه اول به فقط ۲ درصد در سه ماهه دوم سقوط کردن) به کلی از لیست پنج بردار برتر خارج بشن.

    جزئیات سه بردار حمله برتر L3/4 DDoS

    در ادامه، جزئیات بیشتری در مورد سه حمله رایج L3/4 DDoS ارائه میشه. همچنین توصیه‌هایی برای سازمان‌ها وجود داره تا از تبدیل شدن به یک عنصر بازتاب و تقویت کننده حمله جلوگیری کنن و همچنین توصیه‌هایی برای دفاع در برابر این حمله‌ها بدون آسیب رسوندن به ترافیک قانونی. مشتریان کلودفلر در برابر این حمله‌ها محافظت میشن.

    حمله DNS Flood
    • نوع: سیل (Flood)
    • چطور کار میکنه: هدف یک حمله DNS flood اینه که یک سرور DNS رو با حجم بالایی از کوئری‌های DNS (چه معتبر، چه تصادفی یا ناقص) غرق کنه تا CPU، حافظه یا پهنای باند اون رو به اتمام برسونه. برخلاف حمله‌های تقویتی، این یک سیل مستقیمه که هدفش کاهش عملکرد یا ایجاد قطعی سرویسه. این حمله‌ها اغلب روی پورت UDP 53 انجام میشن، اما گاهی اوقات روی TCP هم اتفاق میفتن (به خصوص برای مناطق DNS-over-TCP یا DNSSEC).
    • چطور در برابرش دفاع کنیم: از سرویس Cloudflare DNS به عنوان سرور اصلی یا ثانویه، Cloudflare DNS Firewall و یا Cloudflare Magic Transit استفاده کنین تا سیل کوئری‌ها رو قبل از رسیدن به سرور اصلی شما جذب و خنثی کنن. شبکه جهانی کلودفلر در هر ثانیه ده‌ها میلیون کوئری DNS رو با فیلترینگ داخلی DDoS و کش کردن کوئری‌ها مدیریت میکنه و ترافیک ناقص یا بیش از حد رو مسدود میکنه در حالی که به درخواست‌های قانونی پاسخ میده.
    • چطور از آسیب ناخواسته جلوگیری کنیم: از مسدود کردن تمام ترافیک DNS یا غیرفعال کردن پورت UDP 53 خودداری کنین، چون این کار باعث مختل شدن عملکرد عادی DNS میشه. به حفاظت تخصصی DNS کلودفلر مثل سیستم Advanced DNS Protection تکیه کنین و از حفاظت آگاه به DNSSEC برای مدیریت امن حمله‌های کوئری مبتنی بر TCP استفاده کنین.
    حمله SYN Flood
    • نوع: سیل (Flood)
    • چطور کار میکنه: در یک حمله SYN flood، حمله کننده‌ها حجم زیادی از بسته‌های TCP SYN (اغلب با آدرس‌های IP جعلی) ارسال میکنن تا اتصالاتی رو شروع کنن که هرگز تکمیل نمیشن. این کار باعث میشه سیستم هدف با اتصالات نیمه باز باقی بمونه، حافظه و منابع ردیابی اتصال رو مصرف کنه و به طور بالقوه محدودیت‌های سرور رو پر کنه و از اتصال مشتریان واقعی جلوگیری کنه.
    • چطور در برابرش دفاع کنیم: از Cloudflare Magic Transit برای رهگیری و خنثی سازی حمله‌های TCP SYN flood در لبه شبکه استفاده کنین. کلودفلر از تکنیک‌هایی مثل SYN cookies، ردیابی اتصال و تحلیل رفتاری برای تشخیص مشتریان واقعی از منابع جعلی یا مخرب استفاده میکنه و اطمینان میده که اتصالات TCP قانونی با موفقیت تکمیل میشن. استفاده از سرویس‌های CDN/WAF کلودفلر یا Cloudflare Spectrum که هر دو سرویس‌های پراکسی معکوس برای HTTP یا TCP هستن، اساسا تاثیر احتمالی حمله‌های DDoS مبتنی بر TCP رو از بین میبره.
    • چطور از آسیب ناخواسته جلوگیری کنیم: مسدود کردن تمام ترافیک SYN یا اعمال تایم اوت‌های تهاجمی میتونه کاربران واقعی رو مسدود کنه. به جای اون، به سیستم Advanced TCP protection کلودفلر تکیه کنین که از شکل دهی نرخ SYN، تشخیص ناهنجاری و فیلترینگ بسته‌های جعلی برای خنثی سازی حمله‌ها بدون تاثیر بر اتصالات مشتریان واقعی استفاده میکنه.
    حمله UDP DDoS
    • نوع: سیل (Flood)
    • چطور کار میکنه: حجم بالایی از بسته‌های UDP به پورت‌های تصادفی یا مشخصی در آدرس (های) IP هدف ارسال میشه. این حمله ممکنه تلاش کنه لینک اینترنت رو اشباع کنه یا دستگاه‌های میانی شبکه رو با بسته‌هایی بیشتر از ظرفیتشون غرق کنه تا اختلال یا قطعی ایجاد کنه.
    • چطور در برابرش دفاع کنیم: از یک سرویس حفاظت DDoS حجمی مبتنی بر ابر استفاده کنین که بتونه ترافیک حمله رو در لحظه انگشت نگاری کنه، مثل Cloudflare Magic Transit یا Cloudflare Spectrum. روی ترافیک UDP محدودیت نرخ هوشمند اعمال کنین و ترافیک UDP ناخواسته رو به کلی با Magic Firewall حذف کنین.
    • چطور از آسیب ناخواسته جلوگیری کنیم: فیلترینگ تهاجمی ممکنه سرویس‌های قانونی UDP مثل VoIP، ویدئو کنفرانس یا بازی‌های آنلاین رو مختل کنه. آستانه‌ها رو با دقت اعمال کنین.

    تهدیدهای نوظهور

    در میان تهدیدهای نوظهور L3/4 DDoS در سه ماهه دوم سال ۲۰۲۵، حمله Teeworlds flood بیشترین جهش رو داشته. این حمله‌ها نسبت به سه ماهه قبل ۳۸۵ درصد افزایش پیدا کردن. به دنبال اون، حمله RIPv1 flood با ۲۹۶ درصد افزایش در رتبه دوم قرار گرفت. حمله‌های RDP flood با ۱۷۳ درصد و حمله‌های Demon Bot flood با ۱۴۹ درصد افزایش در رتبه‌های بعدی قرار گرفتن. حتی حمله قدیمی VxWorks flood هم با ۷۱ درصد افزایش نسبت به سه ماهه قبل، دوباره به صحنه برگشته. این افزایش‌های چشمگیر نشون میده که حمله کننده‌ها به طور مداوم در حال آزمایش پروتکل‌های کمتر شناخته شده و قدیمی برای فرار از دفاع‌های استاندارد هستن.

    جزئیات تهدیدهای نوظهور برتر

    در ادامه، جزئیات بیشتری در مورد تهدیدهای نوظهور برای سه ماهه دوم سال ۲۰۲۵ ارائه میشه که بیشتر بازیافت بردارهای حمله بسیار قدیمی هستن. مشتریان کلودفلر در برابر این حمله‌ها محافظت میشن.

    حمله Teeworlds DDoS
    • نوع: سیل (Flood)
    • چطور کار میکنه: Teeworlds یک بازی شوتر دو بعدی چند نفره و متن بازه که از یک پروتکل سفارشی مبتنی بر UDP برای گیم پلی در لحظه استفاده میکنه. حمله کننده‌ها سرور بازی هدف رو با بسته‌های UDP جعلی یا بیش از حد که شبیه به اقدامات درون بازی یا تلاش برای اتصال هستن، غرق میکنن. این کار میتونه منابع سرور رو تحت فشار قرار بده و باعث لگ یا قطعی بشه.
    • چطور در برابرش دفاع کنیم: از Cloudflare Spectrum یا Cloudflare Magic Transit برای محافظت از سرورها استفاده کنین. کلودفلر به طور خودکار این نوع حمله‌ها رو با استفاده از انگشت نگاری در لحظه شناسایی و خنثی میکنه و ترافیک حمله رو مسدود میکنه در حالی که به بازیکنان واقعی اجازه عبور میده. Magic Transit همچنین قابلیت فایروال در سطح بسته به نام Magic Firewall رو ارائه میده که میتونه برای ایجاد حفاظت سفارشی استفاده بشه.
    • چطور از آسیب ناخواسته جلوگیری کنیم: هنگام ایجاد قوانین سفارشی، از مسدود کردن یا محدود کردن تهاجمی نرخ پورت UDP 8303 به طور مستقیم خودداری کنین، چون میتونه گیم پلی کلی رو مختل کنه. به جای اون، به سرویس‌های تشخیص و خنثی سازی هوشمند برای جلوگیری از تاثیر بر کاربران قانونی تکیه کنین.
    حمله RIPv1 DDoS
    • نوع: بازتابی + تقویتی (کم)
    • چطور کار میکنه: از پروتکل اطلاعات مسیریابی نسخه ۱ (RIPv1) سوءاستفاده میکنه که یک پروتکل مسیریابی قدیمی و بدون احراز هویته و از UDP/520 استفاده میکنه. حمله کننده‌ها آپدیت‌های مسیریابی جعلی رو برای غرق کردن یا گیج کردن شبکه‌ها ارسال میکنن.
    • چطور از تبدیل شدن به عنصر بازتاب/تقویت جلوگیری کنیم: RIPv1 رو روی روترها غیرفعال کنین. در جاهایی که مسیریابی لازمه، از RIPv2 با احراز هویت استفاده کنین.
    • چطور در برابرش دفاع کنیم: UDP/520 ورودی از شبکه‌های نامعتبر رو مسدود کنین. مراقب آپدیت‌های مسیریابی غیرمنتظره باشین.
    • چطور از آسیب ناخواسته جلوگیری کنیم: RIPv1 عمدتا منسوخ شده؛ غیرفعال کردنش به طور کلی امنه. اگه سیستم‌های قدیمی به اون وابسته هستن، قبل از تغییرات، رفتار مسیریابی رو تایید کنین.
    حمله RDP DDoS
    • نوع: بازتابی + تقویتی
    • چطور کار میکنه: پروتکل دسکتاپ از راه دور (RDP) برای دسترسی از راه دور به سیستم‌های ویندوز استفاده میشه و معمولا روی پورت TCP 3389 کار میکنه. در برخی تنظیمات اشتباه یا قدیمی، RDP میتونه به تلاش‌های اتصال بدون احراز هویت پاسخ بده و این باعث میشه برای بازتاب یا تقویت مورد سوءاستفاده قرار بگیره. حمله کننده‌ها بسته‌های شروع RDP جعلی رو به سرورهای آسیب پذیر ارسال میکنن و باعث میشن اون‌ها به یک قربانی پاسخ بدن و حجم بالایی از ترافیک ناخواسته ایجاد کنن.
    • چطور در برابرش دفاع کنیم: از Cloudflare Magic Transit برای محافظت از زیرساخت شبکه خودتون استفاده کنین. Magic Transit حفاظت DDoS لایه ۳/۴ رو فراهم میکنه و ترافیک RDP جعلی یا ناقص رو قبل از رسیدن به مبدا شما فیلتر میکنه. برای سوءاستفاده‌های لایه اپلیکیشن، Cloudflare Gateway یا Zero Trust Network Access (ZTNA) میتونن به امن کردن دسترسی به دسکتاپ از راه دور پشت تونل‌های احراز هویت شده کمک کنن.
    • چطور از آسیب ناخواسته جلوگیری کنیم: اگه از RDP به طور فعال استفاده میشه، TCP/3389 رو به طور سراسری مسدود نکنین. به جای اون، دسترسی RDP رو به IPهای شناخته شده یا شبکه‌های داخلی محدود کنین، یا از Cloudflare Tunnel با Zero Trust Network Access (ZTNA) استفاده کنین تا به کلی در معرض دید عمومی بودن رو حذف کنین و در عین حال دسترسی امن برای کاربران قانونی رو حفظ کنین.
    حمله DemonBot DDoS
    • نوع: سیل مبتنی بر بات‌نت
    • چطور کار میکنه: DemonBot یک بدافزاره که سیستم‌های مبتنی بر لینوکس، به خصوص دستگاه‌های IoT ناامن رو از طریق پورت‌های باز یا اعتبارنامه‌های ضعیف آلوده میکنه. پس از آلوده شدن، دستگاه‌ها بخشی از یک بات‌نت میشن که میتونه سیل‌های حجمی UDP، TCP و لایه اپلیکیشن راه اندازی کنه. حمله‌ها معمولا توسط سرور فرمان و کنترل (C2) هدایت میشن و میتونن ترافیک حجمی قابل توجهی ایجاد کنن که اغلب خدمات بازی، هاستینگ یا سازمانی رو هدف میگیرن. برای جلوگیری از آلودگی، از نرم افزارهای آنتی ویروس و فیلترینگ دامنه استفاده کنین.
    • چطور در برابرش دفاع کنیم: از Cloudflare Magic Transit برای جذب و فیلتر کردن سیل‌های لایه شبکه در مقیاس بزرگ قبل از رسیدن به زیرساخت شما استفاده کنین. تحلیل ترافیک در لحظه و تشخیص مبتنی بر امضای کلودفلر، ترافیک ناشی از دستگاه‌های آلوده به DemonBot رو خنثی میکنه. برای خدمات لایه اپلیکیشن، حفاظت DDoS کلودفلر و WAF میتونن سیل‌های HTTP هدفمند و سوءاستفاده از اتصال رو خنثی کنن.
    • چطور از آسیب ناخواسته جلوگیری کنیم: به جای مسدود کردن گسترده انواع ترافیک یا پورت‌ها، به خنثی سازی تطبیقی کلودفلر برای تشخیص بین کاربران قانونی و ترافیک بات‌نت تکیه کنین. این رو با فیلترینگ اعتبار IP، مسدودسازی جغرافیایی و محدودیت نرخ ترکیب کنین تا هشدارهای کاذب رو کاهش بدین و در دسترس بودن سرویس رو حفظ کنین.
    حمله VxWorks Flood DDoS
    • نوع: سیل (مبتنی بر IoT)
    • چطور کار میکنه: VxWorks یک سیستم عامل در لحظه (RTOS) هست که در میلیون‌ها دستگاه تعبیه شده و IoT (مثل روترها، کنترلرهای صنعتی) استفاده میشه. دستگاه‌هایی که نسخه‌های قدیمی یا با تنظیمات اشتباه VxWorks رو اجرا میکنن، میتونن به خطر بیفتن و برای راه اندازی حمله‌های DDoS استفاده بشن. پس از آلوده شدن (اغلب از طریق اکسپلویت‌های عمومی یا اعتبارنامه‌های ضعیف)، اون‌ها حجم بالایی از ترافیک UDP، TCP یا ICMP رو برای غرق کردن اهداف ارسال میکنن، شبیه به بات‌نت‌های سنتی IoT.
    • چطور در برابرش دفاع کنیم: از Cloudflare Magic Transit برای مسدود کردن ترافیک حجمی در لبه شبکه استفاده کنین. کلودفلر از انگشت نگاری در لحظه و روش‌های اکتشافی اختصاصی برای شناسایی ترافیک از دستگاه‌های VxWorks به خطر افتاده و خنثی سازی اون در لحظه استفاده میکنه. برای خدمات اپلیکیشن، خنثی سازی DDoS کلودفلر و سرویس‌های Gateway حفاظت بیشتری در برابر سوءاستفاده در سطح پروتکل فراهم میکنن.
    • چطور از آسیب ناخواسته جلوگیری کنیم: از مسدود کردن بیش از حد ترافیک UDP یا ICMP خودداری کنین، چون ممکنه خدمات تشخیصی قانونی یا خدمات در لحظه رو مختل کنه. به جای اون، از فیلترینگ هوشمند، محدودیت نرخ و ابزارهای اعتبار جغرافیایی/IP کلودفلر برای خنثی سازی امن حمله‌ها و در عین حال جلوگیری از تاثیر بر ترافیک قانونی استفاده کنین.

    اندازه و مدت زمان حمله

    بیشتر حمله‌های DDoS کوچک و کوتاه هستن. در سه ماهه دوم سال ۲۰۲۵، ۹۴ درصد از حمله‌های L3/4 DDoS از ۵۰۰ مگابیت بر ثانیه فراتر نرفتن. به طور مشابه، حدود ۸۵ درصد از حمله‌های L3/4 DDoS از ۵۰ هزار بسته بر ثانیه فراتر نرفتن. اکثریت حمله‌های HTTP DDoS هم کوچک هستن، ۶۵ درصد زیر ۵۰ هزار درخواست بر ثانیه باقی میمونن. اما «کوچک» یک اصطلاح نسبیه.

    یک سرور مدرن متوسط معمولا به یک ماشین فیزیکی یا مجازی همه منظوره با حدود ۴ تا ۸ هسته CPU (مثلا Intel Xeon Silver)، ۱۶ تا ۶۴ گیگابایت رم و یک کارت شبکه ۱ گیگابیت بر ثانیه اشاره داره که یک سیستم عامل لینوکس مثل اوبونتو یا CentOS با نرم افزاری مثل NGINX رو اجرا میکنه. این تنظیمات میتونن حدود ۱۰۰ هزار تا ۵۰۰ هزار بسته بر ثانیه، تا حدود ۹۴۰ مگابیت بر ثانیه توان عملیاتی و حدود ۱۰ هزار تا ۱۰۰ هزار درخواست بر ثانیه برای محتوای استاتیک یا ۵۰۰ تا ۱۰۰۰ درخواست بر ثانیه برای اپلیکیشن‌های دینامیک متصل به پایگاه داده رو مدیریت کنن، که البته به تنظیمات و بار کاری بستگی داره.

    حالا فرض کنین این سرور توسط یک سرویس حفاظت DDoS ابری محافظت نمیشه. اگه در زمان اوج ترافیک، توسط یکی از همین حمله‌های DDoS «کوچک» هدف قرار بگیره، به احتمال خیلی زیاد سرور نمیتونه از پسش بربیاد. حتی حمله‌های DDoS «کوچک» هم میتونن تاثیر قابل توجهی روی سرورهای محافظت نشده داشته باشن.

    در حالی که اکثریت حمله‌های DDoS کوچک هستن، حمله‌های هایپروالومتریک دارن از نظر اندازه و فرکانس افزایش پیدا میکنن. ۶ تا از هر ۱۰۰ حمله HTTP DDoS از ۱ میلیون درخواست بر ثانیه فراتر میرن و ۵ تا از هر ۱۰ هزار حمله L3/4 DDoS از ۱ ترابیت بر ثانیه فراتر میرن که این یک افزایش ۱۱۵۰ درصدی نسبت به سه ماهه قبله.

    بیشتر حمله‌های DDoS مدت زمان کوتاهی دارن، حتی بزرگترین و شدیدترین اون‌ها. حمله کننده‌ها اغلب به انفجارهای کوتاه ترافیک متمرکز تکیه میکنن — گاهی اوقات به کوتاهی ۴۵ ثانیه که در حمله عظیم ۷.۳ ترابیت بر ثانیه دیده شد — تا سعی کنن از شناسایی فرار کنن، اهداف رو غرق کنن و قبل از اینکه دفاع‌ها بتونن به طور کامل فعال بشن، حداکثر اختلال رو ایجاد کنن. این تاکتیک انفجارهای کوتاه و با شدت بالا، شناسایی و خنثی سازی رو چالش برانگیزتر میکنه و بر نیاز به حفاظت همیشه روشن و در لحظه تاکید داره. خوشبختانه، دفاع‌های DDoS مستقل کلودفلر فورا وارد عمل میشن.

    کمک به ساختن یک اینترنت بهتر

    در کلودفلر، ما متعهد به کمک برای ساختن یک اینترنت بهتر هستیم. بخشی از این ماموریت، ارائه حفاظت DDoS رایگان و بدون محدودیت، صرف نظر از اندازه، مدت زمان و تعداد حمله‌هاست. ما فقط در برابر حمله‌های DDoS دفاع نمیکنیم. بهترین دفاع، یک حمله خوبه و با استفاده از فید رایگان تهدید بات‌نت ISP، ما به از کار انداختن بات‌نت‌ها کمک میکنیم.

    در حالی که بسیاری هنوز به صورت واکنشی از حفاظت استفاده میکنن یا به راه‌حل‌های قدیمی تکیه میکنن، داده‌های ما نشون میده که امنیت پیشگیرانه و همیشه روشن بسیار موثرتره. با قدرت گرفتن از یک شبکه جهانی با ظرفیت ۳۸۸ ترابیت بر ثانیه در بیشتر از ۳۳۰ شهر، ما دفاع خودکار، در مسیر ترافیک و اثبات شده در میدان نبرد رو در برابر همه انواع حمله‌های DDoS فراهم میکنیم.

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

    از هر دستگاهی به سایت 1.1.1.1 مراجعه کنین تا با اپلیکیشن رایگان ما که اینترنت شما رو سریع‌تر و امن‌تر میکنه، شروع کنین.

    برای یادگیری بیشتر در مورد ماموریت ما برای کمک به ساختن یک اینترنت بهتر، از اینجا شروع کنین. اگه به دنبال یک مسیر شغلی جدید هستین، موقعیت‌های شغلی باز ما رو بررسی کنین.

    “`

    منابع

  • «پرداخت به ازای خزش» کلادفلر، آینده اقتصاد محتوا

    شاید شما هم متوجه شده باشین که اقتصاد محتوا و مدلی که وب برای دهه‌ها بر اساس اون کار می‌کرده، دچار مشکل شده. ربات‌های خزنده هوش مصنوعی یا همون AI Crawlerها، وب‌سایت‌ها رو می‌خونن، اطلاعات رو خلاصه می‌کنن و جواب‌ها رو مستقیم به کاربر میدن، بدون اینکه کاربر رو به منبع اصلی اون محتوا بفرستن. نتیجه این اتفاق، یک افت شدید توی ترافیک وب‌سایت‌ها از سمت مدل‌های هوش مصنوعیه، درآمد تبلیغات کم شده و یک تهدید بزرگ برای مدل کسب‌وکاری که وب رو برای سال‌ها زنده نگه داشته بود، به وجود اومده.

    حالا، شرکت کلادفلر (Cloudflare) با یک رویکرد جدید وارد میدون شده. همین دو هفته پیش بود که متیو پرینس (Matthew Prince)، مدیرعامل کلادفلر، توی مصاحبه‌ای با آکسیوس (Axios) گفت: «هوش مصنوعی قراره اساسا مدل کسب‌وکار وب رو تغییر بده. مدل کسب‌وکار وب برای ۱۵ سال گذشته جستجو بوده. به هر شکلی، جستجو هر چیزی که آنلاین اتفاق میفته رو هدایت می‌کنه».

    هفته گذشته، کلادفلر یک راه حل احتمالی معرفی کرد: Pay Per Crawl یا «پرداخت به ازای هر خزش». این اولین لایه کسب درآمد از این نوعه که به ناشرها و تولیدکننده‌های محتوا اجازه میده از ربات‌های هوش مصنوعی (مثل GPTBot شرکت OpenAI یا ClaudeBot شرکت Anthropic) برای دسترسی به محتواشون پول بگیرن. این سیستم یک طراحی کاملا جدید برای کارکرد وب نیست، بلکه یک لایه جدیده که روی زیرساخت موجود وب ساخته میشه. سیستم از کد پاسخ کمتر استفاده شده HTTP 402 که به معنی «پرداخت الزامی است» هست، استفاده می‌کنه تا ربات‌هایی که سعی در خزش یک سایت دارن رو مسدود کنه یا ازشون هزینه بگیره. این ایده، یک نقطه عطف برای سئو (SEO) و بهینه‌سازی برای موتورهای تولیدکننده محتوا یا همون GEO (Generative Engine Optimization) به حساب میاد.

    قراردادی که برای اولین بار داره شکسته میشه

    برای اینکه عمق ماجرا رو بهتر درک کنیم، بد نیست یک قدم به عقب برگردیم و به زمینه‌ای که پشت حرکت کلادفلر وجود داره نگاهی بندازیم. حدود ۳۰ سال پیش، دو دانشجوی تحصیلات تکمیلی توی دانشگاه استنفورد، لری پیج و سرگی برین، کار روی یک پروژه تحقیقاتی به اسم «بک‌راب» (Backrub) رو شروع کردن. اون پروژه بعدها تبدیل به گوگل شد. اما مهم‌تر از اون، تبدیل به پایه و اساس مدل کسب‌وکار وب شد.

    قرارداد نانوشته بین گوگل و تولیدکننده‌های محتوا ساده بود:

    • به ما اجازه بدین محتوای شما رو کپی کنیم تا توی نتایج جستجو نشون بدیم، و در عوض، ما برای شما ترافیک می‌فرستیم.
    • شما به عنوان تولیدکننده محتوا، می‌تونستین اون ترافیک رو با نمایش تبلیغات، فروش اشتراک یا حتی فقط لذت بردن از خونده شدن مطلبتون، به پول تبدیل کنین.

    گوگل کل اکوسیستمی که از این قرارداد حمایت می‌کرد رو ساخت:

    • جستجوی گوگل ترافیک رو تولید می‌کرد.
    • گوگل شرکت DoubleClick رو خرید و AdSense رو راه انداخت تا به شما کمک کنه از اون ترافیک درآمد داشته باشین.
    • گوگل شرکت Urchin رو خرید تا گوگل آنالیتیکس (Google Analytics) رو بسازه تا بتونین همه چیز رو اندازه بگیرین.

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

    متیو پرینس این موضوع رو به وضوح بیان کرد. ده سال پیش، گوگل به ازای هر بازدیدکننده‌ای که به یک ناشر می‌فرستاد، دو صفحه از اون سایت رو کراول یا خزش می‌کرد. شش ماه پیش، این نسبت‌ها به این شکل بود:

    • گوگل: ۶ به ۱
    • OpenAI: ۲۵۰ به ۱
    • Anthropic: ۶,۰۰۰ به ۱

    و امروز این اعداد تکان‌دهنده‌تر شدن:

    • گوگل: ۱۸ به ۱
    • OpenAI: ۱,۵۰۰ به ۱
    • Anthropic: ۶۰,۰۰۰ به ۱

    این روند کاملا مشخصه: هوش مصنوعی می‌خونه، یاد می‌گیره و جواب میده، اما به ندرت کاربری رو به منبع اصلی برمی‌گردونه. تبادل ارزش دوطرفه‌ای که زمانی موتور محرک وب بود، داره بی‌سر و صدا از بین میره و تولیدکننده‌های محتوا از این معادله حذف میشن.

    کلادفلر چطور می‌خواد بازی رو عوض کنه؟

    وقتی بهش فکر می‌کنین، راه حل ارائه شده خیلی هوشمندانه به نظر می‌رسه. به جای اینکه صاحبان وب‌سایت رو مجبور به انتخاب بین دو گزینه شدید بکنه – یعنی یا ربات‌های هوش مصنوعی رو کاملا مسدود کنن یا بهشون دسترسی کامل و رایگان بدن – کلادفلر یک گزینه سوم معرفی می‌کنه: ازشون پول بگیرین.

    نحوه کارکرد این سیستم به این صورته:

    • هر بار که یک ربات خزنده هوش مصنوعی محتوایی رو درخواست می‌کنه، سرور می‌تونه با یک کد HTTP 402 Payment Required (پرداخت الزامی است) جواب بده و قیمت دسترسی رو هم مشخص کنه.
    • اگه خزنده با پرداخت موافقت کنه، یک درخواست بعدی با یک هِدِر پرداخت (payment header) می‌فرسته و سرور با یک پاسخ 200 OK محتوا رو برمی‌گردونه.
    • اگه موافقت نکنه، هیچ دسترسی داده نمیشه.

    توی داشبورد کلادفلر، صاحبان سایت می‌تونن برای هر ربات خزنده هوش مصنوعی یکی از سه قانون دسترسی زیر رو تنظیم کنن:

    1. Allow (اجازه دادن): دسترسی کامل داده میشه (HTTP 200).
    2. Charge (هزینه گرفتن): برای هر درخواست، پرداخت الزامیه (HTTP 402 با اطلاعات قیمت).
    3. Block (مسدود کردن): دسترسی رد میشه (HTTP 403)، اما با این اشاره که در آینده امکان مذاکره برای پرداخت وجود داره.

    این مثل معرفی یک API بین محتوا و مدل‌های مولد می‌مونه، جایی که اطلاعات فقط دانش شناور و رایگان نیست؛ بلکه حالا یک دارایی دیجیتال قابل کسب درآمده.

    باید بدونیم که این یک استارتاپ کوچیک نیست که بخواد وب رو متحول کنه. طبق داده‌های خود کلادفلر، این شرکت زیرساخت شبکه توزیع محتوا (CDN) رو برای بیش از ۲۰ درصد کل وب‌سایت‌های جهان تامین می‌کنه، از جمله شرکت‌های رسانه‌ای، پلتفرم‌های محتوا، دولت‌ها و برندهای بزرگ. سایت‌هایی مثل Reddit، Medium، Shopify، Udemy و The Guardian همگی از طریق شبکه کلادفلر کار می‌کنن. این یعنی اگه کلادفلر تصمیم بگیره دسترسی رو محدود کنه، می‌تونه این کار رو در مقیاس عظیمی انجام بده.

    اما مقیاس فقط بخشی از تصویره. کلادفلر همچنین دقیقا می‌دونه کدوم ربات‌ها و با چه頻繁ی از این سایت‌ها بازدید می‌کنن.

    • Bytespider، خزنده هوش مصنوعی شرکت ByteDance (شرکت مادر تیک‌تاک)، فعال‌ترین رباته و از بیش از ۴۰.۴ درصد دامنه‌های تحت حفاظت کلادفلر بازدید می‌کنه.
    • بعد از اون، GPTBot از OpenAI با ۳۵.۵ درصد و ClaudeBot از Anthropic با ۱۱.۲ درصد قرار دارن.
    • جالبه که GPTBot، با وجود اینکه «معروف‌ترین» رباته، یکی از ربات‌هایی هم هست که بیشترین مسدودسازی رو در سراسر شبکه تجربه می‌کنه.

    کلادفلر اشاره می‌کنه که خیلی از ناشرها حتی خبر ندارن که خزنده‌های هوش مصنوعی با این شدت در حال بازدید از سایت‌هاشون هستن. مقیاس این خراشیدن (scraping) پنهان احتمالا خیلی بزرگ‌تر از چیزیه که بیشتر مردم تصور می‌کنن.

    تاثیر Pay Per Crawl روی سئو (SEO) چیه؟

    اول از همه، باید مشخص کنیم که کلادفلر به طور پیش‌فرض خزنده‌های موتورهای جستجوی سنتی مثل BingBot یا Googlebot رو مسدود نمی‌کنه. اما، خزنده‌های هوش مصنوعی مثل GPTBot یا ClaudeBot رو به طور پیش‌فرض مسدود می‌کنه، مخصوصا برای وب‌سایت‌های جدیدی که به پلتفرم می‌پیوندن. صاحبان سایت می‌تونن این تنظیمات رو تغییر بدن و تصمیم بگیرن که به کدوم ربات‌ها اجازه بدن، کدوم‌ها رو مسدود کنن یا از کدوم‌ها هزینه بگیرن.

    این آپدیت به طور خاص روی مدل‌های هوش مصنوعی تمرکز داره، یعنی خزنده‌هایی از شرکت‌هایی مثل OpenAI و Anthropic که محتوا رو برای آموزش یا قدرت بخشیدن به مدل‌های زبان بزرگ (LLM) جمع‌آوری می‌کنن، نه برای ارائه نتایج جستجوی زنده. با این حال، برای اولین بار، کلادفلر به ناشرها این اختیار رو میده که خزنده‌های موتورهای جستجوی سنتی رو هم مسدود کنن یا ازشون هزینه بگیرن؛ سطحی از کنترل که قبلا وجود نداشت.

    آیا ناشرها واقعا این کار رو می‌کنن؟ احتمالا نه، حداقل بیشترشون نه. مسدود کردن گوگل یا بینگ هنوز به معنی از دست دادن بخش بزرگی از ترافیک ارگانیک با ارزشه و برای خیلی‌ها، این بهاییه که حاضر به پرداختش نیستن. در حالی که وال استریت ژورنال (The Wall Street Journal) اخیرا از افت قابل توجه ترافیک ناشرها به خاطر تجربه‌های جستجوی مبتنی بر هوش مصنوعی خبر داده، گوگل هنوز مسئول بخش بزرگی از ترافیک بیشتر ناشرهاست، اغلب بین ۳۰ تا ۶۰ درصد یا حتی بیشتر، بسته به نوع سایت.

    اما این وضعیت داره تغییر می‌کنه. تعداد فزاینده‌ای از ناشرهای بزرگ به طرح Pay Per Crawl کلادفلر پیوستن، از جمله:

    • TIME
    • The Atlantic
    • ADWEEK
    • BuzzFeed
    • Fortune
    • Quora
    • Stack Overflow
    • Webflow

    پس با اینکه سئو هنوز برای اکثر افراد اونقدر مهمه که نمی‌تونن ازش دست بکشن، برای اولین بار، قدرت گفتن «نه» یا حداقل «پول بده»، رسما روی میزه.

    تاثیر Pay Per Crawl روی GEO چیه؟

    قطعا تاثیر داره و عمیق‌تر از چیزی که شاید فکر کنین. برای درک بهتر، از ChatGPT به عنوان مثال استفاده می‌کنیم. همونطور که خیلی‌ها می‌دونن، نسخه پولی ChatGPT با استفاده از بینگ، جستجوهای زنده انجام میده. اما پشت پرده، در واقع دو فرآیند جداگانه در حال انجامه:

    1. آموزش مدل (Training data):
      • قبل از اینکه مدل بتونه چیزی رو جستجو کنه، اول باید آموزش ببینه. این زمانیه که مدل‌های زبان بزرگ یاد می‌گیرن زبان چطور کار می‌کنه و دانش خودشون از جهان رو با استفاده از مجموعه داده‌های عظیمی که شامل متن، کد، تصویر و اطلاعات جمع‌آوری شده از سراسر وب عمومیه، می‌سازن.
      • این محتوا توسط خزنده‌های هوش مصنوعی اختصاصی مثل GPTBot (OpenAI) و AnthropicBot (Anthropic) و ربات‌های مشابهی که توسط گوگل و متا اداره میشن، جمع‌آوری میشه.
    2. بازیابی اطلاعات زنده (Real-time information retrieval):
      • بعد از اینکه مدل آموزش دید، می‌تونه داده‌های تازه رو از طریق ابزارهای خارجی از وب بگیره، مثلا از طریق یکپارچه‌سازی ChatGPT با بینگ.

    در نگاه اول، شاید فکر کنین: «اگه سایت من بینگ رو مسدود نکنه، ChatGPT موقع جستجوی کاربرها هنوزم اون رو می‌بینه، پس مشکل چیه؟» اما نکته کلیدی اینجاست: آموزش چیزیه که درک بنیادین مدل از جهان، حسش از زبان، موضوعات، زمینه و تخصص رو می‌سازه. جستجوی زنده فقط راهی برای تکمیل اون درکه، نه جایگزین کردنش.

    و اینجاست که Pay Per Crawl اهمیت پیدا می‌کنه. با محدود کردن دسترسی خزنده‌های هوش مصنوعی توسط وب‌سایت‌های بیشتر، فرآیند آموزش محدود میشه و این سه تاثیر بزرگ رو به وجود میاره.

    • افت کیفیت پاسخ‌ها (حتی با جستجوی زنده): حتی اگه مدل بتونه سایت شما رو از طریق بینگ یا Brave «ببینه»، اگه در طول آموزش با محتوای مشابهی مواجه نشده باشه، نمی‌دونه چطور محتوای شما رو تفسیر یا اولویت‌بندی کنه.
    • سوگیری ذاتی به سمت منابع شناخته شده: مدل‌ها تمایل دارن به منابعی که در طول آموزش دیدن، بیشتر اعتماد کنن. اگه محتوای شما بخشی از اون فرآیند نبوده، ممکنه توی پاسخ‌های تولید شده توسط هوش مصنوعی نادیده گرفته بشین یا کمتر دیده بشین، فقط به این دلیل که مدل با لحن، فرمت یا اعتبار شما آشنا نیست.
    • تاثیر بلندمدت روی GEO: هرچه وب‌سایت‌های بیشتری به Pay Per Crawl بپیوندن و دسترسی رو محدود کنن، داده‌های آموزشی کلی در دسترس مدل‌های هوش مصنوعی کمتر میشه. سایت‌هایی که در طول آموزش دیده نشدن، بخشی از «نقشه ذهنی» مدل نخواهند شد، حتی اگه از نظر فنی در جستجوی زنده قابل دسترسی باشن.

    دیدگاه ناشران و شرکت‌های هوش مصنوعی

    ناشران از این طرح استقبال کردن و اون رو یک گام اساسی برای بازگردوندن تعادل اقتصادی وب می‌دونن.

    راجر لینچ (Roger Lynch)، مدیرعامل Condé Nast، این حرکت رو تحسین کرده و میگه: «این یک تغییردهنده بازی برای ناشرانه و استاندارد جدیدی برای نحوه احترام به محتوا به صورت آنلاین تعیین می‌کنه. وقتی شرکت‌های هوش مصنوعی دیگه نتونن هر چیزی رو که می‌خوان به صورت رایگان بردارن، درِ نوآوری پایدار مبتنی بر اجازه و همکاری باز میشه.»

    نیل ووگل (Neil Vogel) از Dotdash Meredith هم همین حس رو داره و میگه: «ما مدت‌هاست گفتیم که پلتفرم‌های هوش مصنوعی باید برای استفاده از محتوای ما به ناشران و خالقان به طور منصفانه پول پرداخت کنن. حالا، ما می‌تونیم دسترسی به محتوامون رو به اون دسته از شرکای هوش مصنوعی محدود کنیم که مایل به مشارکت در ترتیبات منصفانه هستن.»

    رن توریانو (Renn Turiano) از Gannett بر فوریت موضوع تاکید می‌کنه: «مسدود کردن خراشیدن غیرمجاز و استفاده از محتوای اصلی ما بدون جبران منصفانه بسیار مهمه… ما خوش‌بین هستیم که فناوری کلادفلر به مبارزه با سرقت مالکیت معنوی با ارزش کمک خواهد کرد.»

    برای شرکت‌های هوش مصنوعی هم، این بازار یک جایگزین شفاف و کم‌دردسر برای بحث‌های پیچیده کپی‌رایت فراهم می‌کنه. به جای خراشیدن بی‌رویه و امید به پوشش «استفاده منصفانه»، سازمان‌ها می‌تونن با هزینه‌های قابل پیش‌بینی، دسترسی قانونی به محتوای باکیفیت رو تضمین کنن. این کار ریسک حقوقی رو کم می‌کنه و به ساخت مدل‌های هوش مصنوعی قوی‌تری که به حقوق خالقان احترام می‌ذارن، کمک می‌کنه.

    زیربنای فنی و چالش‌های پیش رو

    در قلب راه‌حل کلادفلر، زیرساخت پیشرفته مدیریت ربات اون قرار داره که روزانه تریلیون‌ها درخواست رو پردازش می‌کنه. با استفاده از سیگنال‌های رفتاری، انگشت‌نگاری و پروتکل‌های جدید «هویت خزنده»، کلادفلر به دقت بین بازدیدکنندگان انسانی، ربات‌های مفید و خزنده‌های هوش مصنوعی تمایز قائل میشه. برای جلوگیری از جعل هویت خزنده‌ها و تضمین پرداخت‌های معتبر، از امضاهای رمزنگاری شده Ed25519 هم استفاده میشه.

    با این حال، چالش‌هایی هم وجود داره. برای موفقیت این طرح، لازمه که هم شرکت‌های هوش مصنوعی و هم ناشران به تعداد کافی در اون مشارکت کنن. از طرف دیگه، برخی در جامعه دانشگاهی نگرانن که مسدود کردن خزنده‌ها ممکنه به تحقیقات مشروع و غیرتجاری هوش مصنوعی آسیب برسونه.

    نگاهی به آینده

    ویژن کلادفلر فراتر از این هم میره. متیو پرینس، مدیرعامل شرکت، یک ایده رو مطرح کرده که در اون محتوای جدید و اصیل که «چاله‌های پنیری» دانش یک مدل هوش مصنوعی رو پر می‌کنه، ارزش بیشتری نسبت به محتوای تکراری و کم‌ارزش داره.

    ویل آلن (Will Allen)، معاون مدیریت محصول کلادفلر، هم دنیایی رو تصور می‌کنه که در اون یک کاربر می‌تونه به یک ایجنت هوشمند بگه: «برو در مورد این موضوع برای من تحقیق کن و اینم ۱۰ دلار بودجه تو». اون ایجنت می‌تونه به طور خودکار بره و بهترین محتوا رو پیدا کنه و برای دسترسی بهش هزینه بپردازه. این یعنی حرکت به سمت یک وب هوشمندتر که در اون دسترسی به اطلاعات با بودجه‌های از پیش تعریف شده و به صورت برنامه‌ریزی شده انجام میشه.

    جستجوی زنده ممکنه همچنان کار کنه، اما بدون یک پایه قوی، مدل نمی‌دونه دنبال چی بگرده، چطور اون رو تفسیر کنه، یا چرا محتوای شما مهمه. GEO فقط مربوط به دیده شدن نیست؛ مربوط به اینه که آیا مدل شما رو می‌شناسه، بهتون اعتماد داره و شما رو درک می‌کنه یا نه. و همه اینها از آموزش شروع میشه.

    منابع

  • راهنمای درون‌ریزی دیتاهای نمونه در ووکامرس

    وقتی برای اولین بار ووکامرس رو نصب میکنی، ممکنه با یه فروشگاه خالی و بی‌روح روبرو بشی. نه محصولی برای نمایش هست، نه سفارشی ثبت شده و نه نظری از طرف مشتری‌ها وجود داره. این موضوع کاملا عمدی و طبیعیه، چون اینطوری بهت فرصت داده میشه که فروشگاه خودت رو از صفر و دقیقا مطابق با نیازهات بسازی و محصولات خودت رو بهش اضافه کنی.

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

    قبل از هر کاری، باید بدونیم که این داده‌های نمونه کجا قرار دارن. این داده‌ها توی فایلی به اسم sample_products.csv یا sample_products.xml ذخیره شدن. آدرس این فایل‌ها توی پوشه افزونه ووکامرس، یعنی توی مسیر woocommerce/sample-data/ هست. برای اینکه به این فایل‌ها دسترسی پیدا کنی، دو تا راه اصلی وجود داره:

    • راه اول اینه که افزونه ووکامرس رو دوباره از سایت wordpress.org دانلود کنی. بعد از اینکه فایل .zip رو دانلود کردی، اون رو باز کن و توی پوشه‌هاش دنبال همین فایل‌ها بگرد.
    • راه دوم اینه که از طریق SFTP یا ابزارهای مشابه به فایل‌های سایت خودت روی هاست دسترسی پیدا کنی و فایل‌ها رو از همون مسیری که گفته شد، پیدا و دانلود کنی.

    حالا که فایل‌های نمونه رو داریم، وقتشه که اون‌ها رو وارد فروشگاه کنیم. برای این کار دو تا روش وجود داره که در ادامه هر دو رو با جزئیات بررسی میکنیم.

    نگاهی به ساختار کلی راهنمای ووکامرس

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

    اولین بخش «Getting started» یا «شروع به کار» هست. این بخش خودش شامل چندین زیرمجموعه میشه که هر کدوم یکی از مراحل راه‌اندازی فروشگاه رو توضیح میدن. مثلا بخش «Installation and updating» به نصب و به‌روزرسانی افزونه میپردازه. بخش «Settings and options» تنظیمات و گزینه‌های مختلف ووکامرس رو شرح میده. بعد از اون به «Set up products» میرسیم که نحوه اضافه کردن و مدیریت محصولات رو یاد میده. توی همین بخش، راهنماهایی برای «Adding and managing products» و «WooCommerce Blocks» هم وجود داره.

    وقتی محصولات رو اضافه کردی، نوبت به فروش اون‌ها میرسه که توی بخش «Sell products» بهش پرداخته شده. یکی از مهم‌ترین قسمت‌های فروش، روش‌های پرداخته که در زیرمجموعه «Core Payment Options» توضیح داده میشه. بعد از فروش، باید به فکر ارسال کالا باشی. بخش «Shipping» و زیرمجموعه «Core Shipping Options» به طور کامل به مسائل مربوط به حمل و نقل میپردازن.

    مدیریت سفارش‌ها هم بخش مهم دیگه‌ای هست که توی «Managing orders» بهش پرداخته شده. برای اینکه بدونی کسب‌وکارت چطور پیش میره، به تحلیل و گزارش نیاز داری که این موارد در «Analytics and sales reports» پوشش داده شدن. در نهایت، اگه از پلتفرم دیگه‌ای استفاده میکردی و حالا میخوای به ووکامرس مهاجرت کنی، بخش «Migrating to WooCommerce» راهنمایی‌های لازم رو بهت ارائه میده.

    علاوه بر این، بخش‌های دیگه‌ای هم برای کمک به کاربرها وجود داره. مثلا بخش «Moving to Woo?» مخصوص کسایی هست که قصد دارن از پلتفرم‌های دیگه به ووکامرس بیان و راهنمایی‌های قدم به قدم برای انتقال اطلاعات و راه‌اندازی فروشگاه رو در اختیارشون میذاره. بخش «Get help» هم برای وقتیه که به مشکل خوردی و نیاز به کمک داری. این بخش شامل راهنمای عیب‌یابی «Troubleshooting»، اطلاعات مربوط به حریم خصوصی «Privacy» و سوالات متداول «Frequently Asked Questions» میشه.

    برای کاربرهایی که دنبال راهنماهای عملی هستن، بخش «How-to guides» وجود داره. ووکامرس حتی اپلیکیشن موبایل برای اندروید «Android» و آی‌اواس «iOS» داره که اطلاعات مربوط به اون‌ها در بخش «Mobile App» پیدا میشه. یکی از قابلیت‌های جدیدتر ووکامرس، «Store Editing» هست که بهت اجازه میده طراحی فروشگاهت رو مدیریت کنی. این بخش هم شامل مقدمه «Introduction and orientation» و راهنمای شخصی‌سازی فروشگاه «Customizing your store» میشه. این نگاه کلی به ما نشون میده که ووکامرس فقط یه افزونه ساده نیست، بلکه یه اکوسیستم کامل برای ساخت و مدیریت فروشگاه اینترنتیه.


    روش اول: وارد کردن داده‌ها از طریق بخش محصولات ووکامرس

    این روش، روشی هست که خود ووکامرس پیشنهاد میکنه و معمولا ساده‌تر و سرراست‌تره. برای این کار باید مراحل زیر رو به ترتیب دنبال کنی:

    1. اول از همه، وارد پیشخوان یا همون داشبورد وردپرس سایتت شو.
    2. از منوی سمت راست، گزینه‌ای به اسم «محصولات» یا «Products» رو پیدا کن و روی اون کلیک کن تا به صفحه «همه محصولات» یا «All Products» بری.
    3. توی این صفحه، یه دکمه به اسم «شروع درون‌ریزی» یا «Start Import» میبینی. روی این دکمه کلیک کن.
    4. با کلیک روی اون دکمه، به یه صفحه جدید به اسم «درون‌ریزی محصولات» یا «Import Products» هدایت میشی.

    [توضیح تصویر: در این مرحله، صفحه‌ای را می‌بینید که عنوان «Import Products» را دارد و از شما می‌خواهد که یک فایل CSV برای وارد کردن انتخاب کنید.]

    1. توی این صفحه، یه دکمه به اسم «Choose file» یا «انتخاب فایل» وجود داره. روی اون کلیک کن و فایلی که قبلا دانلود کردی، یعنی sample-products.csv رو انتخاب کن.
    2. بعد از انتخاب فایل، روی دکمه «ادامه» یا «Continue» کلیک کن. حالا یه صفحه به اسم «نگاشت ستون» یا «Column Mapping» برات باز میشه. این صفحه خیلی مهمه. کارش اینه که ستون‌های مختلف فایل CSV شما رو به فیلدهای مربوط به محصول در ووکامرس وصل میکنه. مثلا ستون «نام محصول» از فایل شما رو به فیلد «نام محصول» در ووکامرس مرتبط میکنه. خبر خوب اینه که ووکامرس به صورت خودکار ستون‌های فایل نمونه رو میشناسه و این کار رو برات انجام میده.

    [توضیح تصویر: در این مرحله، صفحه‌ای را مشاهده می‌کنید با عنوان «Map CSV fields to products». این صفحه لیستی از ستون‌های فایل CSV و فیلدهای متناظر در ووکامرس را نشان می‌دهد که به صورت خودکار با هم تطبیق داده شده‌اند.]

    1. حالا کافیه به پایین صفحه اسکرول کنی و روی دکمه «اجرای درون‌ریز» یا «Run the Importer» کلیک کنی.

    بعد از چند لحظه، کار تموم میشه و شما کلی محصول نمونه توی فروشگاه ووکامرس خودت داری! حالا میتونی به بخش محصولات بری و ببینی که چطور محصولاتی با نام، قیمت، تصویر و توضیحات مختلف به فروشگاهت اضافه شدن. این کار بهت کمک میکنه با ساختار محصولات در ووکامرس بیشتر آشنا بشی.


    روش دوم: وارد کردن داده‌ها از طریق درون‌ریز وردپرس

    این روش یه راه جایگزین هست و از ابزار داخلی خود وردپرس برای وارد کردن اطلاعات استفاده میکنه. برای استفاده از این روش، مراحل زیر رو دنبال کن:

    1. دوباره وارد پیشخوان وردپرس شو.
    2. این بار از منوی سمت راست، به مسیر «ابزارها > درون‌ریزی» یا «Tools > Import» برو.
    3. توی این صفحه، لیستی از پلتفرم‌های مختلف رو میبینی که میتونی ازشون اطلاعات وارد کنی. دنبال گزینه «WordPress» بگرد و روی اون کلیک کن. اگه این ابزار قبلا روی سایتت نصب نشده باشه، وردپرس ازت میخواد که اول اون رو نصب کنی. فقط کافیه روی دکمه نصب کلیک کنی تا در چند ثانیه نصب بشه.

    [توضیح تصویر: در این مرحله، صفحه‌ای را می‌بینید که لیستی از ابزارهای درون‌ریزی را نشان می‌دهد. گزینه WordPress در این لیست مشخص است و از شما خواسته می‌شود که آن را اجرا کنید.]

    1. بعد از اینکه ابزار درون‌ریز وردپرس آماده شد، روی «اجرای درون‌ریز» یا «Run Importer» کلیک کن.
    2. به یه صفحه جدید منتقل میشی. اینجا هم مثل روش قبلی، باید روی دکمه «Choose file» یا «انتخاب فایل» کلیک کنی. اما این بار، باید فایل sample-products.xml رو انتخاب کنی. دقت کن که پسوند فایل در این روش متفاوته.
    3. بعد از انتخاب فایل، روی دکمه «بارگذاری پرونده و درون‌ریزی» یا «Upload file and import» کلیک کن.
    4. مرحله بعدی خیلی جالبه. وردپرس ازت میپرسه که این محصولات نمونه رو به اسم کدوم کاربر ثبت کنه. اینجا چند تا انتخاب داری:
      • میتونی محصولات رو به نویسنده پیش‌فرض فروشگاه، یعنی «Shop Manager»، اختصاص بدی.
      • میتونی یه کاربر جدید بسازی و محصولات رو به اسم اون ثبت کنی.
      • یا اینکه میتونی محصولات رو به یکی از کاربرهای موجود سایتت (مثلا خودت) اختصاص بدی. این انتخاب به خودت بستگی داره، اما پیشنهاد میشه که محصولات به یه کاربر موجود اختصاص داده بشن.
    5. یه گزینه مهم دیگه هم اینجا وجود داره: یه چک‌باکس با عنوان «بارگیری و درون‌ریزی فایل‌های پیوست» یا «Download and import file attachments». اگه این تیک رو بزنی، تمام عکس‌های محصولات نمونه هم توی سایتت آپلود و به محصولات مربوطه وصل میشن. اگه میخوای یه فروشگاه کامل با عکس ببینی، حتما این تیک رو فعال کن.
    6. در نهایت روی دکمه «ثبت» یا «Submit» کلیک کن و منتظر بمون تا داده‌های نمونه وارد سایتت بشن.

    حالا دیگه کارت تموم شده و محصولات نمونه با موفقیت به فروشگاهت اضافه شدن. برای اینکه اطلاعات بیشتری در مورد اضافه کردن و مدیریت محصولات واقعی خودت به دست بیاری، میتونی به راهنمای «Adding and Managing Products» که خود ووکامرس ارائه کرده، مراجعه کنی.


    منابع

  • معرفی ووکامرس ۱۰.۰

    نسخه جدید ووکامرس با شماره ۱۰.۰ در تاریخ ۱۴ جولای ۲۰۲۵ منتشر شده. این نوشته نگاهی میندازه به امکانات و تغییرات جدیدی که در این نسخه ارائه شده. بد نیست بدونید که آخرین نسخه پایدار در این سری، ووکامرس ۱۰.۰.۲ هست که میتونید اون رو مستقیما از سایت وردپرس دانلود کنید. این نسخه جدید با خودش اپدیت‌هایی برای پایگاه داده یا همون دیتابیس هم به همراه داره، پس موقع اپدیت این نکته رو در نظر داشته باشید.

    از نظر فنی، این نسخه با نسخه‌های قبلی سازگاری داره (Backwards compatible) که این خبر خوبی برای کسانی هست که نگران به هم ریختن سایتشون بعد از اپدیت هستن. برای رسیدن به این نسخه، ۴۰۵ کامیت (Commit) یا همون ثبت تغییرات کد، توسط ۶۷ مشارکت کننده (Contributor) انجام شده. این اعداد نشون دهنده حجم کاری هست که برای توسعه این نسخه انجام شده.

    در ادامه، به صورت مفصل و با جزئیات کامل، به تمام ویژگی‌ها و تغییراتی که در نسخه ۱۰.۰ ووکامرس معرفی شده، میپردازیم. این موارد شامل بهبودهای دسترسی پذیری، لینک‌های پرداخت قابل اشتراک گذاری، بهبودهای بخش کوپن‌ها، و خیلی موارد دیگه میشه که هر کدوم رو جداگانه بررسی میکنیم.


    بهبودهای چشمگیر در دسترسی پذیری بخش کاربری (Frontend Accessibility)

    یکی از مهمترین و کلیدی‌ترین تغییرات در ووکامرس ۱۰.۰، تمرکز ویژه روی بهبود دسترسی پذیری یا Accessibility بوده. این موضوع به این معنیه که تلاش شده تا افراد با توانایی‌های مختلف، از جمله کسانی که از صفحه خوان‌ها (Screen Readers) استفاده میکنن، بتونن راحت‌تر و بدون مشکل از فروشگاه‌های ساخته شده با ووکامرس استفاده کنن.

    بر اساس اطلاعات منتشر شده، وقتی ووکامرس ۱۰.۰ همراه با یک قالب پیشفرض وردپرس یا یک قالب که برای دسترسی پذیری اماده شده (accessibility-ready theme) استفاده بشه، به طور کامل با استانداردهای راهنمای دسترسی به محتوای وب (WCAG) 2.2 در سطح AA مطابقت خواهد داشت. این یعنی فروشگاه شما از نظر قانونی و استانداردهای جهانی در وضعیت بسیار خوبی قرار میگیره. علاوه بر این، این نسخه تا حد زیادی با سطح AAA که سطح بالاتری از استانداردهاست، همخوانی داره. رسیدن به این سطح از انطباق، یک قدم بزرگ برای ووکامرس به حساب میاد.

    این بهبودها حاصل تلاش‌های زیادی در قالب چندین درخواست تغییر (PR) بوده و جنبه‌های مختلفی رو پوشش میده. در ادامه به صورت جزئی‌تر به این بهبودها نگاه میکنیم:

    • بازنگری کامل در نشانه گذاری معنایی (Semantic Markup): ساختار کدهای HTML به شکلی بازنویسی شده که برای صفحه خوان‌ها قابل فهم‌تر باشه. این دستگاه‌ها حالا میتونن محتوای صفحه، مثل محصولات، دکمه‌ها و فرم‌ها رو بهتر تفسیر کنن و اطلاعات دقیق‌تری رو به کاربر منتقل کنن. این تغییر به ظاهر کوچیک، تجربه کاربری افراد نابینا یا کم بینا رو به شکل قابل توجهی بهتر میکنه.
    • بازخورد قوی در فرم‌ها و مدیریت خطا: در نسخه جدید، وقتی کاربر در حال پر کردن فرمی مثل فرم پرداخت یا ثبت نام هست، بازخوردهای واضح‌تری دریافت میکنه. اگه خطایی رخ بده، مثلا یک فیلد به اشتباه پر بشه، پیام‌های وضعیت (Status Messages) و شناسایی خطا (Error Identification) به شکل روشنی نمایش داده میشن. این کار باعث میشه کاربر سریع متوجه مشکل بشه و اون رو اصلاح کنه، بدون اینکه سردرگم بشه.
    • بهبود ناوبری با کیبورد و مدیریت فوکوس: یکی دیگه از جنبه‌های مهم دسترسی پذیری، امکان استفاده کامل از سایت فقط با کیبورده. در ووکامرس ۱۰.۰، ناوبری با کیبورد (Keyboard-first navigation) و مدیریت فوکوس (Focus Management) در تمام بخش‌های کلیدی که بر پایه بلاک‌ها ساخته شدن، مثل سبد خرید، گالری محصولات و صفحه پرداخت، به شکل قابل توجهی بهتر شده. حالا کاربران میتونن به راحتی با کلید Tab بین المان‌های مختلف حرکت کنن و بدون نیاز به موس، خریدشون رو تکمیل کنن.

    برای کسانی که علاقه‌مند به دونستن جزئیات فنی بیشتری در مورد این تغییرات هستن، یک پست وبلاگی با عنوان «یک سال بهبود دسترسی پذیری در هسته ووکامرس» منتشر شده که به طور کامل این روند رو توضیح داده. این بهبودها نه تنها یک ویژگی جدید، بلکه یک سرمایه گذاری بلندمدت روی فراگیرتر کردن تجارت الکترونیک برای همه محسوب میشه.


    قابلیت جدید: لینک‌های پرداخت قابل اشتراک گذاری (Shareable Checkout URLs)

    یکی از ویژگی‌های کاربردی و هیجان انگیزی که در نسخه ۱۰.۰ ووکامرس معرفی شده، امکان ساخت لینک‌های پرداخت قابل اشتراک گذاریه. این قابلیت که در درخواست شماره #58140 پیاده سازی شده، به مدیران فروشگاه اجازه میده لینک‌های سفارشی بسازن که به طور خودکار سبد خرید مشتری رو با محصولات و حتی متغیرهای محصول خاصی پر میکنن و مستقیم اونها رو به صفحه پرداخت هدایت میکنن.

    این ویژگی میتونه تحول بزرگی در کمپین‌های بازاریابی و فروش ایجاد کنه. تصور کنید میخواید یک بسته پیشنهادی (Bundle) رو از طریق ایمیل، شبکه‌های اجتماعی یا یک صفحه فرود (Landing Page) به فروش برسونید. به جای اینکه از مشتری بخواید چند محصول رو جداگانه پیدا و به سبد خرید اضافه کنه، میتونید یک لینک واحد بهش بدید که با یک کلیک، تمام محصولات مورد نظر با تعداد مشخص و حتی یک کد تخفیف از پیش اعمال شده، در سبد خریدش قرار بگیره و آماده پرداخت باشه.

    چطور کار میکنه؟

    برای درک بهتر، به این مثال از یک لینک قابل اشتراک گذاری توجه کنید:

    https://yourstore.com/checkout-link/?products=123:2,456:1&coupon=SPRING10

    بیاید این لینک رو با هم تحلیل کنیم:

    • https://yourstore.com/checkout-link/: این بخش اصلی لینک شماست که به صفحه پرداخت فروشگاه اشاره داره.
    • ?products=123:2,456:1: این قسمت مهمترین بخش لینکه.
    • 123:2 یعنی محصولی با شناسه (ID) 123 به تعداد ۲ عدد به سبد خرید اضافه بشه.
    • 456:1 یعنی محصولی با شناسه (ID) 456 به تعداد ۱ عدد به سبد خرید اضافه بشه.
    • &coupon=SPRING10: این بخش هم یک کوپن تخفیف با کد SPRING10 رو به طور خودکار روی سبد خرید اعمال میکنه.

    در نهایت، وقتی مشتری روی این لینک کلیک میکنه، بدون هیچ مرحله اضافی، مستقیما به صفحه پرداخت منتقل میشه در حالی که سبد خریدش دقیقا همون چیزیه که شما میخواستید.

    مزایای این ویژگی

    این قابلیت هم برای فروشنده‌ها و هم برای مشتریان مزایای مشخصی داره:

    • برای فروشندگان (Merchants):
    • افزایش نرخ تبدیل (Conversion): با کم کردن مراحل خرید و حذف مراحل اضافی مثل پیدا کردن محصول و اضافه کردن به سبد، احتمال اینکه مشتری خرید رو نهایی کنه خیلی بیشتر میشه.
    • کمپین‌های هدفمند: امکان ایجاد پیشنهادهای ویژه و بسته‌های اختصاصی برای کمپین‌های مختلف و اشتراک گذاری اونها به سادگی فراهم میشه.
    • برای مشتریان (Customers):
    • تجربه خرید سریع و ساده: مشتری دیگه نیازی به گشتن در سایت و انجام کارهای تکراری نداره. با یک کلیک به مرحله نهایی میرسه.
    • کاهش سردرگمی: همه چیز از قبل براش اماده شده و فقط باید اطلاعات پرداخت رو وارد کنه.

    این ویژگی جدید ابزار قدرتمندی رو در اختیار مدیران فروشگاه قرار میده تا فرایند فروش رو بهینه‌تر و جذاب‌تر کنن.


    بهبودهای کاربردی در بخش کوپن‌ها (Coupon Improvements)

    در نسخه ۱۰.۰ ووکامرس، توجه ویژه‌ای به بخش مدیریت کوپن‌ها شده و چندین مشکل قدیمی که هم در بخش مدیریت (Admin) و هم در نحوه محاسبه تخفیف‌ها در سبد خرید وجود داشت، برطرف شده. این تغییرات که در قالب چند درخواست مختلف با شماره‌های #57911، #57942، #57946 و #58013 اعمال شدن، تجربه کار با کوپن‌ها رو هم برای مدیران فروشگاه و هم برای مشتریان بهتر میکنن.

    ۱. نمایش خطاهای مدیریتی هنگام ذخیره کوپن نامعتبر

    یکی از مشکلات قدیمی این بود که اگه مدیر فروشگاه هنگام ایجاد یا ویرایش یک کوپن، اطلاعات نامعتبری وارد میکرد و دکمه ذخیره رو میزد، سیستم خطای واضحی نشون نمیداد. این موضوع باعث سردرگمی میشد چون مدیر نمیدونست دقیقا مشکل از کجاست و کدوم مقادیر ذخیره نشدن.

    با بهبود انجام شده در #57911، حالا اگه پیکربندی کوپن نامعتبر باشه، پیام‌های خطا به صورت واضح و مشخص نمایش داده میشن. این پیام‌ها دقیقا به مدیر میگن که چه چیزی باید اصلاح بشه. این تغییر کوچیک، فرایند مدیریت کوپن‌ها رو خیلی ساده‌تر و سریع‌تر میکنه.

    ۲. اعتبارسنجی برای فیلدهای حداقل و حداکثر هزینه

    در بخش محدودیت‌های استفاده از کوپن، دو فیلد «حداقل هزینه» (Minimum spend) و «حداکثر هزینه» (Maximum spend) وجود داره. قبلا امکان داشت که مدیر فروشگاه به اشتباه، مقدار «حداکثر هزینه» رو کمتر از «حداقل هزینه» وارد کنه و سیستم هم این مقدار رو ذخیره میکرد که منطقی نبود.

    در تغییر اعمال شده با شماره #57942، یک قانون اعتبارسنجی جدید اضافه شده. بر اساس این قانون، اگه مقدار فیلد Maximum spend کمتر از فیلد Minimum spend باشه، کوپن ذخیره نمیشه و یک پیام خطا به مدیر نمایش داده میشه تا این مشکل رو اصلاح کنه.

    ۳. قابل ترجمه شدن متن جایگزین تاریخ انقضای کوپن

    برای فروشگاه‌های چند زبانه، مهمه که تمام بخش‌های پنل مدیریت به زبان محلی قابل نمایش باشن. قبلا، متن جایگزین (placeholder) فیلد «تاریخ انقضای کوپن» (Coupon expiry date) قابل ترجمه نبود.

    با تغییر اعمال شده در #57946، این متن حالا قابل ترجمه (translatable) شده. این به مدیران فروشگاه در سراسر دنیا کمک میکنه تا تمام تنظیمات کوپن رو به زبان خودشون پیکربندی کنن.

    ۴. اصلاح نحوه محاسبه تخفیف برای آیتم‌های محدود

    یک مشکل پیچیده در نحوه محاسبه تخفیف کوپن‌هایی وجود داشت که فقط روی تعداد محدودی از محصولات اعمال میشدن. قبلا، وقتی مشتری محصولات بیشتری به سبد خرید اضافه میکرد، گاهی اوقات مقدار تخفیف کوپن کاهش پیدا میکرد. این به این دلیل بود که سیستم برای اولویت بندی تخفیف، به جای قیمت واحد محصول، قیمت کل (subtotal) رو در نظر میگرفت.

    در بهبود اعمال شده با شماره #58013، این منطق اصلاح شده. حالا سیستم برای اعمال تخفیف، قیمت واحد محصولات (unit price) رو بررسی میکنه و تخفیف رو ابتدا روی گران‌ترین آیتم‌ها اعمال میکنه، حتی اگه تعداد محصولات در سبد خرید متفاوت باشه. این کار تضمین میکنه که با ارزش‌ترین آیتم‌ها اول تخفیف رو دریافت میکنن و مشکل کاهش تخفیف با اضافه شدن محصولات بیشتر به سبد خرید، حل شده.

    این مجموعه از بهبودها، کارایی و دقت سیستم کوپن در ووکامرس رو به شکل قابل توجهی افزایش داده.


    ایمپورت کننده محصولات CSV حالا از محتوای غنی (Rich Content) پشتیبانی میکنه

    یکی از ابزارهای بسیار کاربردی برای مدیران فروشگاه، به خصوص اونهایی که تعداد محصولات زیادی دارن یا از پلتفرم دیگه‌ای به ووکامرس مهاجرت میکنن، ایمپورت کننده محصولات از طریق فایل CSV هست. اما این ابزار یک محدودیت بزرگ داشت: در نسخه‌های قبلی، امکان وارد کردن فایل‌های CSV که در ستون توضیحات محصول حاوی محتوای HTML بودن (مثل متن‌های فرمت بندی شده، جداول، لیست‌ها و غیره) وجود نداشت.

    این محدودیت کاربران رو با چالش‌های زیادی روبرو میکرد. اونها مجبور بودن قبل از ایمپورت، تمام کدهای HTML رو به صورت دستی از توضیحات محصولات حذف کنن که کاری بسیار زمان‌بر و خسته کننده بود. راه حل دیگه، استفاده از روش‌های ناامن مثل غیرفعال کردن بررسی MIME برای کل سایت بود که یک ریسک امنیتی بزرگ محسوب میشد.

    راه حل در ووکامرس ۱۰.۰

    با تغییری که در درخواست شماره #58016 اعمال شده، این مشکل به طور کامل حل شده. ایمپورت کننده CSV در نسخه جدید، حالا میتونه فایل‌هایی که حاوی محتوای HTML هستن رو به درستی پردازش کنه.

    این یعنی چی؟ یعنی حالا شما میتونید یک فایل CSV داشته باشید که در ستون توضیحات محصول، از تگ‌های HTML برای بولد کردن متن، ایجاد پاراگراف، ساختن لیست‌های شماره‌دار یا حتی قرار دادن جداول پیچیده استفاده کرده باشید. وقتی این فایل رو ایمپورت میکنید، ووکامرس تمام این فرمت بندی‌ها رو حفظ میکنه و توضیحات محصول در فروشگاه شما دقیقا همونطور که میخواستید نمایش داده میشه.

    حفظ امنیت

    نکته مهم اینه که این قابلیت جدید، امنیت سایت رو به خطر نمیندازه. ایمپورت کننده پیشرفته همچنان استانداردهای امنیتی رو برای جلوگیری از ورود کدهای مخرب رعایت میکنه و فقط به کدهای HTML استاندارد و بی‌خطر اجازه ورود میده. پس دیگه نیازی به استفاده از راه حل‌های ناامن قبلی نیست.

    این بهبود، فرایند به‌روزرسانی‌های انبوه (bulk updates) و مهاجرت از پلتفرم‌های دیگه رو بسیار ساده‌تر و کارآمدتر از قبل میکنه و در زمان مدیران فروشگاه صرفه‌جویی قابل توجهی به همراه داره.


    سایر ویژگی‌ها و به‌روزرسانی‌های جدید

    علاوه بر تغییرات بزرگی که تا اینجا بررسی کردیم، ووکامرس ۱۰.۰ شامل چندین ویژگی و بهبود جدید دیگه هم هست که تجربه کار با این پلتفرم رو هم برای مدیران فروشگاه و هم برای مشتریان بهتر میکنه. در ادامه به این موارد میپردازیم.

    سفارشی سازی متن نشان «حراج» برای بلاک‌ها (Customize sale badge text for blocks)

    در فروشگاه‌های ووکامرس، محصولاتی که در حراج هستن یک نشان «Sale!» یا «حراج!» دارن. قبلا، تغییر این متن به سادگی امکان پذیر نبود، به خصوص در طرح‌بندی‌های مبتنی بر بلاک.

    با تغییری که در درخواست شماره #57914 اعمال شده، یک فیلتر جدید به نام woocommerce_sale_badge_text اضافه شده. این فیلتر به توسعه دهندگان اجازه میده تا کنترل کاملی روی متن نشان حراج که روی محصولات در طرح‌بندی‌های مبتنی بر بلاک نمایش داده میشه، داشته باشن.

    این فیلتر فقط در بخش کاربری سایت (frontend) کار میکنه و آبجکت کامل محصول رو دریافت میکنه. این یعنی میشه متن نشان رو به صورت پویا و بر اساس اطلاعات محصول تغییر داد. برای مثال، میشه برای دسته‌بندی‌های مختلف یا انواع محصولات مختلف، پیام‌های متفاوتی نمایش داد. مثلا برای یک دسته بندی خاص، به جای «حراج»، متن «پیشنهاد ویژه» رو نشون داد.

    نشانگرهای بارگذاری هوشمند در بلاک پرداخت (Intelligent Checkout Block loading indicators)

    تجربه کاربری در صفحه پرداخت خیلی مهمه. هر مکث یا بارگذاری اضافی میتونه باعث بشه مشتری از خرید منصرف بشه. قبلا در بلاک پرداخت (Checkout Block)، هر تغییری در فیلدهای آدرس، حتی تغییر نام یا شماره تلفن، باعث میشد نشانگرهای بارگذاری گزینه‌های حمل و نقل نمایش داده بشن، در حالی که این فیلدها تاثیری روی هزینه حمل و نقل ندارن.

    در بهبود اعمال شده با شماره #57374، بلاک پرداخت بهینه سازی شده. حالا نشانگرهای بارگذاری گزینه‌های حمل و نقل فقط زمانی نمایش داده میشن که فیلدهایی که واقعا روی محاسبه هزینه حمل و نقل تاثیر دارن، تغییر کنن.

    این فیلدهای ضروری عبارتند از: کشور (country)، استان (state)، کد پستی (postal code) یا شهر (city). تغییر در سایر فیلدها مثل نام، خطوط آدرس، نام شرکت یا شماره تلفن، دیگه باعث به‌روزرسانی غیرضروری گزینه‌های حمل و نقل نمیشه. این تغییر باعث میشه خریداران انیمیشن‌های بارگذاری کمتری ببینن و وقتی آدرسشون رو ویرایش میکنن، صفحه پرداخت سریع‌تر و روان‌تر به نظر برسه.

    ادغام تنظیمات پرداخت در فرایند «فروشگاه خود را راه اندازی کنید»

    راه اندازی یک فروشگاه جدید میتونه برای کاربران تازه کار کمی پیچیده باشه. یکی از مهمترین مراحل، تنظیم درگاه‌های پرداخته. در نسخه ۹.۹ ووکامرس، تجربه راه اندازی بومی WooPayments معرفی شد که موفقیت آمیز بود.

    حالا در نسخه ۱۰.۰ و با تغییر اعمال شده در #58291، این قابلیت گسترش پیدا کرده و تنظیمات پرداخت با فرایند «فروشگاه خود را راه اندازی کنید» (Launch Your Store) ادغام شده. هدف اینه که به کاربران کمک بشه فروشگاهشون رو به طور کامل راه اندازی کنن و برای شروع فروش با ووکامرس آماده بشن.

    با این ادغام، کاربران تمام ابزارهای لازم رو برای فعال کردن فروشگاهشون و شروع به پردازش پرداخت‌های واقعی در اختیار دارن، بدون اینکه نیاز باشه به بخش‌های دیگه پنل مدیریت ووکامرس مراجعه کنن. کاربران میتونن به طور کامل در WooPayments ثبت نام کنن یا به حالت پردازش پرداخت‌های واقعی سوییچ کنن، همه این کارها مستقیما از داخل صفحات راهنمای Launch Your Store قابل انجامه. این کار فرایند راه اندازی رو برای کاربران جدید بسیار ساده‌تر و یکپارچه‌تر میکنه.


    نگاه اولیه به ویژگی‌های آزمایشی (First Looks)

    ووکامرس ۱۰.۰ دو بلاک جدید و مهم رو در حالت بتا (آزمایشی) معرفی کرده. این بلاک‌ها در آینده نقش مهمی در سفارشی سازی صفحات محصول ایفا خواهند کرد. در ادامه با این دو ویژگی جدید آشنا میشیم.

    بلاک «افزودن به سبد خرید + گزینه‌ها» (Add to Cart + Options – Beta)

    با حذف فلگ‌های ویژگی در درخواست شماره #58602، حالا بلاک «افزودن به سبد خرید + گزینه‌ها» در حالت بتا برای تمام قالب‌های مبتنی بر بلاک در دسترسه. این بلاک جدید برای استفاده در صفحه «تک محصول» (Single Product) یا داخل بلاک «تک محصول» طراحی شده.

    هدف اصلی این بلاک، دادن قدرت سفارشی سازی فرم افزودن به سبد خرید به مدیران فروشگاهه. با استفاده از این بلاک، شما میتونید:

    • اجزای داخلی فرم رو مجددا سازماندهی کنید: مثلا جای دکمه افزودن به سبد و انتخاب تعداد رو عوض کنید.
    • بلاک‌های داخلی رو حذف یا اضافه کنید: اجزای غیر ضروری رو حذف کنید یا المان‌های جدیدی اضافه کنید.
    • استایل‌ها رو تنظیم کنید: رنگ، اندازه و ظاهر هر بخش از فرم رو مطابق با طراحی سایتتون تغییر بدید.

    یک نکته بسیار مهم اینه که این تغییرات به ازای هر نوع محصول (per product type) اعمال میشه. این یعنی شما میتونید فرم افزودن به سبد خرید برای محصولات متغیر (variable products) یا محصولات گروهی (grouped products) رو به شکل پیچیده‌ای سفارشی سازی کنید، بدون اینکه این تغییرات روی فرم محصولات ساده تاثیر بذاره.

    علاوه بر گزینه‌های سفارشی سازی، این بلاک تجربه افزودن محصول به سبد خرید رو برای خریداران هم بهتر میکنه:

    • ساخته شده بر پایه Interactivity API: این تکنولوژی به کاربران اجازه میده محصولات رو به سبد خرید اضافه کنن بدون اینکه صفحه دوباره بارگذاری (reload) بشه. این باعث میشه تجربه خرید خیلی سریع‌تر و روان‌تر باشه.
    • همگام سازی زنده با سایر بلاک‌ها: تغییر در تعداد محصول از بلاک «سبد خرید کوچک» (Mini-Cart) یا «مجموعه محصولات» (Product Collection) به صورت آنی در بلاک «افزودن به سبد خرید + گزینه‌ها» هم منعکس میشه و برعکس. همه اینها بدون نیاز به رفرش کردن صفحه اتفاق میفته.
    • حالت نمایش جدید «Pills» برای ویژگی‌های متغیر: به جای منوهای کشویی (dropdowns) سنتی برای انتخاب ویژگی‌های محصول متغیر (مثل رنگ یا سایز)، حالا یک حالت نمایش جدید به اسم Pills وجود داره که انتخاب رو برای کاربر جذاب‌تر و شهودی‌تر میکنه.

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

    بلاک «گالری محصول» (Product Gallery – Beta)

    در راستای دادن کنترل بیشتر روی تصاویر، ساختار بلاک گالری محصول در درخواست شماره #58651 تغییر کرده و حالا از «تصویر محصول» (Product Image) برای نمایش تصاویر استفاده میکنه.

    نکته بسیار مهم: این یک تغییر شکننده (breaking change) است. این تغییر برای آینده‌نگر کردن بلاک ضروری بوده و تیم توسعه دهنده میخواسته قبل از پایدار شدن بلاک، این تغییر رو اعمال کنه.

    اقدام لازم برای کاربران: کاربرانی که قبل از ووکامرس ۱۰.۰ از بلاک «گالری محصول (بتا)» استفاده کردن، باید به ویرایشگر (Editor) جایی که از این بلاک استفاده کردن برن، بلاک رو حذف کنن و دوباره اون رو وارد کنن (reinsert).

    برای اینکه کاربران فرصت کافی برای این کار داشته باشن، یک دوره مهلت (grace period) دو نسخه‌ای (تا ووکامرس ۱۰.۲) در نظر گرفته شده. در این مدت، بلاک حتی بدون وارد کردن مجدد هم کار میکنه. اما تیم توسعه قصد داره در ووکامرس ۱۰.۲ پل سازگاری (compatibility bridge) رو حذف کنه و اگه این کار انجام نشده باشه، بلاک در بخش کاربری سایت دچار مشکل خواهد شد. پس حتما این کار رو در سایت‌هایی که از این بلاک استفاده کردن، انجام بدید.


    سایر اطلاعات مهم فنی

    در این بخش به چند تغییر فنی مهم دیگه در ووکامرس ۱۰.۰ میپردازیم که بیشتر برای توسعه دهندگان و مدیران فنی سایت اهمیت داره. این تغییرات به بهبود عملکرد و قابلیت نگهداری کد کمک میکنن.

    استفاده از CSS Container Queries برای بلاک‌های سبد خرید و پرداخت

    یکی از چالش‌های طراحی واکنش‌گرا (Responsive Design) اینه که استایل یک المان بر اساس عرض والد (parent) خودش تغییر کنه، نه فقط بر اساس عرض کل صفحه. قبلا برای این کار در بلاک‌های سبد خرید و پرداخت، از کلاس‌هایی مثل .is-large استفاده میشد که بعد از بارگذاری DOM با جاوا اسکریپت به صفحه اضافه میشدن. این روش میتونست باعث پرش‌های طرح‌بندی (layout shifts) و کثیف شدن کد بشه.

    با تغییری که در درخواست شماره #58476 اعمال شده، توسعه دهندگان حالا میتونن از CSS Container Queries (@container) استفاده کنن. این ویژگی مدرن CSS به اونها اجازه میده تا استایل کامپوننت‌های فرزند رو بر اساس عرض کامپوننت والدشون تنظیم کنن. این کار نیاز به کلاس‌های جاوا اسکریپتی رو از بین میبره و باعث میشه استایل‌ها تمیزتر باشن و پرش‌های طرح‌بندی کمتری اتفاق بیفته.

    نکته مهم برای سازگاری اینه که کلاس‌های قدیمی همچنان برای حفظ سازگاری (compatibility) باقی موندن، اما توصیه میشه که توسعه دهندگان برای پروژه‌های جدید از رویکرد جدید Container Queries استفاده کنن. برای اطلاعات و دستورالعمل‌های کامل‌تر، یک راهنمای توسعه دهنده منتشر شده.

    ساده سازی بخش مجموع سبد خرید در بلاک سبد خرید (Simplified Cart Block Totals)

    صفحه سبد خرید باید تا حد امکان ساده و سرراست باشه تا مشتری رو به سمت مرحله بعدی، یعنی پرداخت، هدایت کنه. در نسخه‌های قبلی، در بلاک سبد خرید یک ماشین حساب حمل و نقل وجود داشت که میتونست باعث پیچیدگی و سردرگمی بشه.

    با تغییری که در درخواست شماره #58066 اعمال شده، پیچیدگی بخش مجموع سبد خرید (Cart Block totals) کاهش پیدا کرده. این کار از طریق حذف ماشین حساب حمل و نقل، بهبود متن‌ها و پنهان کردن مقادیر تکراری انجام شده.

    منطق جدید اینه که مشتریان هزینه حمل و نقل رو در حین پرداخت و بعد از اینکه آدرسشون رو وارد کردن، محاسبه میکنن. یا اگه امکانش باشه، میتونن گزینه «دریافت حضوری» (Local Pickup) رو انتخاب کنن. هدف اصلی این تغییر اینه که مشتریان رو به سمت صفحه پرداخت سوق بده به جای اینکه در صفحه سبد خرید فرم پر کنن. این کار همچنین پیچیدگی‌های مربوط به نمایش همزمان نرخ‌های دریافت حضوری (که نیازی به آدرس نداره) و نرخ‌های حمل و نقل (که به آدرس نیاز داره) رو در صفحه سبد خرید از بین میبره.

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

    این تغییر برای گروه‌های مختلف مزایایی داره:

    • توسعه دهندگان (Developers): با نقاط ادغام کمتری سر و کار دارن چون نرخ‌های حمل و نقل فقط در صفحه پرداخت نمایش داده میشه. کد کمتری برای نگهداری وجود داره و باگ‌های مربوط به موارد خاص (edge cases) که به خاطر سیستم دریافت حضوری و ورود آدرس ناقص پیش میومد، کمتر میشه.
    • فروشندگان (Merchants): میتونن انتظار داشته باشن که مشکلات مربوط به نمایش نرخ‌های نادرست در صفحه سبد خرید به دلیل ورود آدرس ناقص یا نادرست در ماشین حساب حمل و نقل، کمتر بشه.
    • مشتریان (Customers): از یک جریان خرید ساده‌تر و بدون فرم‌های غیر ضروری لذت میبرن. همچنین سردرگمی کمتری در مورد اینکه چرا نرخ دریافت حضوری نمایش داده میشه ولی نرخ حمل و نقل نه، به وجود میاد، چون نرخ حمل و نقل بعد از وارد کردن آدرس نشون داده میشه.

    به‌روزرسانی‌های پایگاه داده (Database Updates)

    همونطور که در ابتدا اشاره شد، نسخه ۱۰.۰ ووکامرس شامل به‌روزرسانی‌هایی برای پایگاه داده است. این به‌روزرسانی‌ها به صورت خودکار با اپدیت پلاگین اجرا میشن. دو اپدیت اصلی در این نسخه عبارتند از:

    • wc_update_1000_multisite_visibility_setting (PR #58613)
    • wc_update_1000_remove_patterns_toolkit_transient (PR #58528)

    این اپدیت‌ها برای بهبود عملکرد و سازگاری در ساختارهای خاص مثل شبکه‌های چندسایتی (multisite) و حذف داده‌های موقت (transient) غیر ضروری طراحی شدن.


    انتشار نسخه‌های اصلاحی ۱۰.۰.۱ و ۱۰.۰.۲

    پس از انتشار نسخه اصلی ۱۰.۰، تیم ووکامرس دو نسخه اصلاحی (Dot Release) با شماره‌های ۱۰.۰.۱ و ۱۰.۰.۲ رو هم منتشر کرد. هدف از این نسخه‌ها، برطرف کردن سریع مشکلاتی بود که بعد از انتشار نسخه اصلی در چرخه 10.0.x شناسایی شدن.

    بر اساس اطلاعات منتشر شده، ووکامرس ۱۰.۰.۲ به عنوان اولین نسخه پایدار (stable release) از سری 10.0.x در نظر گرفته میشه. این نسخه در تاریخ ۱۴ جولای ۲۰۲۵ منتشر شده.

    در ادامه به جزئیات اصلاحاتی که در هر یک از این نسخه‌ها ارائه شده، میپردازیم.

    تغییرات در نسخه 10.0.1

    در این نسخه یک مشکل مهم برطرف شد:

    • اصلاح خطای strict types در کنترل کننده نشست (session handler) (#59479)
    • شرح مشکل: این مشکل به یک کامیت قبلی برمیگشت که برای راضی کردن ابزار phpcs (یک ابزار بررسی استاندارد کدنویسی)، تعریف strict_types رو به کد اضافه کرده بود. اما مشخص شد که در شرایط خاصی (مثل استفاده از نسخه‌های جدیدتر PHP یا زمانی که چیزی از تابع wp_nonce_url با مقدار پیشفرض ۱- استفاده میکرد)، این تعریف نوع سختگیرانه باعث یک خطای مرگبار (fatal error) میشد که میتونست سایت رو از کار بندازه.
    • راه حل: در این PR، اون کامیت قبلی برگردانده شد (revert) تا این مشکل برطرف بشه.

    تغییرات در نسخه 10.0.2

    این نسخه هم شامل اصلاحات مهمی برای پایداری بیشتر بود:

    • بازگرداندن رفتار قبلی init_session_cookie برای جلوگیری از تداخل با کلاس‌هایی که WC_Session_Handler رو گسترش میدن (#59530)
    • شرح مشکل: دو تغییر جداگانه در کنترل کننده نشست (session handler) اصلی ووکامرس، باعث ایجاد دو تداخل با نحوه بازنویسی این کنترل کننده توسط افزونه WooCommerce Payments شده بود. علاوه بر این، بعضی از فراخوانی‌ها به تابع CartTokenUtils::get_cart_token که انتظار دریافت یک رشته متنی (string) رو داشت، به اندازه کافی مقاوم سازی نشده بودن.
    • راه حل: این اصلاحیه، تداخلات با کنترل کننده نشست WooCommerce Payments رو برطرف میکنه و فراخوانی‌های مربوط به get_cart_token رو مقاوم‌تر میکنه تا از بروز خطا جلوگیری بشه.

    این نسخه‌های اصلاحی نشون میده که تیم توسعه به سرعت به گزارش‌های کاربران واکنش نشون داده و برای پایدار کردن نسخه جدید تلاش کرده. توصیه میشه که کاربران همیشه از آخرین نسخه پایدار، یعنی ۱۰.۰.۲، استفاده کنن.


    بازخوردها و پرسش و پاسخ‌های جامعه کاربری

    بعد از انتشار هر نسخه جدیدی از ووکامرس، جامعه کاربری شامل توسعه دهندگان، مدیران فروشگاه و کاربران عادی شروع به بررسی و استفاده از ویژگی‌های جدید میکنن و بازخوردها و سوالاتشون رو در بخش نظرات وبلاگ رسمی ووکامرس و انجمن‌های دیگه به اشتراک میذارن. این تعاملات میتونه دید خوبی نسبت به نحوه دریافت این تغییرات توسط کاربران و مشکلات احتمالی که با اونها روبرو شدن، به ما بده. در ادامه، مروری بر برخی از مهمترین پرسش و پاسخ‌هایی که در مورد نسخه ۱۰.۰ و نسخه‌های اصلاحی اون مطرح شده، خواهیم داشت.

    سوال در مورد قالب جدید Woo Theme

    یکی از سوالات پرتکرار که توسط چندین کاربر از جمله کاربری به نام nam در تاریخ‌های ۱۴ و ۱۵ جولای ۲۰۲۵ و همچنین کاربری به نام Andrew در ۱۵ جولای ۲۰۲۵ مطرح شد، در مورد قالب جدید ووکامرس (Woo Theme) بود. این کاربران انتظار داشتن که این قالب همزمان با ووکامرس ۱۰.۰ منتشر بشه.

    • پاسخ تیم ووکامرس: Brian Coords، از اعضای تیم، در پاسخ به این کاربران توضیح داد که جدول زمانی انتشار قالب جدید وو تغییر کرده و جزئیات بیشتر در یک پست وبلاگ جداگانه با عنوان «ما برای آماده کردن قالب بلاک وو برای شما چه کارهایی انجام میدهیم؟» در دسترس قرار گرفته. این نشون میده که انتشار قالب به زمان بیشتری نیاز داره و از انتشار نسخه ۱۰.۰ جدا شده.

    ابهام در مورد لینک‌های پرداخت قابل اشتراک گذاری

    کاربری به نام HOSEIN در تاریخ ۱۴ جولای ۲۰۲۵ سوالی در مورد نحوه کارکرد ویژگی «لینک‌های پرداخت قابل اشتراک گذاری» مطرح کرد. او پرسید که آیا این لینک‌ها باید به صورت دستی ساخته بشن؟ تصور او این بود که در بخش مدیریت سفارشات، امکانی برای ایجاد یک سفارش برای کاربر و ارسال لینک پرداخت به او وجود خواهد داشت.

    • پاسخ تیم ووکامرس: Brian Coords در پاسخ تایید کرد که در حال حاضر، این لینک‌ها باید به صورت دستی ساخته بشن و هیچ صفحه یا رابط کاربری در پنل مدیریت برای ساختن اونها وجود نداره. او همچنین برای نیازمندی خاص کاربر (ارسال لینک پرداخت برای یک سفارش مشخص)، به مستندات مربوط به صفحه پرداخت مشتری لینک داد.

    گزارش یک تغییر شکننده (Breaking Change) مهم

    کاربری به نام Marc در ۱۵ جولای ۲۰۲۵ یک نکته بسیار مهم رو گزارش کرد. او اشاره کرد که یک تغییر شکننده مهم که در اطلاعیه اولیه ذکر نشده، مربوط به بلاک «جزئیات محصول» (Product Details) هست. این بلاک حالا از بلاک‌های داخلی و طرح آکاردئونی استفاده میکنه و نسخه زبانه‌ای (tabbed) قبلی حفظ نشده.

    • پاسخ تیم ووکامرس: Tung Du، یکی دیگر از اعضای تیم، به سرعت به این گزارش پاسخ داد. او ضمن تشکر از کاربر، تایید کرد که این مورد باید در اطلاعیه ذکر میشد. او توضیح داد که سایت‌های موجود باید به استفاده از زبانه‌ها ادامه بدن و لایه سازگاری باید طرح زبانه‌ای رو برای نسخه‌های قبلی بلاک نمایش بده. اما مشکل اینجا بود که هنگام ویرایش قالب تک محصول، بلاک جدید به صورت خودکار اعمال میشد. او یک راه حل موقت ارائه داد (حذف بلاک آکاردئون تو در تو و ذخیره قالب) و اعلام کرد که تیم در حال کار روی یک اصلاحیه برای جلوگیری از این ارتقا خودکار هست. این تعامل نشون دهنده اهمیت گزارش‌های کاربران در شناسایی مشکلاته.

    مشکلات سازگاری با افزونه‌ها و سرویس‌ها

    • EasyShip: دو کاربر به نام‌های Tina (در ۱۷ جولای) و Kathryn Dittmeier (در ۱۸ جولای) گزارش دادن که بعد از اپدیت به نسخه جدید، اتصالشون با سرویس حمل و نقل EasyShip دچار مشکل شده و نمیتونن نرخ‌های حمل و نقل رو دریافت کنن.
      • پاسخ تیم ووکامرس: Brent MacKinnon و John Hsu از تیم ووکامرس به این گزارش‌ها پاسخ دادن. جان هسو در ۱۸ جولای خبر داد که EasyShip مشکل رو در تاریخ ۱۷ جولای برطرف کرده و از کاربران خواست دوباره تلاش کنن. این نشون میده که گاهی مشکلات به افزونه‌ها و سرویس‌های ثالث مربوط میشه که باید خودشون رو با نسخه جدید ووکامرس سازگار کنن.
      • WPML: کاربری به نام Kaur در ۱۵ جولای اشاره کرد که ویژگی COGS (هزینه کالاهای فروخته شده) که هنوز در حالت بتاست، با افزونه WPML سازگار نیست و هزینه باید به صورت دستی برای هر محصول در هر زبان وارد بشه.
        • پاسخ تیم ووکامرس: برایان کوردز تایید کرد که COGS هنوز در حالت بتاست و به کاربر توصیه کرد که از نویسندگان افزونه WPML WooCommerce Multilingual درخواست کنه تا سازگاری با این ویژگی رو اضافه کنن.
        • Zapier: کاربری به نام Marco در ۲۰ جولای گزارش داد که بعد از اپدیت، Zap های او، به خصوص تریگر order.created، دیگه کار نمیکنن. این نوع گزارش‌ها برای کاربرانی که از اتوماسیون استفاده میکنن بسیار مهمه.

        پیشنهادات برای ویژگی‌های جدید

        • کوپن سراسری از طریق لینک: کاربری به نام David Marchiori در ۱۶ جولای یک پیشنهاد جالب مطرح کرد. او گفت که ایده آل میشد اگه ووکامرس اجازه اشتراک گذاری لینکی رو میداد که یک کوپن رو در کل سایت فعال میکرد، نه فقط در صفحه پرداخت. اینطوری مشتری میتونست با کوپن فعال شده در سایت بگرده و تخفیف‌ها رو هنگام اضافه کردن محصولات ببینه.
          • پاسخ تیم ووکامرس: برایان کوردز در پاسخ گفت که اگرچه این یک ویژگی اصلی در ووکامرس نیست، اما افزونه‌های متعددی در مارکت‌پلیس ووکامرس وجود دارن که چنین قابلیتی رو ارائه میدن.
          • ایجاد خودکار حساب کاربری از سفارش مهمان: کاربری به نام Sridhar در ۱۵ جولای پیشنهاد داد که قابلیتی برای ایجاد خودکار حساب کاربری از سفارش مهمان و لینک کردن سفارشات قبلی به حساب جدید، به هسته ووکامرس اضافه بشه. او اشاره کرد که پلاگینی برای این کار وجود داره اما با HPOS سازگار نیست.

          این بازخوردها و بحث‌ها بخش مهمی از اکوسیستم ووکامرس هستن و به بهبود مستمر این پلتفرم کمک میکنن.


          مشارکت کنندگان در توسعه هسته ووکامرس

          موفقیت یک پروژه متن باز (Open Source) بزرگ مثل ووکامرس، مدیون تلاش جمعی تعداد زیادی از توسعه دهندگان، طراحان، تسترها و مدیران محصول از سراسر دنیاست. در اطلاعیه رسمی نسخه ۱۰.۰، از ۶۷ فردی که در توسعه این نسخه مشارکت داشتن، قدردانی شده. این افراد با ثبت ۴۰۵ کامیت (تغییرات کد)، به شکل‌گیری این نسخه کمک کردن.

          لیست مشارکت کنندگان (Code Contributors) که در این نسخه نقش داشتن، شامل اسامی زیر میشه. هر یک از این افراد، بخشی از پازل بزرگ توسعه ووکامرس ۱۰.۰ بودن. این لیست به خوبی نشون دهنده تنوع و گستردگی جامعه توسعه دهندگان ووکامرسه.

          در اینجا اسامی این افراد آورده شده است:

          jaclync, opr, AhmarZaidi, bor0, NeosinneR, amitraj2203, omoikane, kalessil, yuliyan, MaggieCabrera, louwie17, axi, oaratovskyi, adimoldovan, chihsuan, Konamiman, CacheMeOwside, piinthecloud, joshuatf, costasovo, gigitux, mordeth, samueljseay, jimjasson, senadir, pavel-mailpoet, tjcafferkey, albarin, nerrad, raicem, wjrosa, mikachan, szepeviktor, KokkieH, Manussakis, roccotripaldi, jorgeatorres, mcliwanow, elazzabi, vladolaru, kdo, mikejolley, slash1andy, dinhtungdu, straku, ralucaStan, dmallory42, bacoords, Kallyan01, lysyjan, Luc45, shaybanshee, BurakParsAydin, mahfuzurwp, naman03malhotra, thilinah, prettyboymp, kmanijak, jufreitas97, sunyatasattva, Aljullu, PanosSynetos, PraveenKum11, tpaksu, triple0t

          این لیست بلند بالا از اسامی، نشان دهنده روح همکاری در جامعه وردپرس و ووکامرسه. هر کدام از این افراد، چه با رفع یک باگ کوچک و چه با توسعه یک ویژگی بزرگ، در بهتر شدن تجربه میلیون‌ها کاربر ووکامرس در سراسر جهان سهیم بودن. قدردانی از این افراد، بخش مهمی از فرهنگ پروژه‌های متن باز به شمار میره.

          منابع

        • همه چیز درباره وردپرس ۶.۸.۲

          در تاریخ ۱۵ جولای ۲۰۲۵، نسخه جدیدی از وردپرس با شماره ۶.۸.۲ به صورت عمومی منتشر شد. این نسخه یک آپدیت نگهدارنده یا «Maintenance Release» به حساب میاد، یعنی بیشتر با هدف رفع اشکالات و بهبودهای جزئی ارائه شده و قرار نیست ویژگی‌های خیلی بزرگ و جدیدی رو به سیستم اضافه کنه. اگه از کاربران وردپرس هستین، این مقاله به شما کمک میکنه تا با تمام جنبه‌های این آپدیت جدید آشنا بشین، از نحوه نصب و به‌روزرسانی گرفته تا جزئیات فنی و لیستی از تغییرات اعمال شده.

          این آپدیت نتیجه تلاش یک تیم بزرگ از توسعه‌دهندگان وردپرسه و به طور خاص توسط سه نفر به نام‌های Jb Audras، Estela Rueda و Zunaid Amin رهبری شده. در این نسخه، تمرکز اصلی روی پایداری و رفع باگ‌ها بوده. به طور مشخص، این آپدیت شامل رفع مشکل برای ۲۰ تیکت هسته وردپرس (Core tickets) و ۱۵ مشکل مربوط به ویرایشگر بلوک (Block Editor) میشه. اگه دوست دارین لیست کامل این اصلاحات رو ببینین، میتونین به اطلاعیه رسمی انتشار این نسخه نگاهی بندازین.

          این به‌روزرسانی از نوع «short-cycle» یا چرخه کوتاه هست، به این معنی که در طول سال ۲۰۲۵ ممکنه باز هم شاهد انتشار نسخه‌های نگهدارنده دیگه‌ای باشیم تا سیستم همچنان پایدار و بهینه باقی بمونه.

          چطوری وردپرس 6.8.2 رو نصب یا بهش آپدیت کنیم؟

          برای دریافت این نسخه جدید، دو راه اصلی پیش روی شماست. ساده‌ترین راه، آپدیت خودکار از طریق پنل مدیریت سایتتونه. برای این کار کافیه به بخش «داشبورد» و بعد منوی «به‌روزرسانی‌ها» (Dashboard > Updates) برین و از اونجا فرایند آپدیت رو شروع کنین. راه دوم اینه که به وب‌سایت https://wordpress.org/download/release-archive/ مراجعه کنین و فایل‌های نسخه جدید رو به صورت دستی دانلود و نصب کنین.

          اگه تازه با دنیای وردپرس آشنا شدین، منابع خوبی برای شروع وجود داره. مستنداتی مثل «New To WordPress – Where to Start» و «First Steps With WordPress» میتونن راهنمای خوبی برای شما باشن. همچنین برای کاربرای حرفه‌ای‌تر که میخوان جزئیات بیشتری از فرایند ارتقا بدونن، راهنمای «Upgrading WordPress Extended» توصیه میشه.

          یکی از نکات مهمی که همراه با این آپدیت اعلام شده، اینه که پشتیبانی امنیتی برای نسخه‌های قدیمی وردپرس، یعنی نسخه‌های ۴.۱ تا ۴.۶، متوقف شده. این یعنی این نسخه‌ها دیگه هیچ آپدیت امنیتی دریافت نمیکنن و استفاده از اونها میتونه ریسک‌های امنیتی برای سایت شما به همراه داشته باشه. پس اگه هنوز از این ورژن‌های قدیمی استفاده میکنین، حتما به فکر ارتقا به نسخه‌های جدیدتر باشین.

          راهنمای کامل آپدیت کردن وردپرس

          قبل از اینکه هر کاری رو شروع کنین، یک هشدار خیلی مهم وجود داره که باید بهش توجه کنین.

          هشدار: فرایند آپدیت روی تمام فایل‌ها و پوشه‌های اصلی وردپرس شما تاثیر میذاره. این شامل تمام فایل‌های هسته میشه که برای اجرای وردپرس ضروری هستن. اگه شما هر تغییری توی این فایل‌های اصلی داده باشین، تمام تغییراتتون از بین خواهد رفت.

          همیشه بهترین کار اینه که وردپرس خودتون رو به آخرین نسخه موجود آپدیت کنین. هر وقت نسخه جدیدی منتشر بشه، یک پیغام توی پنل مدیریت وردپرس به شما نمایش داده میشه. برای شروع آپدیت، کافیه روی لینک داخل اون پیغام کلیک کنین. دو روش کلی برای آپدیت وجود داره: روش تک کلیکی که برای اکثر کاربرا جواب میده و روش دستی که برای کساییه که کنترل بیشتری روی فرایند میخوان یا روش اول براشون کار نکرده.

          مرحله اول: حتما از سایتتون بکاپ بگیرین

          قبل از هر آپدیتی، بهترین و هوشمندانه‌ترین کار اینه که یک نسخه پشتیبان کامل از وب‌سایتتون تهیه کنین. اینطوری اگه در حین آپدیت هر مشکلی پیش بیاد، شما میتونین به راحتی سایتتون رو به حالت قبل برگردونین. برای دستورالعمل‌های کامل در مورد نحوه بکاپ گرفتن، میتونین به راهنمای «WordPress Backup» مراجعه کنین.

          روش اول: آپدیت‌های خودکار و تک کلیکی

          از وردپرس نسخه ۳.۷ به بعد، برای آپدیت‌های جزئی و امنیتی لازم نیست کار خاصی انجام بدین. بیشتر سایت‌ها طوری تنظیم شدن که این نوع آپدیت‌ها رو به صورت خودکار در پس‌زمینه انجام بدن. اگه سایت شما قابلیت آپدیت تک کلیکی رو بدون نیاز به وارد کردن اطلاعات FTP داره، پس احتمالا میتونه به صورت خودکار از نسخه ۳.۷ به ۳.۷.۱ یا ۳.۷.۲ و نسخه‌های مشابه آپدیت بشه. البته برای آپدیت‌های بزرگ که ویژگی‌های جدیدی به سیستم اضافه میکنن، هنوزم باید خودتون روی دکمه «اکنون به‌روزرسانی کنید» کلیک کنین.

          برای شروع آپدیت تک کلیکی، میتونین روی لینکی که در بنر اطلاع‌رسانی نسخه جدید نمایش داده میشه کلیک کنین یا به صفحه «داشبورد > به‌روزرسانی‌ها» برین. در این صفحه، با کلیک روی دکمه «اکنون به‌روزرسانی کنید» (Update Now)، فرایند شروع میشه. در حالت عادی شما نیاز به انجام کار دیگه‌ای ندارین و بعد از چند لحظه، سایت شما به آخرین نسخه آپدیت میشه.

          مشکلات احتمالی آپدیت تک کلیکی

          این روش روی بیشتر سرورها به خوبی کار میکنه، اما اگه با مشکلی مواجه شدین، به احتمال زیاد مربوط به سطح دسترسی فایل‌ها روی سرور شماست.

          • مالکیت فایل‌ها (File Ownership): وردپرس بر اساس مالکیت فایل‌های روی سرور شما تصمیم میگیره که چطور به فایل سیستم دسترسی پیدا کنه. اگه مالک فایل‌ها همون کاربری باشه که وب سرور باهاش کار میکنه، وردپرس میتونه مستقیما فایل‌ها رو تغییر بده. اما اگه مالکیت فایل‌ها با حساب کاربری دیگه‌ای (معمولا حساب FTP که فایل‌ها رو آپلود کرده) باشه، وردپرس نمیتونه مستقیما فایل‌ها رو تغییر بده. در این حالت، یک کادر محاوره‌ای به شما نشون داده میشه و ازتون میخواد که اطلاعات اتصال FTP رو وارد کنین تا بتونه فرایند آپدیت رو انجام بده. اینکه مالکیت فایل‌ها چطور تنظیم شده باشه، به نحوه نصب وردپرس و تنظیمات سرور شما بستگی داره.
          • آپدیت ناموفق: اگه بعد از تلاش برای آپدیت با پیغام «failed update» مواجه شدین، نگران نباشین. کافیه با استفاده از FTP به ریشه هاستتون برین و فایلی به اسم .maintenance رو پیدا و حذف کنین. این کار باعث میشه اون پیغام خطا از بین بره.

          اگه آپدیت تک کلیکی به هر دلیلی برای شما کار نکرد، اصلا جای نگرانی نیست. فقط کافیه روش آپدیت دستی رو امتحان کنین.

          روش دوم: آپدیت دستی وردپرس

          این دستورالعمل‌ها به صورت خلاصه بیان شدن. اگه در حین انجام این مراحل به مشکلی برخوردین، بهتره به «دستورالعمل‌های ارتقا به صورت مفصل» مراجعه کنین. در این راهنما فرض شده که آدرس سایت شما http://example.com/wordpress/ هست.

          مرحله ۱: جایگزین کردن فایل‌های وردپرس
          1. آخرین نسخه وردپرس رو از سایت رسمی (https://wordpress.org/download/) دانلود کنین. این فایل به صورت zip یا tar.gz در دسترسه.
          2. فایلی که دانلود کردین رو از حالت فشرده خارج کنین.
          3. تمام افزونه‌های سایتتون رو غیرفعال کنین.
          4. پوشه‌های قدیمی wp-includes و wp-admin رو از روی هاستتون حذف کنین. این کار رو میتونین از طریق FTP یا دسترسی به شل انجام بدین.
          5. حالا پوشه‌های جدید wp-includes و wp-admin (که از فایل فشرده استخراج کردین) رو به جای پوشه‌های حذف شده روی هاستتون آپلود کنین.
          6. فایل‌های جدیدی که داخل پوشه wp-content نسخه جدید وجود دارن رو به پوشه wp-content موجود روی هاستتون منتقل کنین. خیلی مهمه که کل پوشه wp-content رو حذف نکنین، چون قالب‌ها و افزونه‌های شما داخل این پوشه قرار دارن. فقط فایل‌های جدید رو جایگزین فایل‌های همنام قبلی کنین.
          7. تمام فایل‌های تکی جدیدی که در ریشه نسخه جدید وجود دارن (مثل index.php، wp-login.php و غیره) رو به ریشه وردپرس روی هاستتون آپلود کنین و جایگزین فایل‌های قبلی کنین.

          یک نکته مهم دیگه در مورد پوشه wp-content: شما باید فقط فایل‌های داخل این پوشه رو کپی کنین، نه اینکه کل پوشه رو جایگزین کنین. اگه قالب‌های پیش‌فرض وردپرس رو بدون تغییر نام ویرایش کردین، مراقب باشین که اونها رو بازنویسی نکنین، وگرنه تغییراتتون از بین میره. البته بد نیست فایل wp-config-sample.php رو هم چک کنین تا ببینین تنظیمات جدیدی بهش اضافه شده یا نه که بخواین به فایل wp-config.php خودتون اضافه کنین.

          مرحله ۱.۵: حذف فایل .maintenance

          اگه آپدیت خودکار شما ناموفق بوده و حالا دارین به صورت دستی آپدیت میکنین، فایل .maintenance رو از ریشه هاستتون با استفاده از FTP حذف کنین. این کار پیغام خطای آپدیت ناموفق رو از بین میبره.

          مرحله ۲: آپدیت کردن پایگاه داده

          به صفحه اصلی مدیریت وردپرس در آدرس /wp-admin برین. ممکنه از شما خواسته بشه که دوباره وارد بشین. اگه پایگاه داده شما نیاز به آپدیت داشته باشه، وردپرس این موضوع رو تشخیص میده و به شما یک لینک شبیه به http://example.com/wordpress/wp-admin/upgrade.php نشون میده. روی اون لینک کلیک کنین و دستورالعمل‌ها رو دنبال کنین. این کار پایگاه داده شما رو با آخرین نسخه کدها سازگار میکنه. این مرحله رو باید بلافاصله بعد از مرحله ۱ انجام بدین. یادتون نره که بعد از اتمام کار، افزونه‌هاتون رو دوباره فعال کنین!

          مرحله ۳: یکم به خودتون استراحت بدین

          اگه از سیستم کش (caching) استفاده میکنین، در این مرحله کش سایتتون رو پاک کنین تا تغییرات بلافاصله برای همه بازدیدکننده‌ها (از جمله خودتون) نمایش داده بشه. در غیر این صورت، ممکنه تا مدتی نسخه قدیمی سایت رو ببینین.
          به همین سادگی نصب وردپرس شما با موفقیت آپدیت شد. حالا میتونین یه پست در مورد این آپدیت بنویسین، کتابی که مدت‌هاست میخواستین بخونین رو شروع کنین یا فقط چند لحظه استراحت کنین.

          عیب‌یابی مشکلات بعد از آپدیت

          اگه بعد از آپدیت به مشکلی برخوردین، اولین کار اینه که تمام مراحل رو در «دستورالعمل‌های ارتقا به صورت مفصل» دوباره مرور کنین. اون صفحه اطلاعاتی در مورد رایج‌ترین مشکلاتی که کاربرا باهاش مواجه میشن هم داره.

          • مشکل در سرور IIS: اگه روی سرور IIS با درخواست اطلاعات FTP مواجه شدین، احتمالا مشکل از سطح دسترسی‌هاست. به کنسول مدیریت IIS برین، اپلیکیشن پول (application pool) مربوط به سایتتون رو پیدا کنین و در تنظیمات پیشرفته اون، Process Model Id رو به LocalSystem تغییر بدین. بعد روی سایتتون راست کلیک کرده، Edit permissions رو بزنین و در تب security، کاربرای authenticated رو اضافه کنین.
          • بازگردانی بکاپ: اگه مشکلات حل نشد، همیشه میتونین از بکاپی که گرفتین استفاده کنین و سایتتون رو به حالت قبل برگردونین و فایل‌های نسخه قبلی رو از آرشیو نسخه‌های وردپرس جایگزین کنین.
          • استفاده از wp-cli: اگه با محیط‌های دستوری مثل unix shell آشنایی دارین، میتونین از ابزار wp-cli هم برای مدیریت و آپدیت وردپرس استفاده کنین.

          نگاهی دقیق‌تر به تغییرات فنی وردپرس 6.8.2

          برای کاربرانی که به جزئیات فنی علاقه‌مندن، این آپدیت شامل تغییراتی در تعدادی از فایل‌ها و پکیج‌های داخلی وردپرسه. در ادامه لیست فایل‌هایی که در این نسخه بازبینی و ویرایش شدن رو میبینین.

          لیست فایل‌های تغییر یافته (Change log)

          wp-admin/css/revisions-rtl.css
          wp-admin/css/revisions-rtl.min.css
          wp-admin/css/revisions.css
          wp-admin/css/revisions.min.css
          wp-admin/includes/revision.php
          wp-admin/includes/schema.php
          wp-admin/includes/upgrade.php
          wp-content/themes/twentytwentyfive/functions.php
          wp-content/themes/twentytwentyfive/readme.txt
          wp-content/themes/twentytwentyfive/style.css
          wp-includes/assets/script-loader-packages.min.php
          wp-includes/assets/script-loader-packages.php
          wp-includes/blocks.php
          wp-includes/blocks/button/style-rtl.css
          wp-includes/blocks/button/style-rtl.min.css
          wp-includes/blocks/button/style.css
          wp-includes/blocks/button/style.min.css
          wp-includes/blocks/buttons/style-rtl.css
          wp-includes/blocks/buttons/style-rtl.min.css
          wp-includes/blocks/buttons/style.css
          wp-includes/blocks/buttons/style.min.css
          wp-includes/blocks/post-comments-form/style-rtl.css
          wp-includes/blocks/post-comments-form/style-rtl.min.css
          wp-includes/blocks/post-comments-form/style.css
          wp-includes/blocks/post-comments-form/style.min.css
          wp-includes/certificates/ca-bundle.crt
          wp-includes/class-wp-oembed.php
          wp-includes/comment-template.php
          wp-includes/css/dist/block-editor/style-rtl.css
          wp-includes/css/dist/block-editor/style-rtl.min.css
          wp-includes/css/dist/block-editor/style.css
          wp-includes/css/dist/block-editor/style.min.css
          wp-includes/css/dist/block-library/style-rtl.css
          wp-includes/css/dist/block-library/style-rtl.min.css
          wp-includes/css/dist/block-library/style.css
          wp-includes/css/dist/block-library/style.min.css
          wp-includes/formatting.php
          wp-includes/js/dist/block-editor.js
          wp-includes/js/dist/block-editor.min.js
          wp-includes/js/dist/block-library.js
          wp-includes/js/dist/block-library.min.js
          wp-includes/js/dist/components.js
          wp-includes/js/dist/components.min.js
          wp-includes/js/dist/dom.js
          wp-includes/js/dist/dom.min.js
          wp-includes/js/dist/url.js
          wp-includes/js/dist/url.min.js
          wp-includes/js/twemoji.js
          wp-includes/js/twemoji.min.js
          wp-includes/js/wp-emoji-loader.js
          wp-includes/js/wp-emoji-loader.min.js
          wp-includes/js/wp-emoji-release.min.js
          wp-includes/media.php
          wp-includes/version.php

          لیست پکیج‌های بازبینی شده

          علاوه بر فایل‌ها، نسخه‌های تعدادی از پکیج‌های داخلی وردپرس هم در این آپدیت به‌روز شدن. این پکیج‌ها بخش‌های مختلفی از عملکرد وردپرس رو کنترل میکنن، از ویرایشگر گرفته تا مدیریت داده‌ها.

          پکیجنسخه جدید
          @wordpress/annotations3.19.2
          @wordpress/api-fetch7.19.2
          @wordpress/block-directory5.19.7
          @wordpress/block-editor14.14.6
          @wordpress/block-library9.19.6
          @wordpress/blocks14.8.2
          @wordpress/commands1.19.4
          @wordpress/components29.5.4
          @wordpress/compose7.19.2
          @wordpress/core-commands1.19.6
          @wordpress/core-data7.19.6
          @wordpress/customize-widgets5.19.6
          @wordpress/data10.19.2
          @wordpress/data-controls4.19.2
          @wordpress/dataviews4.15.4
          @wordpress/dom4.19.2
          @wordpress/edit-post8.19.7
          @wordpress/edit-site6.19.7
          @wordpress/edit-widgets6.19.6
          @wordpress/editor14.19.7
          @wordpress/fields0.11.6
          @wordpress/format-library5.19.6
          @wordpress/interface9.4.4
          @wordpress/keyboard-shortcuts5.19.2
          @wordpress/list-reusable-blocks5.19.4
          @wordpress/media-utils5.19.2
          @wordpress/notices5.19.2
          @wordpress/nux9.19.4
          @wordpress/patterns2.19.6
          @wordpress/plugins7.19.4
          @wordpress/preferences4.19.4
          @wordpress/preferences-persistence2.19.2
          @wordpress/reusable-blocks5.19.6
          @wordpress/rich-text7.19.2
          @wordpress/router1.19.2
          @wordpress/server-side-render5.19.4
          @wordpress/sync1.19.2
          @wordpress/upload-media0.4.4
          @wordpress/url4.19.2
          @wordpress/viewport6.19.2
          @wordpress/widgets4.19.6

          تیم توسعه‌دهنده و مشارکت‌کنندگان

          همونطور که گفته شد، این نسخه توسط Jb Audras، Estela Rueda و Zunaid Amin رهبری شده. علاوه بر این، تشکر ویژه‌ای هم از @davidbaumwald، @sergeybiryukov، @mamaduka، @wildworks و @jorbin برای کمک در وظایف خاص مربوط به انتشار این نسخه شده.

          اما انتشار وردپرس 6.8.2 بدون مشارکت ۹۶ نفر از اعضای جامعه وردپرس ممکن نبود. هماهنگی این افراد برای ارائه اصلاحات و بهبودها در یک نسخه پایدار، نشون‌دهنده قدرت و توانایی جامعه وردپرسه. اسامی این افراد به شرح زیره:

          Aaron Jorbin, Adam Silverstein, Adam Zieliński, Aki Hamano, Alex Stine, Anatol Broder, Andrea Fercia, Andrew Nacin, Ankit Kumar Shah, annezazu, Azhar Deraiya, Benjamin Gosset, Brandon Hubbard, Brandon Kraft, brhodes, Carolina Nymark, Chris Zarate, Courtney Robertson, Daniel Richards, Darshit Rajyaguru, David Baumwald, Dennis Snell, Dhruvang21, Dilip Bheda, Dion Hulse, divinenephron, dustintechsmith, Eric Andrew Lewis, Eshaan Dabasiya, Estela Rueda, Evan Herman, Fabian Kägy, Faisal Ahammad, Felix Arntz, Gary Pendergast, Gaurang Dabhi, George Mamadashvili, gernberg, Greg Ziółkowski, Harsh Gajipara, HelgaTheViking, Himanshu Pathak, Jb Audras, Jeffrey Paul, Jenny Dupuy, Jessica Lyschik, Jigar Panchal, Joe Dolson, Joe McGill, John Blackbourn, John Parris, Jon Surrell, Jonathan Desrosiers, Jonny Harris, Kausar Alam, Kishan Jasani, Marin Atanasov, Matt Mullenweg, Matthias Pfefferle, megane9988, Moses Cursor Ssebunya, Mukesh Panchal, mwillman1991, Nazar Hotsa, nidhidhandhukiya, Nikunj Hatkar, oferlaor, Olga Gleckler, Pascal Birchler, paulstanos, Peter Wilson, puggan, Ravi Gadhiya, Riad Benguella, Rolly Bueno, room34, Sainath Poojary, Sajjad Hossain Sagor, sam_a, Sandeep Dahiya, Sergey Biryukov, Shane Muirhead, siliconforks, SirLouen, Stephen Bernhardt, Sukhendu Sekhar Guria, Tammie Lister, Tobias Bäthge, Travis Smith, Ugyen Dorji, uxl, Weston Ruter, whaze, Yash B, Yogesh Bhutkar, and Zunaid Amin.

          چطور میشه در توسعه وردپرس مشارکت کرد؟

          اگه شما هم دوست دارین در توسعه هسته وردپرس مشارکت داشته باشین، میتونین به Trac سر بزنین، یک تیکت انتخاب کنین و در گفتگوها در اسلک، در کانال‌های #core و #6-8-release-leads شرکت کنین. اگه برای شروع نیاز به کمک دارین، «کتاب راهنمای مشارکت‌کنندگان هسته» (Core Contributor Handbook) میتونه منبع خیلی خوبی باشه.

          منابع