راستش رو بخوای، یکی از چیزایی که تو مدیریت فروشگاه ووکامرسی خیلی بهت کمک میکنه، اینه که بدونی هر مشتری چند بار ازت خرید کرده. حالا چرا انقدر مهمه؟
فرض کن یه نگاه به لیست سفارشات سایتت میندازی و میبینی «آقا فلانی ۲۵ بار خرید کرده ازت». همین یه عدد ساده، کل نگاهت رو به اون سفارش عوض میکنه! دیگه میفهمی این یه مشتری وفاداره که نباید از دستش بدی. شاید بخوای بهش یه تخفیف ویژه بدی، یه پیام تشکر بفرستی، یا حتی توی پشتیبانی بهش اولویت بدی. اسم این کار رو میذارن بازاریابی مبتنی بر داده — اونم رایگان و فقط با چند خط کد!
ولی مشکل اینجاست که ووکامرس به صورت پیشفرض همچین ستونی تو لیست سفارشاتش نداره. یعنی برای اینکه بفهمی کی چند بار خرید کرده، باید بری تکتک پروفایل مشتریها رو دستی چک کنی. که عملا یه چیز زمانبره و شاید اونقدر تایم نداشته باشی که بخای تک تک اینو چک کنی!
برای همین، تو این مقاله قراره با هم یه ستون به اسم «تعداد سفارشات مشتری» به لیست سفارشات ووکامرس اضافه کنیم. اونم نه به روش های قدیمی و منسوخ شده، بلکه کاملاً بهینه و سازگار با HPOS (همون سیستم جدید و پرسرعت ذخیرهسازی سفارشات ووکامرس). یعنی چه سایتت آپدیت باشه و از HPOS استفاده کنه، چه هنوز مهاجرت نکرده باشی، این کد بدون دردسر برات کار میکنه.
پس تا آخر این مقاله از رایا وردپرس منو با نگاه قشنگت همراهی کن 🙂
📣 اینجا محل دیده شدن تبلیغ شماست کلیک کن AD
احتمالاً الان تو ذهنت اینه که «بابا این HPOS دیگه چیه؟!
قبل از اینکه بریم سراغ کد، بذار یه چیزی رو روشن کنیم، چون کل ماجرا سر همینه.
شاید پیش خودت بگی «بابا این HPOS دیگه چیه؟!» بذار ساده برات بازش کنم. ببین، تا همین یکی دو سال پیش، ووکامرس سفارشات رو توی همون جدول wp_posts وردپرس ذخیره میکرد. یعنی چی؟ یعنی سفارشهای مشتریهات دقیقاً کنار نوشتههای وبلاگ و برگههای سایتت قرار میگرفتن! یه کم عجیبه، نه؟ آخه جدول wp_posts اصلاً برای محتوا (پست و برگه) ساخته شده، نه برای سفارشهای یه فروشگاه شلوغ.
برای همین ووکامرس گفت این روش دیگه قدیمی شده و یه سیستم جدید معرفی کرد به اسم HPOS (مخفف High-Performance Order Storage یعنی «ذخیرهسازی پرسرعت سفارشات»). این سیستم، سفارشها رو توی جدولهای مخصوص و جداگانه ذخیره میکنه. این کار سه تا مزیت بزرگ داره:
- ⚡ سرعت سایت میره بالا — چون دیتابیس خلوتتر و منظمتره
- 🗂 مدیریت سفارشات راحتتر میشه — مخصوصاً وقتی تعداد سفارشها زیاد بشه
- 🔌 سازگاری با افزونههای جدید بیشتر میشه — چون همه دارن به سمت HPOS میرن
خب، حالا که فهمیدی HPOS چیه و چرا مهمه، بریم سراغ اصل کار! 💪
چرا به ستون تعداد سفارشات نیاز داری؟
بذار صادقانه بگم، وقتی تعداد سفارشات مشتری رو کنار اسمش تو لیست سفارشات ببینی، کلی کار میتونی انجام بدی:
- مشتریهای وفادار رو شناسایی کنی و بهشون پاداش بدی
- مشتریهایی که فقط یه بار خرید کردن رو پیدا کنی و براشون ایمیل بازگشت بفرستی
- تصمیمات بازاریابی بهتری بگیری (مثلاً اگه کسی ۱۰ بار خرید کرده، حتماً یه چیز خوب داری)
- سفارشات مشکوک رو راحتتر تشخیص بدی (مثلاً یه نفر با اکانت جدید میاد سفارش بزرگ میده، ولی قبلاً هیچ سابقهای نداشته)
خلاصه این ستون کوچیک، اطلاعات بزرگی بهت میده.
اول از همه: چک کن HPOS روی سایتت فعاله یا نه
برو به این مسیر: ووکامرس ← تنظیمات ← پیشرفته ← امکانات

