* fix: session secret key, cart session persistence, null variation attributes
- Use wp_salt() as fallback secret key instead of hardcoded 24-byte string
to satisfy php-jwt v7's HS256 minimum key length requirement (Closes#1009)
- Call get_cart_from_session() after wc_load_cart() in
initialize_session_and_cart() to prevent cart queries from clearing
persisted session data (Closes#1010)
- Guard against null $attrs in variation_attributes_to_data_array()
to prevent PHP warnings when variations have no attributes (Closes#1011)
- Return empty array instead of null for product attribute options
when no terms exist
* chore: Linter compliances met
* refactor: Product_Attribute_Connection_Resolver class refactor to be more consistent with contemporaries
* refactor: Product_Attribute_Connection_Resolver class refactoring continued
* feat: implement productAttributes root query, products connection on ProductAttribute, and category-scoped attributes
- Implement build_nodes_from_global_attributes() to return WC_Product_Attribute
objects from wc_get_attribute_taxonomies()
- Fix build_connection() infinite recursion and undefined variable bugs
- Add products connection from ProductAttribute interface to Product via
tax_query (global) or meta_query (local) in class-products.php
- Add productAttributes connection from ProductCategory to GlobalProductAttribute
in class-product-attributes.php
- Move localAttributes/globalAttributes connections from class-product-attributes.php
to ProductWithAttributes interface get_connections()
- Fix ProductAttribute id resolvers to use Relay::toGlobalId() instead of
dynamically set _relay_id
- Remove deprecated get_items() method and GLOBAL_ID_DELIMITER constant
- Add ProductAttributeConnectionsTest with 4 tests covering root query,
global/local attribute products connections, and category-scoped attributes
- Update ProductAttributeQueriesTest expectations for new id format and
taxonomy-prefixed attribute names
* fix: "Product" interface applied to all sub Product interfaces for more optimal schema shape
* fix: more inconsistencies fixed.
* feat: "ProductWithAttributes" interface radded to "ProductWithVariations" interface
* - remove several fields that are already registered by core when the post type is mapped to the schema
* devops: Tests updated and coupon "salt" restored
* chore: Linter & PHPStan compliance met
* chore: Linter & PHPStan compliance met
* devops: "self" replaced with "static" in cli tests
* chore: fix cleanup after rebasing
---------
Co-authored-by: Geoff Taylor <geoff@axistaylor.com>
* fix: Huge refactor across schema and unit tests
* - add shipping_method loader in class-core-schema-filters.php
* - Update class-wc-db-loader.php to respect the new SHIPPING_METHOD loader with a `load_shipping_method_from_id()` function
* - Convert Shipping_Method_Connection_Resolver to extend AbstractConnectionResolver
* - Replace resolver for Shipping Methods connection. Remove use of `resolveNode` and replace the resolver with the new connection class `get_connection()` call
* chore: Factory class refactored.
* - update the function that registers Product Types to the Schema to use the value from the `get_enabled_product_types()` as the Type name and the key as the fieldName
* chore: PaymentGatewayQueriesTest refactored.
* chore: WPCS compliance met
* chore: Syntax error fixed.
Co-authored-by: Jason Bahl <jasonbahl@mac.com>