Skip to content

Commit 52ceafc

Browse files
committed
"ProductUnion" to "Product"
1 parent f8c5277 commit 52ceafc

File tree

12 files changed

+360
-345
lines changed

12 files changed

+360
-345
lines changed

includes/class-type-registry.php

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -52,9 +52,12 @@ public function init( \WPGraphQL\Registry\TypeRegistry $type_registry ) {
5252
\WPGraphQL\Extensions\WooCommerce\Type\WPInputObject\Product_Taxonomy_Filter_Relation_Input::register();
5353
\WPGraphQL\Extensions\WooCommerce\Type\WPInputObject\Orderby_Inputs::register();
5454

55+
// Interfaces.
56+
\WPGraphQL\Extensions\WooCommerce\Type\WPInterface\Product::register_interface( $type_registry );
57+
5558
// Objects.
5659
\WPGraphQL\Extensions\WooCommerce\Type\WPObject\Coupon_Type::register();
57-
\WPGraphQL\Extensions\WooCommerce\Type\WPObject\Product_Type::register();
60+
\WPGraphQL\Extensions\WooCommerce\Type\WPObject\Product_Types::register();
5861
\WPGraphQL\Extensions\WooCommerce\Type\WPObject\Product_Variation_Type::register();
5962
\WPGraphQL\Extensions\WooCommerce\Type\WPObject\Order_Type::register();
6063
\WPGraphQL\Extensions\WooCommerce\Type\WPObject\Order_Item_Type::register();
@@ -73,9 +76,6 @@ public function init( \WPGraphQL\Registry\TypeRegistry $type_registry ) {
7376
// Object fields.
7477
\WPGraphQL\Extensions\WooCommerce\Type\WPObject\Product_Category_Type::register_fields();
7578

76-
// Unions.
77-
\WPGraphQL\Extensions\WooCommerce\Type\WPUnion\Product_Union::register_union();
78-
7979
// Connections.
8080
\WPGraphQL\Extensions\WooCommerce\Connection\Posts::register_connections();
8181
\WPGraphQL\Extensions\WooCommerce\Connection\WC_Terms::register_connections();

includes/class-wp-graphql-woocommerce.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -171,7 +171,7 @@ private function setup() {
171171
\WPGraphQL\Extensions\WooCommerce\JWT_Auth_Schema_Filters::add_filters();
172172

173173
$registry = new \WPGraphQL\Extensions\WooCommerce\Type_Registry();
174-
add_action( 'graphql_register_types', array( $registry, 'init' ) );
174+
add_action( 'graphql_register_types', array( $registry, 'init' ), 10, 1 );
175175
}
176176
}
177177
endif;

includes/connection/class-posts.php

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,16 @@ class Posts extends PostObjects {
1919
* Registers the various connections from other WooCommerce Types to other WordPress post-types
2020
*/
2121
public static function register_connections() {
22-
22+
register_graphql_connection(
23+
self::get_connection_config(
24+
get_post_type_object( 'attachment' ),
25+
array(
26+
'fromType' => 'Product',
27+
'toType' => 'MediaItem',
28+
'fromFieldName' => 'galleryImages',
29+
)
30+
)
31+
);
2332
/**
2433
* From product types to MediaItem
2534
*/

includes/connection/class-products.php

Lines changed: 23 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -23,26 +23,35 @@ public static function register_connections() {
2323
register_graphql_connection( self::get_connection_config() );
2424

2525
// From Coupon.
26+
register_graphql_connection( self::get_connection_config( array( 'fromType' => 'Coupon' ) ) );
2627
register_graphql_connection(
2728
self::get_connection_config(
2829
array(
2930
'fromType' => 'Coupon',
30-
'fromFieldName' => 'products',
31+
'fromFieldName' => 'excludedProducts',
3132
)
3233
)
3334
);
35+
36+
// Connections from all product types to related and upsell.
3437
register_graphql_connection(
3538
self::get_connection_config(
3639
array(
37-
'fromType' => 'Coupon',
38-
'fromFieldName' => 'excludedProducts',
40+
'fromType' => 'Product',
41+
'fromFieldName' => 'related',
42+
)
43+
)
44+
);
45+
register_graphql_connection(
46+
self::get_connection_config(
47+
array(
48+
'fromType' => 'Product',
49+
'fromFieldName' => 'upsell',
3950
)
4051
)
4152
);
4253

43-
// Connections from all product types.
4454
$product_types = array_values( \WP_GraphQL_WooCommerce::get_enabled_product_types() );
45-
4655
foreach ( $product_types as $product_type ) {
4756
register_graphql_connection(
4857
self::get_connection_config(
@@ -61,6 +70,11 @@ public static function register_connections() {
6170
)
6271
);
6372
}
73+
74+
// Group product children connection.
75+
register_graphql_connection( self::get_connection_config( array( 'fromType' => 'GroupProduct' ) ) );
76+
77+
// Product cross-sell connections.
6478
register_graphql_connection(
6579
self::get_connection_config(
6680
array(
@@ -77,14 +91,6 @@ public static function register_connections() {
7791
)
7892
)
7993
);
80-
register_graphql_connection(
81-
self::get_connection_config(
82-
array(
83-
'fromType' => 'GroupProduct',
84-
'fromFieldName' => 'products',
85-
)
86-
)
87-
);
8894

8995
// From VariableProduct to ProductVariation.
9096
register_graphql_connection(
@@ -98,34 +104,17 @@ public static function register_connections() {
98104
);
99105

100106
// From ProductCategory.
101-
register_graphql_connection(
102-
self::get_connection_config(
103-
array(
104-
'fromType' => 'ProductCategory',
105-
'fromFieldName' => 'products',
106-
)
107-
)
108-
);
107+
register_graphql_connection( self::get_connection_config( array( 'fromType' => 'ProductCategory' ) ) );
109108

110109
// From ProductTag.
111-
register_graphql_connection(
112-
self::get_connection_config(
113-
array(
114-
'fromType' => 'ProductTag',
115-
'fromFieldName' => 'products',
116-
)
117-
)
118-
);
110+
register_graphql_connection( self::get_connection_config( array( 'fromType' => 'ProductTag' ) ) );
119111

120112
// From WooCommerce product attributes.
121113
$attributes = \WP_GraphQL_WooCommerce::get_product_attribute_taxonomies();
122114
foreach ( $attributes as $attribute ) {
123115
register_graphql_connection(
124116
self::get_connection_config(
125-
array(
126-
'fromType' => ucfirst( graphql_format_field_name( $attribute ) ),
127-
'fromFieldName' => 'products',
128-
)
117+
array( 'fromType' => ucfirst( graphql_format_field_name( $attribute ) ) )
129118
)
130119
);
131120
register_graphql_connection(
@@ -152,7 +141,7 @@ public static function register_connections() {
152141
public static function get_connection_config( $args = [] ) {
153142
$defaults = array(
154143
'fromType' => 'RootQuery',
155-
'toType' => 'ProductUnion',
144+
'toType' => 'Product',
156145
'fromFieldName' => 'products',
157146
'connectionArgs' => self::get_connection_args(),
158147
'resolveNode' => function( $id, $args, $context, $info ) {

includes/connection/class-wc-terms.php

Lines changed: 23 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -42,10 +42,31 @@ public static function register_connections() {
4242
)
4343
);
4444

45-
$product_types = array_values( \WP_GraphQL_WooCommerce::get_enabled_product_types() );
45+
// From Products.
46+
register_graphql_connection(
47+
self::get_connection_config(
48+
get_taxonomy( 'product_cat' ),
49+
array(
50+
'fromType' => 'Product',
51+
'toType' => 'ProductCategory',
52+
'fromFieldName' => 'categories',
53+
)
54+
)
55+
);
56+
register_graphql_connection(
57+
self::get_connection_config(
58+
get_taxonomy( 'product_tag' ),
59+
array(
60+
'fromType' => 'Product',
61+
'toType' => 'ProductTag',
62+
'fromFieldName' => 'tags',
63+
)
64+
)
65+
);
4666

67+
// From Product child types.
68+
$product_types = array_values( \WP_GraphQL_WooCommerce::get_enabled_product_types() );
4769
foreach ( $product_types as $product_type ) {
48-
// From Products.
4970
register_graphql_connection(
5071
self::get_connection_config(
5172
get_taxonomy( 'product_cat' ),

0 commit comments

Comments
 (0)