* fix: Elementor breaks transfer-session endpoint with 500 error
Elementor's LandingPages module creates a WP_Query during `init` which
fires `pre_get_posts` before WooCommerce session is initialized. Our
resolve_request handler ran on this early query and called
WC()->session->get_customer_id() on null, causing a fatal error.
Fix: Guard resolve_request to only run on the main front-end query and
bail if WC session is not yet initialized. Also add Elementor to the
test environment and add functional tests that reproduce the issue.
Closes#945
* chore: Add @param docblock for resolve_request $query parameter
* devops: Remove unused resolvers and add session transaction manager tests
Remove Coupon_Connection_Resolver and Customer_Connection_Resolver
which had 0% coverage and were never instantiated.
Add SessionTransactionManagerTest covering did_transaction_expire
edge cases and next_transaction invalid/expired queue handling.
* test: add hCaptcha session token regression test
Adds functional test verifying the session token is correctly linked
to the authenticated user after login when hCaptcha for WP is active.
Resolves#941Resolves#942
* devops: login test added
* fix: JWT Auth hooks now support WPGraphQL Headless Login
* chore: PHPStan compliance met
* fix: Proper TokenManager function in use for auth token resolution
* dev!: namespace Composer dependencies with strauss
* chore: include vendor-prefixed when stanning
* Strauss configurations properly applied. Contribution docs restored.
* Linter and PHPStan compliance met
* `platform` removed from `composer.json`
* devops: PHP7.3 removed from CI matrix
---------
Co-authored-by: Geoff Taylor <geoff@axistaylor.com>
* - implement Node on different Types
* - update class-customers to return arrays for edges and nodes
- move id resolver from product-attribute interface to the specific types
* - return empty arrays for edges/nodes for coupon connections
- update test to check for falsy vs null
* - remove manual registration of the `Product` Interface
- register the fields to the Product Interface
* - fix code style
* - fix code style
* - no longer pass type registry to Product::register_interface()
* - use post type registry to register the Product type as an Interface
* WPGraphQL v1.13.x support added.
* WPGraphQL v1.13.x support added.
* fix: filter corrected.
* fix: Needed code restored
* fix: Needed code restored
* parent field no longer overwritten
* chore: WPCS compliance met.
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>