متغیرهای وردپرس و ووکامرس
اپ در زمان اجرا وضعیت اتصال، کاربر، سبد خرید و آیتم جاری صفحه را در متغیرهای سیستمی میگذارد. این متغیرها را میتوانید در متن ویجتها، شرطها، فیلتر لیستها و اجرای کد جاوااسکریپت استفاده کنید.
برای آشنایی با مفهوم کلی، متغیرهای سیستمی را ببینید.
همه متغیرهای این صفحه فقط خواندنی هستند و توسط اپ مقداردهی میشوند. تنها استثنا، متغیرهای فرم است که در بخش پایانی توضیح داده شدهاند.
وضعیت اتصال
| متغیر | نوع | معنی |
|---|---|---|
sys.wordpress.connected | بولین | ارتباط با سایت برقرار است |
sys.wordpress.connectorAvailable | بولین | افزونه اختصاصی روی سایت فعال است |
sys.wordpress.siteId | عدد | شناسه سایت متصل در پنل |
sys.wordpress.siteUrl | متن | نشانی سایت |
sys.wordpress.capabilities | آبجکت | پاسخ کامل امکانات سایت |
sys.wordpress.features | آبجکت | امکانات وردپرسی فعال |
sys.woocommerce.available | بولین | ووکامرس فعال است |
sys.woocommerce.features | آرایه | امکانات فروشگاهی فعال |
sys.wordpress.transport | متن | روش ارتباط با سایت |
sys.wordpress.directCors | بولین | دسترسی مستقیم مرورگر ممکن است (مهم در خروجی وب) |
sys.wordpress.transportMessage | متن | توضیح روش ارتباط، وقتی مستقیم نیست |
کاربر وردپرس
| متغیر | نوع | معنی |
|---|---|---|
sys.wordpress.authenticated | بولین | کاربر به حساب وردپرس وارد شده است |
sys.wordpress.user | آبجکت | اطلاعات کاربر واردشده |
فیلدهای sys.wordpress.user:
id، username، email، display_name، first_name، last_name، avatar_url، avatar_id، billing، shipping.
هر یک از billing و shipping این فیلدها را دارند: first_name، last_name، company، country، address_1، address_2، city، state، postcode، phone، email.
نمونه استفاده در متن:
سلام {{sys.wordpress.user.display_name}}
sys.wordpress.authenticated مربوط به حساب وردپرس است. گزینه «نیاز به ورود» صفحه، حساب اپادیتور را بررسی میکند. برای محدود کردن صفحههای وردپرسی از شرط ورود کاربر به حساب وردپرس استفاده کنید.
نتیجه آخرین عملیات
| متغیر | نوع | معنی |
|---|---|---|
sys.wordpress.lastResult | هر نوع | داده پاسخ آخرین عملکرد وردپرسی موفق |
sys.wordpress.lastError | متن | پیام خطای آخرین عملکرد ناموفق |
پس از هر عملکرد وردپرسی، یکی از این دو مقدار میگیرد و دیگری خالی میشود. برای نمایش خطا به کاربر یا برای شرط «ادامه فقط در صورت موفقیت» از همینها استفاده کنید.
sys.wordpress.lastResult پاسخ کامل سرور است، نه فقط داده. در مسیرهای افزونه اپ ادیتور، داده اصلی زیر کلید data قرار دارد؛ مثلاً sys.wordpress.lastResult.data.challenge_id. اگر مطمئن نیستید ساختار پاسخ چیست، یک بار کل مقدار را در یک ویجت متن نمایش دهید.
سبد خرید
| متغیر | نوع | معنی |
|---|---|---|
sys.woocommerce.cart | آبجکت | تصویر کامل سبد خرید |
sys.woocommerce.cartCount | عدد | مجموع تعداد اقلام |
sys.woocommerce.cartEmpty | بولین | سبد خالی است |
sys.woocommerce.cartTotals | آبجکت | مبالغ سبد |
آبجکت sys.woocommerce.cart این کلیدها را دارد و میتوانید مستقیم به آنها اشاره کنید:
| مسیر | معنی |
|---|---|
sys.woocommerce.cart.items | آرایه اقلام سبد |
sys.woocommerce.cart.count | مجموع تعداد |
sys.woocommerce.cart.empty | خالی بودن |
sys.woocommerce.cart.totals | مبالغ |
sys.woocommerce.cart.loading | درخواستی روی سبد در جریان است |
sys.woocommerce.cart.error | پیام خطای آخرین عملیات سبد |
از sys.woocommerce.cart.loading برای غیرفعال کردن دکمهها هنگام تغییر سبد استفاده کنید تا کاربر پشتسرهم کلیک نکند.
ارسال و پرداخت
| متغیر | نوع | معنی |
|---|---|---|
sys.woocommerce.needsShipping | بولین | سفارش نیاز به ارسال دارد |
sys.woocommerce.shippingRates | آرایه | روشهای ارسال موجود |
sys.woocommerce.selectedShippingRate | آبجکت | روش ارسال انتخابشده |
sys.woocommerce.needsPayment | بولین | سفارش نیاز به پرداخت دارد |
sys.woocommerce.paymentMethods | آرایه | درگاههای فعال فروشگاه |
sys.woocommerce.selectedPaymentMethod | آبجکت | درگاه انتخابشده |
sys.woocommerce.paymentPending | بولین | پرداخت در جریان است |
sys.woocommerce.paymentRedirect | متن | نشانی هدایت به درگاه |
سفارش ثبتشده
| متغیر | نوع | معنی |
|---|---|---|
sys.woocommerce.lastCheckout | آبجکت | پاسخ کامل ثبت سفارش |
sys.woocommerce.lastOrderId | عدد | شناسه سفارش |
sys.woocommerce.lastOrderKey | متن | کلید سفارش |
sys.woocommerce.lastOrderStatus | متن | وضعیت سفارش پس از بازگشت از درگاه |
sys.woocommerce.lastOrderPaid | بولین | سفارش پرداخت شده است |
sys.woocommerce.lastOrder | آبجکت | آخرین وضعیت خواندهشده سفارش |
صفحه «سفارش ثبت شد» را با همین متغیرها بسازید و وضعیت پرداخت را از sys.woocommerce.lastOrderPaid بخوانید، نه از بسته شدن صفحه درگاه.
آیتم جاری صفحه
هر صفحهای که بهعنوان الگوی لیست یا صفحه جزئیات باز شود، یک آیتم جاری دارد. داده آن با پیشوند sys.inPage. در دسترس است.
ریشه عمومی
sys.inPage.entity همیشه به آیتم جاری اشاره میکند، هر نوعی که باشد.
| مسیر | معنی |
|---|---|
sys.inPage.entity.exists | آیتم جاری وجود دارد |
sys.inPage.entity.kind | نوع موجودیت، مثل post یا product |
sys.inPage.entity.id | شناسه |
sys.inPage.entity.title | عنوان یا نام |
sys.inPage.entity.content | متن اصلی |
sys.inPage.entity.excerpt | چکیده یا توضیح کوتاه |
sys.inPage.entity.description | توضیح |
sys.inPage.entity.slug | نامک |
sys.inPage.entity.status | وضعیت |
sys.inPage.entity.date | تاریخ ایجاد |
sys.inPage.entity.modified | تاریخ ویرایش |
sys.inPage.entity.url | پیوند |
sys.inPage.entity.image.url | نشانی تصویر |
sys.inPage.entity.image.thumbnail | بندانگشتی |
sys.inPage.entity.image.alt | متن جایگزین |
sys.inPage.entity.author | نویسنده |
sys.inPage.entity.categories | دستهها |
sys.inPage.entity.tags | برچسبها |
sys.inPage.entity.price.current | قیمت فعلی |
sys.inPage.entity.price.regular | قیمت اصلی |
sys.inPage.entity.price.hasDiscount | تخفیف دارد |
sys.inPage.entity.price.discountPercent | درصد تخفیف |
sys.inPage.entity.price.symbol | نماد واحد پول |
sys.inPage.entity.rating | میانگین امتیاز |
sys.inPage.entity.reviewCount | تعداد دیدگاه |
sys.inPage.entity.raw | پاسخ خام سرور |
sys.inPage.entity.raw راه فرار است: اگر فیلدی در فهرست بالا نبود، آن را مستقیم از پاسخ سرور بخوانید؛ مثلاً sys.inPage.entity.raw.meta_data.
ریشههای نوعدار
اگر بخواهید مطمئن شوید فقط وقتی مقدار برمیگردد که آیتم از نوع مشخصی است، از ریشه اختصاصی همان نوع استفاده کنید:
post، page، product، category، tag، term، comment، media، order، orderItem، cartItem، shippingRate، paymentMethod، download، menu، menuItem، user.
برای مثال sys.inPage.product.title فقط وقتی مقدار دارد که آیتم جاری یک محصول باشد. ریشه term هر نوع اصطلاح (دسته، برچسب، برند، ویژگی و مقدار ویژگی) را میپذیرد.
جایگاه آیتم در لیست
| مسیر | معنی |
|---|---|
sys.inPage.item.index | شماره ردیف، از صفر |
sys.inPage.item.page | شماره صفحهای که آیتم از آن آمده |
sys.inPage.item.raw | داده خام ردیف |
محصول جاری صفحه
وقتی صفحهای یک محصول را نمایش میدهد، علاوه بر مقادیر بالا این متغیرها هم بهروز میمانند:
| مسیر | معنی |
|---|---|
sys.inPage.product.inStock | موجود است |
sys.inPage.product.available | قابل خرید است |
sys.inPage.product.onSale | تخفیف دارد |
sys.inPage.product.sku | شناسه انبارداری |
sys.inPage.product.options | گزینههای قابل انتخاب |
sys.inPage.product.selection.complete | همه گزینهها انتخاب شدهاند |
sys.inPage.product.selection.attributes | گزینههای انتخابشده |
sys.inPage.product.selection.variationId | شناسه تنوع متناظر |
sys.inPage.product.selection.loading | در حال یافتن تنوع |
sys.inPage.product.selection.error | خطای انتخاب گزینه |
sys.inPage.product.selectedVariation.id | شناسه تنوع انتخابشده |
وضعیت همین محصول در سبد خرید:
| مسیر | معنی |
|---|---|
sys.inPage.product.cart.exists | این محصول در سبد هست |
sys.inPage.product.cart.quantity | تعداد فعلی در سبد |
sys.inPage.product.cart.key | شناسه ردیف سبد |
sys.inPage.product.cart.minimum | حداقل تعداد مجاز |
sys.inPage.product.cart.maximum | حداکثر تعداد مجاز |
sys.inPage.product.cart.step | گام تغییر تعداد |
sys.inPage.product.cart.canIncrease | افزایش مجاز است |
sys.inPage.product.cart.canDecrease | کاهش مجاز است |
sys.inPage.product.cart.atMinimum | روی حداقل است |
sys.inPage.product.cart.showDecrease | دکمه کاهش باید دیده شود |
sys.inPage.product.cart.loading | تغییری روی سبد در جریان است |
sys.inPage.product.cart.error | خطای آخرین تغییر سبد |
با ترکیب canIncrease، canDecrease و loading میتوانید کنترل تعداد را دقیقاً مثل فروشگاههای حرفهای بسازید. اگر نمیخواهید این را دستی بچینید، بلوک آماده «کنترل آماده تعداد محصول در سبد» همین کار را میکند.
انتخابگر گزینه محصول
هنگام کار با ویجت انتخابگر گزینه روی محصول متغیر:
| مسیر | معنی |
|---|---|
sys.inPage.optionSelector.name | نام انتخابگر |
sys.inPage.optionSelector.selection | همه انتخابهای فعلی |
sys.inPage.optionSelector.changedKey | کلید گزینهای که تازه تغییر کرد |
sys.inPage.optionSelector.changedValue | مقدار جدید همان گزینه |
و داخل الگوی هر گزینه: sys.inPage.option.label، sys.inPage.option.value، sys.inPage.option.color، sys.inPage.option.image، sys.inPage.option.selected، sys.inPage.option.enabled، sys.inPage.option.index، بههمراه sys.inPage.optionGroup.key، sys.inPage.optionGroup.label و sys.inPage.optionGroup.count.
فرم دیدگاه و امتیاز
| مسیر | معنی |
|---|---|
sys.inPage.feedback.submitting | در حال ارسال |
sys.inPage.feedback.success | ارسال موفق بود |
sys.inPage.feedback.error | پیام خطا |
sys.inPage.feedback.result | پاسخ سرور |
با submitting دکمه ارسال را غیرفعال و با success پیام تشکر را نمایش دهید.
متغیرهایی که خودتان پر میکنید
بعضی متغیرها قرارداد بین اپ و بلوکهای آماده هستند. اپ آنها را میسازد و شما یا کاربر مقدارشان را تغییر میدهید.
فرم پروفایل و آدرس
پس از ورود کاربر یا خواندن اطلاعات او، این متغیرها خودکار پر میشوند:
| متغیر | محتوا |
|---|---|
profile.edit | first_name، last_name، display_name، email، avatar_id |
profile.address.billing | آدرس صورتحساب کاربر |
profile.address.shipping | آدرس ارسال کاربر |
checkout.payload.billing_address | آدرس صورتحساب سفارش |
checkout.payload.shipping_address | آدرس ارسال سفارش |
فیلدهای فرم را مستقیم به همین مسیرها وصل کنید تا فرم از ابتدا پر باشد و کاربر فقط اصلاح کند.
نام متغیر پرداخت باید دقیقاً checkout.payload باشد؛ عملکرد «انتخاب درگاه پرداخت جاری» مقدار checkout.payload.payment_method را در همین مسیر مینویسد.
قرارداد بلوکهای آماده
| متغیر | جایی که استفاده میشود |
|---|---|
search.query | جعبه جستوجو و صفحه جستوجوی زنده |
review.content | فرم آماده دیدگاه و امتیاز |
review.rating | فرم آماده دیدگاه و امتیاز |
shop.filter.category | فیلتر دسته محصول |
shop.filter.tag | فیلتر برچسب محصول |
shop.filter.brand | فیلتر برند |
shop.filter.attribute | فیلتر ویژگی |
shop.filter.attribute_term | فیلتر مقدار ویژگی |
blog.filter.categories | فیلتر دسته نوشته |
blog.filter.tags | فیلتر برچسب نوشته |
این نامها اجباری نیستند؛ اگر خودتان لیست را میسازید میتوانید هر نام دلخواهی بگذارید. اما اگر از بلوکهای آماده استفاده میکنید، تغییر این نامها ارتباط بلوک با لیست را قطع میکند.