افزودن داده به سبد و تسویه بلوکی با Store API

در سبد خرید و تسویه‌حساب بلوکی، هوک‌های قدیمی قالب کار نمی‌کنند. داده را از طریق Store API اضافه کنید.

حمید اعراب توسعه‌دهنده ارشد بک‌اند وردپرس و ووکامرس
انتشار
زمان مطالعه
۱ دقیقه مطالعه

حمید اعراب ۵ اسفند ۱۴۰۴ ۱ دقیقه مطالعه

تصویر پیکسلی سبد خرید متصل به یک API
فهرست مطالب (3)

سبد خرید و تسویه‌حساب بلوکی ووکامرس با Store API کار می‌کنند، نه با قالب‌های PHP. یعنی هوک‌هایی مثل woocommerce_review_order_before_payment در این صفحه‌ها اجرا نمی‌شوند.

ثبت دادهٔ اضافه روی endpoint سبد

woocommerce_store_api_register_endpoint_data( [
    'endpoint'        => \Automattic\WooCommerce\StoreApi\Schemas\V1\CartSchema::IDENTIFIER,
    'namespace'       => 'hamidarab-delivery',
    'data_callback'   => static fn () => [ 'window' => get_delivery_window() ],
    'schema_callback' => static fn () => [
        'window' => [ 'type' => 'string', 'readonly' => true ],
    ],
    'schema_type'     => ARRAY_A,
] );

این داده در پاسخ Store API زیر extensions.hamidarab-delivery قرار می‌گیرد و در سمت جاوااسکریپت در دسترس است.

نمایش در رابط

برای نمایش، از Slot/Fill یا یک بلوک داخلی تسویه‌حساب استفاده کنید؛ دستکاری DOM با jQuery در این صفحه‌ها شکننده است.

قبل از مهاجرت به تسویه‌حساب بلوکی، فهرست همهٔ سفارشی‌سازی‌های فعلی تسویه را تهیه کنید تا چیزی جا نماند.

چه چیزی را آزمایش کنیم

  • پاسخ /wp-json/wc/store/v1/cart را مستقیم بررسی کنید.
  • سناریوی کاربر مهمان و کاربر واردشده را جداگانه تست کنید.
  • رفتار با کش صفحه و CDN را بسنجید؛ Store API نباید کش شود.

$ ./request_review

همین مشکل را در فروشگاه خودتان دارید؟

توسعه‌دهنده ارشد WordPress و WooCommerce برای معماری، اتصال سیستم‌ها و حل مسائل پیچیده production.

درخواست بررسی فنی

دیدگاه‌ها

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *