پرش به مطلب اصلی

منابع داده وردپرس و ووکامرس

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


تنظیم منبع WordPress در لیست پویا

  1. یک لیست پویا به صفحه اضافه کنید.
  2. در بخش منبع داده، نوع منبع را روی WordPress بگذارید.
  3. سه تنظیم پر می‌شود:
تنظیمتوضیح
سایت WordPressاگر خالی بماند، سایت انتخاب‌شده در تنظیمات اپ استفاده می‌شود
نوع دادهیکی از سرویس‌های جدول‌های پایین
فیلترها و Queryیک آبجکت JSON که مستقیم به سرویس فرستاده می‌شود
  1. یک صفحه الگو برای آیتم‌ها انتخاب کنید. این صفحه به‌ازای هر رکورد یک بار ساخته می‌شود.

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

نکته

هر آیتم لیست، داده خود را به صفحه الگو می‌دهد. داخل آن صفحه از متغیرهای sys.inPage.entity.*، sys.inPage.product.* و sys.inPage.post.* استفاده کنید. توضیح کامل در متغیرهای وردپرس آمده است.


استفاده از متغیر در فیلترها

در آبجکت «فیلترها و Query» می‌توانید از الگوی {{نام متغیر}} استفاده کنید. مقدار متغیر هنگام درخواست جایگزین می‌شود:

{
"category": "{{shop.filter.category}}",
"search": "{{search.query}}"
}

اگر کل مقدار یک فیلد فقط {{...}} باشد، مقدار متغیر با نوع اصلی خود (عدد، بولین، آرایه) جایگزین می‌شود؛ در غیر این صورت به متن تبدیل می‌شود.

هشدار

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


سرویس‌های وردپرس

این سرویس‌ها از REST API خود وردپرس می‌آیند و به افزونه اختصاصی نیاز ندارند.

نوع داده در پنلشناسه سرویسنوع موجودیتنکته
نوشته‌های WordPresswp.postspostتصویر شاخص خودکار همراه داده می‌آید
برگه‌های WordPresswp.pagespage
دسته‌های نوشتهwp.categoriescategory
برچسب‌های نوشتهwp.tagstag
دیدگاه‌های نوشتهwp.commentscommentبا فیلتر post محدود به یک نوشته می‌شود
رسانه‌هاwp.mediamedia

فیلترهای پرکاربرد این سرویس‌ها همان پارامترهای استاندارد وردپرس هستند:

// نوشته‌های یک دسته، مرتب بر اساس تاریخ
{ "categories": 12, "orderby": "date", "order": "desc" }
// جست‌وجو در نوشته‌ها
{ "search": "سفر" }
// فقط نوشته‌های چسبنده
{ "sticky": true }
// دیدگاه‌های یک نوشته مشخص
{ "post": 145, "orderby": "date", "order": "asc" }

سرویس‌های ووکامرس

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

نوع داده در پنلشناسه سرویسنوع موجودیتنکته
محصولات WooCommercewoo.productsproduct
دسته‌های محصولwoo.categoriescategory
برچسب‌های محصولwoo.tagstag
برندهای محصولwoo.brandsbrandنیازمند پشتیبانی برند در فروشگاه
ویژگی‌های محصولwoo.attributesattributeمثل «رنگ» و «سایز»
مقادیر ویژگی محصولwoo.attribute_termsattribute_termنیازمند فیلتر attribute
دیدگاه‌های محصولwoo.reviewscomment
اقلام سبد خریدwoo.cartcart_itemبدون صفحه‌بندی
روش‌های ارسال سبد خریدwoo.shipping_ratesshipping_rateبدون صفحه‌بندی؛ بعد از ثبت آدرس پر می‌شود

نمونه فیلترها:

// محصولات یک دسته
{ "category": 25 }
// فقط محصولات موجود و برجسته
{ "featured": true, "stock_status": "instock" }
// محصولات یک ویژگی مشخص
{ "attribute": "pa_color", "attribute_term": "red" }
// مقادیر یک ویژگی (برای ساخت فیلتر رنگ)
{ "attribute": 3 }
یادداشت

در woo.products دو کلید attribute و attribute_term میان‌بُر هستند و به‌صورت خودکار به قالب استاندارد ویژگی‌های ووکامرس تبدیل می‌شوند. در woo.attribute_terms کلید attribute شناسه ویژگی والد است و اجباری است.


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

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

عمومی

نوع داده در پنلشناسه سرویسنوع موجودیتورود لازم است
فهرست‌های سایتapp.menusmenuخیر
درگاه‌های پرداختapp.payment_methodspayment_methodخیر
کشورهای مجاز ووکامرسapp.countriescountryخیر
استان‌های کشورapp.statesstateخیر
شهرهای استانapp.citiescityخیر

app.states با فیلتر country و app.cities با فیلتر country و state محدود می‌شوند:

{ "country": "IR", "state": "THR" }

مربوط به کاربر واردشده

نوع داده در پنلشناسه سرویسنوع موجودیتورود لازم است
سفارش‌های کاربرapp.ordersorderبله
فایل‌های خریداری‌شدهapp.downloadsdownloadبله
محصولات مورد علاقهapp.favoritesproductبله
دیدگاه‌های کاربرapp.my_commentscommentبله
اشتراک‌های کاربرapp.subscriptionssubscriptionبله
رزروهای کاربرapp.bookingsbookingبله

مدیریت محتوا و فروشگاه

این سرویس‌ها علاوه بر ورود، به سطح دسترسی مناسب در وردپرس نیاز دارند.

نوع داده در پنلشناسه سرویسنوع موجودیتدسترسی لازم
نوشته‌های قابل مدیریتapp.content_postspostویرایش نوشته
برگه‌های قابل مدیریتapp.content_pagespageویرایش برگه
رسانه‌های قابل مدیریتapp.mediamediaبارگذاری فایل
محصولات پنل فروشگاهapp.manager_productsproductمدیریت ووکامرس
سفارش‌های پنل فروشگاهapp.manager_ordersorderمدیریت ووکامرس
خلاصه مدیریت فروشگاهapp.manager_summarysummaryمدیریت ووکامرس

app.manager_summary همیشه یک رکورد برمی‌گرداند؛ آن را در یک لیست با یک آیتم یا مستقیم در یک صفحه الگو نمایش دهید.


فهرست‌های تودرتو

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

  1. داخل صفحه الگوی والد یک لیست پویای دیگر بگذارید.
  2. نوع منبع را خودکار انتخاب کنید.
  3. «مسیر فیلد» را روی نام آرایه بگذارید، مثلاً items برای اقلام سفارش یا downloads برای فایل‌های قابل دریافت.

سرویس woo.attribute_terms استثناست و مستقیم قابل انتخاب است، اما شناسه ویژگی والد را در فیلترها لازم دارد:

{ "attribute": "{{sys.inPage.attribute.id}}" }

صفحه‌بندی

  • بیشتر سرویس‌ها صفحه‌بندی سمت سرور دارند و لیست پویا خودش page و per_page را اضافه می‌کند. اگر «بارگذاری تدریجی» را روشن کنید، صفحه بعد با اسکرول گرفته می‌شود.
  • این سرویس‌ها صفحه‌بندی ندارند و همیشه کل فهرست را برمی‌گردانند: woo.cart، woo.shipping_rates، app.payment_methods، app.countries، app.states، app.cities و app.manager_summary.
  • حداکثر تعداد در هر صفحه ۱۰۰ رکورد است.

پردازش داده روی نتیجه

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

// درست: مرتب‌سازی سمت سرور
{ "orderby": "price", "order": "asc" }

مطالب مرتبط