📁 File Manager Pro
v10.0.3 | PHP: 8.2.31
Server: LiteSpeed
2026-07-03 10:10:30
📂
/ (Root)
/
home
/
orkouolp
/
web
/
orkofarms.com
/
wp-content
/
plugins
/
woocommerce
/
src
/
StoreApi
/
Schemas
/
V1
📍 /home/orkouolp/web/orkofarms.com/wp-content/plugins/woocommerce/src/StoreApi/Schemas/V1
🔄 Refresh
✏️
Editing: ShopperListSchema.php
Writable
<?php declare( strict_types = 1 ); namespace Automattic\WooCommerce\StoreApi\Schemas\V1; use Automattic\WooCommerce\Internal\ShopperLists\ShopperList; use Automattic\WooCommerce\Internal\ShopperLists\ShopperListItem; use Automattic\WooCommerce\StoreApi\Schemas\ExtendSchema; use Automattic\WooCommerce\StoreApi\SchemaController; /** * ShopperListSchema class. * * Represents a single shopper list, including its saved items. */ class ShopperListSchema extends AbstractSchema { /** * The schema item name. * * @var string */ protected $title = 'shopper_list'; /** * The schema item identifier. * * @var string */ const IDENTIFIER = 'shopper-list'; /** * Item schema instance. * * @var ShopperListItemSchema */ protected $item_schema; /** * Constructor. * * @throws \RuntimeException When the ShopperListItemSchema is not registered. * * @param ExtendSchema $extend Rest Extending instance. * @param SchemaController $controller Schema Controller instance. */ public function __construct( ExtendSchema $extend, SchemaController $controller ) { parent::__construct( $extend, $controller ); $schema = $this->controller->get( ShopperListItemSchema::IDENTIFIER ); if ( ! $schema instanceof ShopperListItemSchema ) { throw new \RuntimeException( 'ShopperListItemSchema is not registered in SchemaController.' ); } $this->item_schema = $schema; } /** * Schema properties. * * @return array */ public function get_properties() { return array( 'slug' => array( 'description' => __( 'Stable slug for the list.', 'woocommerce' ), 'type' => 'string', 'context' => array( 'view', 'edit' ), 'readonly' => true, ), 'date_created_gmt' => array( 'description' => __( 'The date the list was created, as GMT.', 'woocommerce' ), 'type' => 'string', 'format' => 'date-time', 'context' => array( 'view', 'edit' ), 'readonly' => true, ), 'item_count' => array( 'description' => __( 'Number of items currently in the list.', 'woocommerce' ), 'type' => 'integer', 'context' => array( 'view', 'edit' ), 'readonly' => true, ), 'items' => array( 'description' => __( 'List of saved items.', 'woocommerce' ), 'type' => 'array', 'context' => array( 'view', 'edit' ), 'readonly' => true, 'items' => array( 'type' => 'object', 'properties' => $this->force_schema_readonly( $this->item_schema->get_properties() ), ), ), ); } /** * Serialize the shopper list. * * @param ShopperList $shopper_list The list. * @return array */ public function get_item_response( $shopper_list ) { $items = array_values( $shopper_list->get_items() ); $product_ids = array_filter( array_map( static function ( ShopperListItem $item ): int { $variation_id = $item->get_variation_id(); return $variation_id > 0 ? $variation_id : $item->get_product_id(); }, $items ) ); if ( ! empty( $product_ids ) ) { _prime_post_caches( array_unique( $product_ids ) ); } return array( 'slug' => $shopper_list->get_slug(), 'date_created_gmt' => wc_rest_prepare_date_response( $shopper_list->get_date_created_gmt() ), 'item_count' => count( $items ), 'items' => array_values( array_map( fn( ShopperListItem $item ) => $this->item_schema->get_item_response( $item ), $items ) ), ); } }
💾 Save Changes
❌ Cancel