همراهان عزیز برای دریافت اطلاع رسانی های سایت در کانال تلگرام (@rayawpir) عضو شوید.
پیوستن به کانال تلگرام

اطلاعیه رایا وردپرس

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

مشتری وفادارتو بشناس! افزودن ستون تعداد خرید مشتری به لیست سفارشات ووکامرس

مشتری وفادارتو بشناس! افزودن ستون تعداد خرید مشتری به لیست سفارشات ووکامرس

توجه: برای مشاهده تمام کدهای استفاده شده در این آموزش، نیاز به 🌟 اشتراک ویژه دارید.

i

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

فرض کن یه نگاه به لیست سفارشات سایتت میندازی و می‌بینی «آقا فلانی ۲۵ بار خرید کرده ازت». همین یه عدد ساده، کل نگاهت رو به اون سفارش عوض می‌کنه! دیگه می‌فهمی این یه مشتری وفاداره که نباید از دستش بدی. شاید بخوای بهش یه تخفیف ویژه بدی، یه پیام تشکر بفرستی، یا حتی توی پشتیبانی بهش اولویت بدی. اسم این کار رو می‌ذارن بازاریابی مبتنی بر داده — اونم رایگان و فقط با چند خط کد!

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

برای همین، تو این مقاله قراره با هم یه ستون به اسم «تعداد سفارشات مشتری» به لیست سفارشات ووکامرس اضافه کنیم. اونم نه به روش های قدیمی و منسوخ شده، بلکه کاملاً بهینه و سازگار با 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 قالبت. این فایل تو پوشه قالب فعالت هست. مسیرش معمولاً اینه:

 ____                      __        __ ____  
|  _ \  __ _ _   _  __ _   \ \      / /|  _ \ 
| |_) |/ _` | | | |/ _` |   \ \ /\ / / | |_) |
|  _ <| (_| | |_| | (_| |    \ V  V /  |  __/ 
|_| \_\\__,_|\__, |\__,_|     \_/\_/   |_|    
             |___/                            

       [🔒 Code Locked - Please Login to Access]

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

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

مرحله دوم: کد اصلی رو اضافه کن

حالا کد زیر رو به انتهای فایل functions.php اضافه کن. این کد ۴ بخش اصلی داره که هر کدوم یه کار خاصی انجام میدن:

1 محتوای جدید این هفته

محتوای مخصوص اعضای ویژه

برای مشاهده کامل، دسترسی به سورس کدها و 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’),

5/5 - (3 امتیاز)
محتوای سایت برات مفید بود؟ 👋

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

❤️ حمایت می‌کنم

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

نظرات پس از تایید مدیر نمایش داده می‌شوند
23نفر در حال مطالعه
1475بازدید اخیر
9نفر این پست رو بوکمارک کردن
به قـــلم: ســــعید

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

+۹۰
ابزار برنامه نویسی
۴۰۰
مقاله منتشر شده
مشاهده همه مقالات
رایا وردپرس
بستن