فهرست مطالب (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.
درخواست بررسی فنی
## دیدگاهها