اونجا یه گزینه به اسم «ذخیرهسازی سفارشات با کارایی بالا» (High-performance order storage) میبینی. اگه تیکش خورده باشه، یعنی HPOS فعاله. کد ما هم برای حالت فعال هم برای حالت غیرفعال کار میکنه، پس نگران نباش.
بریم سر اصل مطلب یعنی اضافه کردن ستون تعداد سفارشات مشتری
مرحله اول: دسترسی به فایل functions.php
اول از همه باید بری تو فایل functions.php قالبت. این فایل تو پوشه قالب فعالت هست. مسیرش معمولاً اینه:
نکته مهم: اگه میخوای کدت با آپدیت قالب پاک نشه، حتماً از چایلد تم (Child Theme) استفاده کن. یعنی فایل functions.php چایلد تم رو ویرایش کن، نه قالب اصلی رو.
اگه چایلد تم نداری، میتونی از افزونه Code Snippets هم استفاده کنی. خیلی راحته و نیازی به دسترسی مستقیم به فایلها نداری.
مرحله دوم: کد اصلی رو اضافه کن
حالا کد زیر رو به انتهای فایل functions.php اضافه کن. این کد ۴ بخش اصلی داره که هر کدوم یه کار خاصی انجام میدن:
محتوای مخصوص اعضای ویژه
برای مشاهده کامل، دسترسی به سورس کدها و 48 محتوای دیگر، اشتراک تهیه کنید.
مرحله سوم: فایل رو ذخیره کن و تست کن
فایل رو ذخیره کن، بعد برو تو ووکامرس > سفارشات. اگه همه چی درست باشه، یه ستون جدید به اسم «تعداد سفارشات» میبینی که کنار هر سفارش، یه عدد بنفش رنگ نشون میده.

راهنمای سفارشیسازی ظاهر ستون
تغییر رنگ بج عددی
اگه رنگ بنفش رو دوست نداری، تو کد بالا بگرد دنبال
background: #7f54b3و هر رنگی که بخوای بذار. مثلاً:
- سبز:
#28a745(برای نمایش حس موفقیت)- آبی:
#0073aa(سازگار با رنگ پیشفرض وردپرس)- نارنجی:
#f56e28(برای جلب توجه بیشتر)
مشکلات رایج و راهحلها
مشکل ۱: ستون نمایش داده نمیشه
اگه کد رو اضافه کردی ولی ستون رو نمیبینی:
اول مطمئن شو فایل درست ذخیره شده
کش مرورگرت رو پاک کن
اگه از افزونه کش استفاده میکنی، اونم پاک کن
چک کن که نسخه ووکامرست ۷.۱ به بالا باشه (نسخهای که HPOS معرفی شد)
مشکل ۲: اعداد نشون داده نمیشه ولی خطا هم نداره
احتمالاً مشتریهات به صورت مهمان خرید کردن (customer_id ندارن). تو کد بالا برای این حالت کلمه «مهمان» نمایش داده میشه. اگه میخوای سفارشات مهمانها رو هم بشمری، باید منطق کد رو تغییر بدی.
مشکل ۳: صفحه سفارشات کنده شده
اگه سفارشات زیادی داری (مثلاً ۱۰ هزار تا)، ممکنه صفحهبندی لیست سفارشات کند بشه. برای حل این مشکل، مطمئن شو که کش transient فعاله (تو کد بالا هست). همچنین میتونی زمان کش رو از ۶ ساعت به ۲۴ ساعت افزایش بدی
مشکل ۴: با HPOS سازگار نیست
اگه بعد از فعالسازی HPOS ستون کار نمیکنه، احتمالاً فقط از فیلتر manage_edit-shop_order_columns استفاده کردی. مطمئن شو که فیلتر manage_woocommerce_page_wc-orders_columns هم اضافه شده باشه. تو کد بالا هر دو هست.
آیا این کد با آخرین نسخه ووکامرس سازگاره؟
بله، این کد با ووکامرس کاملاً سازگاره. هم از حالت HPOS و هم از حالت قدیمی پشتیبانی میکنه. البته همیشه قبل از آپدیت ووکامرس، یه بکاپ بگیر که خیالت راحت باشه.
اگه مشتری به صورت مهمان خرید کرده باشه چی؟
تو کد بالا، اگه مشتری لاگین نکرده باشه و سفارش به صورت مهمان ثبت شده باشه، کلمه «مهمان» نمایش داده میشه. چون آیدی کاربر برای مهمانها صفره و نمیشه شمارش کرد.
میتونم فقط سفارشات تکمیلشده رو بشمره؟
بله، تو تابع wc_orders_count_for_customer آرایه status رو تغییر بده. مثلاً اگه فقط میخوای سفارشات تکمیلشده رو بشمره:
‘status’ => array(‘wc-completed’),

ارسال نظر ( 0 نظر تایید شده )