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

متغیرهای وردپرس و ووکامرس

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

برای آشنایی با مفهوم کلی، متغیرهای سیستمی را ببینید.

یادداشت

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


وضعیت اتصال

متغیرنوعمعنی
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.editfirst_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فیلتر برچسب نوشته

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


مطالب مرتبط