From 89258bbd2b91c5506252cf08820131c7a9d62144 Mon Sep 17 00:00:00 2001 From: Geoff Taylor Date: Thu, 18 Apr 2019 13:20:40 -0400 Subject: [PATCH 1/3] `customer` query defaults to current user when `id` field is omitted. --- .gitignore | 1 + src/type/object/class-customer-type.php | 20 +++++++++++++++----- 2 files changed, 16 insertions(+), 5 deletions(-) diff --git a/.gitignore b/.gitignore index 8f2936b36..d9079f621 100644 --- a/.gitignore +++ b/.gitignore @@ -10,6 +10,7 @@ node_modules/ .env .idea .vscode +.github_changelog_generator !vendor/ vendor/* !vendor/autoload.php diff --git a/src/type/object/class-customer-type.php b/src/type/object/class-customer-type.php index 426a18634..4d43af73b 100644 --- a/src/type/object/class-customer-type.php +++ b/src/type/object/class-customer-type.php @@ -137,16 +137,26 @@ public static function register() { 'description' => __( 'A customer object', 'wp-graphql-woocommerce' ), 'args' => array( 'id' => array( - 'type' => array( 'non_null' => 'ID' ), + 'type' => 'ID', ), ), 'resolve' => function ( $source, array $args, AppContext $context, ResolveInfo $info ) { - $id_components = Relay::fromGlobalId( $args['id'] ); - if ( ! isset( $id_components['id'] ) || ! absint( $id_components['id'] ) ) { - throw new UserError( __( 'The ID input is invalid', 'wp-graphql-woocommerce' ) ); + $customer_id = 0; + if ( ! empty( $args['id'] ) ) { + $id_components = Relay::fromGlobalId( $args['id'] ); + if ( ! isset( $id_components['id'] ) || ! absint( $id_components['id'] ) ) { + throw new UserError( __( 'The ID input is invalid', 'wp-graphql-woocommerce' ) ); + } + + $customer_id = absint( $id_components['id'] ); + } elseif ( isset( $context->viewer->ID ) && ! empty( $context->viewer->ID ) ) { + $customer_id = $context->viewer->ID; + } + + if ( ! $customer_id ) { + throw new UserError( __( 'You must be logged in to access customer fields', 'wp-graphql-woocommerce' ) ); } - $customer_id = absint( $id_components['id'] ); return Factory::resolve_customer( $customer_id, $context ); }, ) From 129cf3abf099bf09a1c68b277ae60b7253acf0f3 Mon Sep 17 00:00:00 2001 From: Geoff Taylor Date: Thu, 18 Apr 2019 23:22:00 -0400 Subject: [PATCH 2/3] Cart and CartItem type implemented --- src/class-actions.php | 4 + src/connection/class-cart-items.php | 62 ++++ src/connection/class-coupons.php | 10 + src/data/class-factory.php | 19 +- .../class-cart-item-connection-resolver.php | 54 ++++ .../class-coupon-connection-resolver.php | 13 + src/type/object/class-cart-type.php | 271 ++++++++++++++++++ tests/wpunit/CartItemQueriesTest.php | 27 ++ tests/wpunit/CartQueriesTest.php | 25 ++ vendor/composer/autoload_classmap.php | 3 + .../composer/autoload_framework_classmap.php | 3 + vendor/composer/autoload_static.php | 3 + 12 files changed, 492 insertions(+), 2 deletions(-) create mode 100644 src/connection/class-cart-items.php create mode 100644 src/data/connection/class-cart-item-connection-resolver.php create mode 100644 src/type/object/class-cart-type.php create mode 100644 tests/wpunit/CartItemQueriesTest.php create mode 100644 tests/wpunit/CartQueriesTest.php diff --git a/src/class-actions.php b/src/class-actions.php index bf78a7c36..dd2873cc2 100644 --- a/src/class-actions.php +++ b/src/class-actions.php @@ -34,6 +34,7 @@ use WPGraphQL\Extensions\WooCommerce\Type\WPObject\Customer_Address_Type; use WPGraphQL\Extensions\WooCommerce\Type\WPObject\Tax_Rate_Type; use WPGraphQL\Extensions\WooCommerce\Type\WPObject\Shipping_Method_Type; +use WPGraphQL\Extensions\WooCommerce\Type\WPObject\Cart_Type; use WPGraphQL\Extensions\WooCommerce\Connection\Posts; use WPGraphQL\Extensions\WooCommerce\Connection\WC_Terms; use WPGraphQL\Extensions\WooCommerce\Connection\Coupons; @@ -46,6 +47,7 @@ use WPGraphQL\Extensions\WooCommerce\Connection\Customers; use WPGraphQL\Extensions\WooCommerce\Connection\Tax_Rates; use WPGraphQL\Extensions\WooCommerce\Connection\Shipping_Methods; +use WPGraphQL\Extensions\WooCommerce\Connection\Cart_Items; /** * Class Actions @@ -98,6 +100,7 @@ public static function graphql_register_types() { Customer_Address_Type::register(); Tax_Rate_Type::register(); Shipping_Method_Type::register(); + Cart_Type::register(); // Connections. Posts::register_connections(); @@ -111,5 +114,6 @@ public static function graphql_register_types() { Customers::register_connections(); Tax_Rates::register_connections(); Shipping_Methods::register_connections(); + Cart_Items::register_connections(); } } diff --git a/src/connection/class-cart-items.php b/src/connection/class-cart-items.php new file mode 100644 index 000000000..be88b6633 --- /dev/null +++ b/src/connection/class-cart-items.php @@ -0,0 +1,62 @@ + 'Cart', + 'toType' => 'CartItem', + 'fromFieldName' => 'contents', + 'connectionArgs' => self::get_connection_args(), + 'resolve' => function ( $source, $args, $context, $info ) { + return Factory::resolve_cart_item_connection( $source, $args, $context, $info ); + }, + ); + return array_merge( $defaults, $args ); + } + + /** + * Returns array of where args + * + * @return array + */ + public static function get_connection_args() { + return array( + 'needShipping' => array( + 'type' => 'Boolean', + 'description' => __( 'Limit results to cart item that require shipping', 'wp-graphql-woocommerce' ), + ), + ); + } +} diff --git a/src/connection/class-coupons.php b/src/connection/class-coupons.php index 1952caa1d..e6743e50c 100644 --- a/src/connection/class-coupons.php +++ b/src/connection/class-coupons.php @@ -21,6 +21,16 @@ class Coupons extends WC_Connection { public static function register_connections() { // From RootQuery. register_graphql_connection( self::get_connection_config() ); + + // From Cart. + register_graphql_connection( + self::get_connection_config( + array( + 'fromType' => 'Cart', + 'fromFieldName' => 'appliedCoupons', + ) + ) + ); } /** diff --git a/src/data/class-factory.php b/src/data/class-factory.php index a376294cb..db0275392 100644 --- a/src/data/class-factory.php +++ b/src/data/class-factory.php @@ -25,8 +25,7 @@ use WPGraphQL\Extensions\WooCommerce\Data\Connection\Refund_Connection_Resolver; use WPGraphQL\Extensions\WooCommerce\Data\Connection\Tax_Rate_Connection_Resolver; use WPGraphQL\Extensions\WooCommerce\Data\Connection\Shipping_Method_Connection_Resolver; -use WPGraphQL\Extensions\WooCommerce\Data\Connection\WC_Posts_Connection_Resolver; -use WPGraphQL\Extensions\WooCommerce\Data\Connection\WC_Terms_Connection_Resolver; +use WPGraphQL\Extensions\WooCommerce\Data\Connection\Cart_Item_Connection_Resolver; use WPGraphQL\Extensions\WooCommerce\Model\Order_Item; use WPGraphQL\Extensions\WooCommerce\Model\Tax_Rate; use WPGraphQL\Extensions\WooCommerce\Model\Shipping_Method; @@ -324,4 +323,20 @@ public static function resolve_shipping_method_connection( $source, array $args, $resolver = new Shipping_Method_Connection_Resolver(); return $resolver->resolve( $source, $args, $context, $info ); } + + /** + * Resolves CartItem connections + * + * @param mixed $source - Data resolver for connection source. + * @param array $args - Connection arguments. + * @param AppContext $context - AppContext object. + * @param ResolveInfo $info - ResolveInfo object. + * + * @return array + * @access public + */ + public static function resolve_cart_item_connection( $source, array $args, AppContext $context, ResolveInfo $info ) { + $resolver = new Cart_Item_Connection_Resolver(); + return $resolver->resolve( $source, $args, $context, $info ); + } } diff --git a/src/data/connection/class-cart-item-connection-resolver.php b/src/data/connection/class-cart-item-connection-resolver.php new file mode 100644 index 000000000..3f8e0f757 --- /dev/null +++ b/src/data/connection/class-cart-item-connection-resolver.php @@ -0,0 +1,54 @@ +filter( $source->get_cart(), $args ); + + $connection = Relay::connectionFromArray( $items, $args ); + $nodes = array(); + if ( ! empty( $connection['edges'] ) && is_array( $connection['edges'] ) ) { + foreach ( $connection['edges'] as $edge ) { + $nodes[] = ! empty( $edge['node'] ) ? $edge['node'] : null; + } + } + $connection['nodes'] = ! empty( $nodes ) ? $nodes : null; + return ! empty( $items ) ? $connection : null; + } +} diff --git a/src/data/connection/class-coupon-connection-resolver.php b/src/data/connection/class-coupon-connection-resolver.php index 5d391e263..a6b1296e1 100644 --- a/src/data/connection/class-coupon-connection-resolver.php +++ b/src/data/connection/class-coupon-connection-resolver.php @@ -103,6 +103,19 @@ public function get_query_args() { $query_args['order'] = ! empty( $last ) ? 'ASC' : 'DESC'; } + if ( is_a( $this->source, \WC_Cart::class ) ) { + // @codingStandardsIgnoreLine + switch( $this->info->fieldName ) { + case 'appliedCoupons': + $ids = array(); + foreach ( $this->source->get_applied_coupons() as $code ) { + $ids[] = \wc_get_coupon_id_by_code( $code ); + } + $query_args['post__in'] = $ids; + break; + } + } + /** * Filter the $query args to allow folks to customize queries programmatically * diff --git a/src/type/object/class-cart-type.php b/src/type/object/class-cart-type.php new file mode 100644 index 000000000..44c039978 --- /dev/null +++ b/src/type/object/class-cart-type.php @@ -0,0 +1,271 @@ + 'Cart', + 'description' => __( 'The cart object', 'wp-graphql-woocommerce' ), + 'resolve' => function( $source, array $args, AppContext $context, ResolveInfo $info ) { + return WC()->cart; + }, + ) + ); + + register_graphql_field( + 'RootQuery', + 'cartItem', + array( + 'type' => 'CartItem', + 'args' => array( + 'key' => array( + 'type' => array( 'non_null' => 'ID' ), + ), + ), + 'description' => __( 'The cart object', 'wp-graphql-woocommerce' ), + 'resolve' => function( $source, array $args, AppContext $context, ResolveInfo $info ) { + $cart = WC()->cart; + $item = $cart->get_cart_item( $args['key'] ); + if ( empty( $item ) ) { + throw new UserError( __( 'The key input is invalid', 'wp-graphql-woocommerce' ) ); + } + + return $item; + }, + ) + ); + } + + /** + * Registers Cart type + */ + public static function register_cart() { + register_graphql_object_type( + 'Cart', + array( + 'description' => __( 'The cart object', 'wp-graphql-woocommerce' ), + 'fields' => array( + 'subtotal' => array( + 'type' => 'Float', + 'description' => __( 'Cart subtotal', 'wp-graphql-woocommerce' ), + 'resolve' => function( $source, array $args, AppContext $context, ResolveInfo $info ) { + return ! is_null( $source->get_subtotal() ) ? $source->get_subtotal() : 0; + }, + ), + 'subtotalTax' => array( + 'type' => 'Float', + 'description' => __( 'Cart subtotal tax', 'wp-graphql-woocommerce' ), + 'resolve' => function( $source, array $args, AppContext $context, ResolveInfo $info ) { + return ! is_null( $source->get_subtotal_tax() ) ? $source->get_subtotal_tax() : 0; + }, + ), + 'discountTotal' => array( + 'type' => 'Float', + 'description' => __( 'Cart discount total', 'wp-graphql-woocommerce' ), + 'resolve' => function( $source, array $args, AppContext $context, ResolveInfo $info ) { + return ! is_null( $source->get_discount_total() ) ? $source->get_discount_total() : 0; + }, + ), + 'discountTax' => array( + 'type' => 'Float', + 'description' => __( 'Cart discount tax', 'wp-graphql-woocommerce' ), + 'resolve' => function( $source, array $args, AppContext $context, ResolveInfo $info ) { + return ! is_null( $source->get_discount_tax() ) ? $source->get_discount_tax() : 0; + }, + ), + 'shippingTotal' => array( + 'type' => 'Float', + 'description' => __( 'Cart shipping total', 'wp-graphql-woocommerce' ), + 'resolve' => function( $source, array $args, AppContext $context, ResolveInfo $info ) { + return ! is_null( $source->get_shipping_total() ) ? $source->get_shipping_total() : 0; + }, + ), + 'shippingTax' => array( + 'type' => 'Float', + 'description' => __( 'Cart shipping tax', 'wp-graphql-woocommerce' ), + 'resolve' => function( $source, array $args, AppContext $context, ResolveInfo $info ) { + return ! is_null( $source->get_shipping_tax() ) ? $source->get_shipping_tax() : 0; + }, + ), + 'contentsTotal' => array( + 'type' => 'Float', + 'description' => __( 'Cart contents total', 'wp-graphql-woocommerce' ), + 'resolve' => function( $source, array $args, AppContext $context, ResolveInfo $info ) { + return ! is_null( $source->get_cart_contents_total() ) + ? $source->get_cart_contents_total() + : 0; + }, + ), + 'contentsTax' => array( + 'type' => 'Float', + 'description' => __( 'Cart contents tax', 'wp-graphql-woocommerce' ), + 'resolve' => function( $source, array $args, AppContext $context, ResolveInfo $info ) { + return ! is_null( $source->get_cart_contents_tax() ) + ? $source->get_cart_contents_tax() + : 0; + }, + ), + 'feeTotal' => array( + 'type' => 'Float', + 'description' => __( 'Cart fee total', 'wp-graphql-woocommerce' ), + 'resolve' => function( $source, array $args, AppContext $context, ResolveInfo $info ) { + return ! is_null( $source->get_fee_total() ) ? $source->get_fee_total() : 0; + }, + ), + 'feeTax' => array( + 'type' => 'Float', + 'description' => __( 'Cart fee tax', 'wp-graphql-woocommerce' ), + 'resolve' => function( $source, array $args, AppContext $context, ResolveInfo $info ) { + return ! is_null( $source->get_fee_tax() ) ? $source->get_fee_tax() : 0; + }, + ), + 'total' => array( + 'type' => 'Float', + 'description' => __( 'Cart total after calculation', 'wp-graphql-woocommerce' ), + 'resolve' => function( $source, array $args, AppContext $context, ResolveInfo $info ) { + $source->calculate_totals(); + return isset( $source->get_totals()['total'] ) + ? apply_filters( 'woocommerce_cart_get_total', $source->get_totals()['total'] ) + : null; + }, + ), + 'totalTax' => array( + 'type' => 'Float', + 'description' => __( 'Cart total tax amount', 'wp-graphql-woocommerce' ), + 'resolve' => function( $source, array $args, AppContext $context, ResolveInfo $info ) { + return ! is_null( $source->get_total_tax() ) ? $source->get_total_tax() : 0; + }, + ), + 'isEmpty' => array( + 'type' => 'Boolean', + 'description' => __( 'Is cart empty', 'wp-graphql-woocommerce' ), + 'resolve' => function( $source, array $args, AppContext $context, ResolveInfo $info ) { + return ! is_null( $source->is_empty() ) ? $source->is_empty() : null; + }, + ), + 'displayPricesIncludeTax' => array( + 'type' => 'Boolean', + 'description' => __( 'Do display prices include taxes', 'wp-graphql-woocommerce' ), + 'resolve' => function( $source, array $args, AppContext $context, ResolveInfo $info ) { + return ! is_null( $source->display_prices_including_tax() ) + ? $source->display_prices_including_tax() + : null; + }, + ), + 'needsShippingAddress' => array( + 'type' => 'Boolean', + 'description' => __( 'Is customer shipping address needed', 'wp-graphql-woocommerce' ), + 'resolve' => function( $source, array $args, AppContext $context, ResolveInfo $info ) { + return ! is_null( $source->needs_shipping_address() ) + ? $source->needs_shipping_address() + : null; + }, + ), + ), + ) + ); + } + + /** + * Registers CartItem type + */ + public static function register_cart_item() { + register_graphql_object_type( + 'CartItem', + array( + 'description' => __( 'A item in the cart', 'wp-graphql-woocommerce' ), + 'fields' => array( + 'key' => array( + 'type' => array( 'non_null' => 'ID' ), + 'description' => __( 'CartItem ID', 'wp-graphql-woocommerce' ), + 'resolve' => function( $source, array $args, AppContext $context, ResolveInfo $info ) { + return ! empty( $source['key'] ) ? $source['key'] : null; + }, + ), + 'product' => array( + 'type' => 'Product', + 'description' => __( 'A product in the cart', 'wp-graphql-woocommerce' ), + 'resolve' => function( $source, array $args, AppContext $context, ResolveInfo $info ) { + return ! empty( $source['product_id'] ) + ? Factory::resolve_crud_object( $source['product_id'], $context ) + : null; + }, + ), + 'variation' => array( + 'type' => 'ProductVariation', + 'description' => __( 'Selected variation of the product', 'wp-graphql-woocommerce' ), + 'resolve' => function( $source, array $args, AppContext $context, ResolveInfo $info ) { + return ! empty( $source['variation_id'] ) + ? Factory::resolve_crud_object( $source['variation_id'], $context ) + : null; + }, + ), + 'quantity' => array( + 'type' => 'Int', + 'description' => __( 'Quantity of the product', 'wp-graphql-woocommerce' ), + 'resolve' => function( $source ) { + return isset( $source['quantity'] ) ? absint( $source['quantity'] ) : null; + }, + ), + 'subtotal' => array( + 'type' => 'Float', + 'description' => __( 'Item\'s subtotal', 'wp-graphql-woocommerce' ), + 'resolve' => function( $source ) { + return isset( $source['line_subtotal'] ) ? absint( $source['line_subtotal'] ) : null; + }, + ), + 'subtotalTax' => array( + 'type' => 'Float', + 'description' => __( 'Item\'s subtotal tax', 'wp-graphql-woocommerce' ), + 'resolve' => function( $source ) { + return isset( $source['line_subtotal_tax'] ) ? absint( $source['line_subtotal_tax'] ) : null; + }, + ), + 'total' => array( + 'type' => 'Float', + 'description' => __( 'Item\'s total', 'wp-graphql-woocommerce' ), + 'resolve' => function( $source ) { + return isset( $source['line_total'] ) ? absint( $source['line_total'] ) : null; + }, + ), + 'tax' => array( + 'type' => 'Float', + 'description' => __( 'Item\'s tax', 'wp-graphql-woocommerce' ), + 'resolve' => function( $source ) { + return isset( $source['line_tax'] ) ? absint( $source['line_tax'] ) : null; + }, + ), + ), + ) + ); + } +} diff --git a/tests/wpunit/CartItemQueriesTest.php b/tests/wpunit/CartItemQueriesTest.php new file mode 100644 index 000000000..d6f293b13 --- /dev/null +++ b/tests/wpunit/CartItemQueriesTest.php @@ -0,0 +1,27 @@ + $vendorDir . '/wp-cli/entity-command/src/User_Session_Command.php', 'User_Term_Command' => $vendorDir . '/wp-cli/entity-command/src/User_Term_Command.php', 'WPGraphQL\\Extensions\\WooCommerce\\Actions' => $baseDir . '/src/class-actions.php', + 'WPGraphQL\\Extensions\\WooCommerce\\Connection\\Cart_Items' => $baseDir . '/src/connection/class-cart-items.php', 'WPGraphQL\\Extensions\\WooCommerce\\Connection\\Coupons' => $baseDir . '/src/connection/class-coupons.php', 'WPGraphQL\\Extensions\\WooCommerce\\Connection\\Customers' => $baseDir . '/src/connection/class-customers.php', 'WPGraphQL\\Extensions\\WooCommerce\\Connection\\Order_Items' => $baseDir . '/src/connection/class-order-items.php', @@ -2521,6 +2522,7 @@ 'WPGraphQL\\Extensions\\WooCommerce\\Connection\\Tax_Rates' => $baseDir . '/src/connection/class-tax-rates.php', 'WPGraphQL\\Extensions\\WooCommerce\\Connection\\WC_Connection' => $baseDir . '/src/connection/class-wc-connection.php', 'WPGraphQL\\Extensions\\WooCommerce\\Connection\\WC_Terms' => $baseDir . '/src/connection/class-wc-terms.php', + 'WPGraphQL\\Extensions\\WooCommerce\\Data\\Connection\\Cart_Item_Connection_Resolver' => $baseDir . '/src/data/connection/class-cart-item-connection-resolver.php', 'WPGraphQL\\Extensions\\WooCommerce\\Data\\Connection\\Coupon_Connection_Resolver' => $baseDir . '/src/data/connection/class-coupon-connection-resolver.php', 'WPGraphQL\\Extensions\\WooCommerce\\Data\\Connection\\Customer_Connection_Resolver' => $baseDir . '/src/data/connection/class-customer-connection-resolver.php', 'WPGraphQL\\Extensions\\WooCommerce\\Data\\Connection\\Order_Connection_Resolver' => $baseDir . '/src/data/connection/class-order-connection-resolver.php', @@ -2560,6 +2562,7 @@ 'WPGraphQL\\Extensions\\WooCommerce\\Type\\WPEnum\\WC_Connection_Orderby_Enum' => $baseDir . '/src/type/enum/class-wc-connection-orderby-enum.php', 'WPGraphQL\\Extensions\\WooCommerce\\Type\\WPInputObject\\Tax_Rate_Connection_Orderby_Input' => $baseDir . '/src/type/input/class-tax-rate-connection-orderby-input.php', 'WPGraphQL\\Extensions\\WooCommerce\\Type\\WPInputObject\\WC_Connection_Orderby_Input' => $baseDir . '/src/type/input/class-wc-connection-orderby-input.php', + 'WPGraphQL\\Extensions\\WooCommerce\\Type\\WPObject\\Cart_Type' => $baseDir . '/src/type/object/class-cart-type.php', 'WPGraphQL\\Extensions\\WooCommerce\\Type\\WPObject\\Coupon_Type' => $baseDir . '/src/type/object/class-coupon-type.php', 'WPGraphQL\\Extensions\\WooCommerce\\Type\\WPObject\\Customer_Address_Type' => $baseDir . '/src/type/object/class-customer-address-type.php', 'WPGraphQL\\Extensions\\WooCommerce\\Type\\WPObject\\Customer_Type' => $baseDir . '/src/type/object/class-customer-type.php', diff --git a/vendor/composer/autoload_framework_classmap.php b/vendor/composer/autoload_framework_classmap.php index 06836a587..0b1718949 100644 --- a/vendor/composer/autoload_framework_classmap.php +++ b/vendor/composer/autoload_framework_classmap.php @@ -2455,6 +2455,7 @@ 'TheSeer\\Tokenizer\\Tokenizer' => $vendorDir . '/theseer/tokenizer/src/Tokenizer.php', 'TheSeer\\Tokenizer\\XMLSerializer' => $vendorDir . '/theseer/tokenizer/src/XMLSerializer.php', 'WPGraphQL\\Extensions\\WooCommerce\\Actions' => $baseDir . '/src/class-actions.php', + 'WPGraphQL\\Extensions\\WooCommerce\\Connection\\Cart_Items' => $baseDir . '/src/connection/class-cart-items.php', 'WPGraphQL\\Extensions\\WooCommerce\\Connection\\Coupons' => $baseDir . '/src/connection/class-coupons.php', 'WPGraphQL\\Extensions\\WooCommerce\\Connection\\Customers' => $baseDir . '/src/connection/class-customers.php', 'WPGraphQL\\Extensions\\WooCommerce\\Connection\\Order_Items' => $baseDir . '/src/connection/class-order-items.php', @@ -2467,6 +2468,7 @@ 'WPGraphQL\\Extensions\\WooCommerce\\Connection\\Tax_Rates' => $baseDir . '/src/connection/class-tax-rates.php', 'WPGraphQL\\Extensions\\WooCommerce\\Connection\\WC_Connection' => $baseDir . '/src/connection/class-wc-connection.php', 'WPGraphQL\\Extensions\\WooCommerce\\Connection\\WC_Terms' => $baseDir . '/src/connection/class-wc-terms.php', + 'WPGraphQL\\Extensions\\WooCommerce\\Data\\Connection\\Cart_Item_Connection_Resolver' => $baseDir . '/src/data/connection/class-cart-item-connection-resolver.php', 'WPGraphQL\\Extensions\\WooCommerce\\Data\\Connection\\Coupon_Connection_Resolver' => $baseDir . '/src/data/connection/class-coupon-connection-resolver.php', 'WPGraphQL\\Extensions\\WooCommerce\\Data\\Connection\\Customer_Connection_Resolver' => $baseDir . '/src/data/connection/class-customer-connection-resolver.php', 'WPGraphQL\\Extensions\\WooCommerce\\Data\\Connection\\Order_Connection_Resolver' => $baseDir . '/src/data/connection/class-order-connection-resolver.php', @@ -2506,6 +2508,7 @@ 'WPGraphQL\\Extensions\\WooCommerce\\Type\\WPEnum\\WC_Connection_Orderby_Enum' => $baseDir . '/src/type/enum/class-wc-connection-orderby-enum.php', 'WPGraphQL\\Extensions\\WooCommerce\\Type\\WPInputObject\\Tax_Rate_Connection_Orderby_Input' => $baseDir . '/src/type/input/class-tax-rate-connection-orderby-input.php', 'WPGraphQL\\Extensions\\WooCommerce\\Type\\WPInputObject\\WC_Connection_Orderby_Input' => $baseDir . '/src/type/input/class-wc-connection-orderby-input.php', + 'WPGraphQL\\Extensions\\WooCommerce\\Type\\WPObject\\Cart_Type' => $baseDir . '/src/type/object/class-cart-type.php', 'WPGraphQL\\Extensions\\WooCommerce\\Type\\WPObject\\Coupon_Type' => $baseDir . '/src/type/object/class-coupon-type.php', 'WPGraphQL\\Extensions\\WooCommerce\\Type\\WPObject\\Customer_Address_Type' => $baseDir . '/src/type/object/class-customer-address-type.php', 'WPGraphQL\\Extensions\\WooCommerce\\Type\\WPObject\\Customer_Type' => $baseDir . '/src/type/object/class-customer-type.php', diff --git a/vendor/composer/autoload_static.php b/vendor/composer/autoload_static.php index 5220c78c4..c6eb5e990 100644 --- a/vendor/composer/autoload_static.php +++ b/vendor/composer/autoload_static.php @@ -2949,6 +2949,7 @@ class ComposerStaticInit703f21dde3c5889862ac86d8135b48b6 'User_Session_Command' => __DIR__ . '/..' . '/wp-cli/entity-command/src/User_Session_Command.php', 'User_Term_Command' => __DIR__ . '/..' . '/wp-cli/entity-command/src/User_Term_Command.php', 'WPGraphQL\\Extensions\\WooCommerce\\Actions' => __DIR__ . '/../..' . '/src/class-actions.php', + 'WPGraphQL\\Extensions\\WooCommerce\\Connection\\Cart_Items' => __DIR__ . '/../..' . '/src/connection/class-cart-items.php', 'WPGraphQL\\Extensions\\WooCommerce\\Connection\\Coupons' => __DIR__ . '/../..' . '/src/connection/class-coupons.php', 'WPGraphQL\\Extensions\\WooCommerce\\Connection\\Customers' => __DIR__ . '/../..' . '/src/connection/class-customers.php', 'WPGraphQL\\Extensions\\WooCommerce\\Connection\\Order_Items' => __DIR__ . '/../..' . '/src/connection/class-order-items.php', @@ -2961,6 +2962,7 @@ class ComposerStaticInit703f21dde3c5889862ac86d8135b48b6 'WPGraphQL\\Extensions\\WooCommerce\\Connection\\Tax_Rates' => __DIR__ . '/../..' . '/src/connection/class-tax-rates.php', 'WPGraphQL\\Extensions\\WooCommerce\\Connection\\WC_Connection' => __DIR__ . '/../..' . '/src/connection/class-wc-connection.php', 'WPGraphQL\\Extensions\\WooCommerce\\Connection\\WC_Terms' => __DIR__ . '/../..' . '/src/connection/class-wc-terms.php', + 'WPGraphQL\\Extensions\\WooCommerce\\Data\\Connection\\Cart_Item_Connection_Resolver' => __DIR__ . '/../..' . '/src/data/connection/class-cart-item-connection-resolver.php', 'WPGraphQL\\Extensions\\WooCommerce\\Data\\Connection\\Coupon_Connection_Resolver' => __DIR__ . '/../..' . '/src/data/connection/class-coupon-connection-resolver.php', 'WPGraphQL\\Extensions\\WooCommerce\\Data\\Connection\\Customer_Connection_Resolver' => __DIR__ . '/../..' . '/src/data/connection/class-customer-connection-resolver.php', 'WPGraphQL\\Extensions\\WooCommerce\\Data\\Connection\\Order_Connection_Resolver' => __DIR__ . '/../..' . '/src/data/connection/class-order-connection-resolver.php', @@ -3000,6 +3002,7 @@ class ComposerStaticInit703f21dde3c5889862ac86d8135b48b6 'WPGraphQL\\Extensions\\WooCommerce\\Type\\WPEnum\\WC_Connection_Orderby_Enum' => __DIR__ . '/../..' . '/src/type/enum/class-wc-connection-orderby-enum.php', 'WPGraphQL\\Extensions\\WooCommerce\\Type\\WPInputObject\\Tax_Rate_Connection_Orderby_Input' => __DIR__ . '/../..' . '/src/type/input/class-tax-rate-connection-orderby-input.php', 'WPGraphQL\\Extensions\\WooCommerce\\Type\\WPInputObject\\WC_Connection_Orderby_Input' => __DIR__ . '/../..' . '/src/type/input/class-wc-connection-orderby-input.php', + 'WPGraphQL\\Extensions\\WooCommerce\\Type\\WPObject\\Cart_Type' => __DIR__ . '/../..' . '/src/type/object/class-cart-type.php', 'WPGraphQL\\Extensions\\WooCommerce\\Type\\WPObject\\Coupon_Type' => __DIR__ . '/../..' . '/src/type/object/class-coupon-type.php', 'WPGraphQL\\Extensions\\WooCommerce\\Type\\WPObject\\Customer_Address_Type' => __DIR__ . '/../..' . '/src/type/object/class-customer-address-type.php', 'WPGraphQL\\Extensions\\WooCommerce\\Type\\WPObject\\Customer_Type' => __DIR__ . '/../..' . '/src/type/object/class-customer-type.php', From 70eb0c94e90117c712f590a3736a99c01da48b26 Mon Sep 17 00:00:00 2001 From: Geoff Taylor Date: Sun, 21 Apr 2019 20:57:17 -0400 Subject: [PATCH 3/3] register_fee removed --- src/type/object/class-cart-type.php | 1 - 1 file changed, 1 deletion(-) diff --git a/src/type/object/class-cart-type.php b/src/type/object/class-cart-type.php index 44c039978..673bc30b4 100644 --- a/src/type/object/class-cart-type.php +++ b/src/type/object/class-cart-type.php @@ -26,7 +26,6 @@ class Cart_Type { */ public static function register() { self::register_cart_item(); - self::register_cart_fee(); self::register_cart(); register_graphql_field(