mirror of
https://github.com/wp-graphql/wp-graphql-woocommerce.git
synced 2026-08-14 12:53:44 +02:00
OrderStatusEnum added
This commit is contained in:
@@ -76,3 +76,17 @@ function wc_graphql_map_tax_statements( $raw_taxes ) {
|
||||
|
||||
return array_values( $taxes );
|
||||
}
|
||||
|
||||
/**
|
||||
* Get order statuses without prefixes.
|
||||
*
|
||||
* @access protected
|
||||
* @return array
|
||||
*/
|
||||
function wc_graphql_get_order_statuses() {
|
||||
$order_statuses = array();
|
||||
foreach ( array_keys( wc_get_order_statuses() ) as $status ) {
|
||||
$order_statuses[] = str_replace( 'wc-', '', $status );
|
||||
}
|
||||
return $order_statuses;
|
||||
}
|
||||
|
||||
@@ -14,6 +14,7 @@ use WPGraphQL\Extensions\WooCommerce\Type\WPEnum\Backorders;
|
||||
use WPGraphQL\Extensions\WooCommerce\Type\WPEnum\Catalog_Visibility;
|
||||
use WPGraphQL\Extensions\WooCommerce\Type\WPEnum\Discount_Type;
|
||||
use WPGraphQL\Extensions\WooCommerce\Type\WPEnum\Manage_Stock;
|
||||
use WPGraphQL\Extensions\WooCommerce\Type\WPEnum\Order_Status;
|
||||
use WPGraphQL\Extensions\WooCommerce\Type\WPEnum\Stock_Status;
|
||||
use WPGraphQL\Extensions\WooCommerce\Type\WPEnum\Tax_Class;
|
||||
use WPGraphQL\Extensions\WooCommerce\Type\WPEnum\Tax_Status;
|
||||
@@ -74,6 +75,7 @@ class Actions {
|
||||
Catalog_Visibility::register();
|
||||
Discount_Type::register();
|
||||
Manage_Stock::register();
|
||||
Order_Status::register();
|
||||
Stock_Status::register();
|
||||
Tax_Class::register();
|
||||
Tax_Status::register();
|
||||
|
||||
@@ -171,7 +171,7 @@ class Order_Connection_Resolver extends AbstractConnectionResolver {
|
||||
if ( ! empty( $where_args['statuses'] ) ) {
|
||||
$args['post_status'] = array();
|
||||
foreach ( $where_args['statuses'] as $status ) {
|
||||
if ( in_array( $status, $this->get_order_statuses(), true ) ) {
|
||||
if ( in_array( $status, wc_graphql_get_order_statuses(), true ) ) {
|
||||
$args['post_status'][] = 'wc-' . $status;
|
||||
} elseif ( 'any' === $status ) {
|
||||
// Set status to "any" and short-circuit out.
|
||||
|
||||
@@ -176,7 +176,7 @@ class Refund_Connection_Resolver extends AbstractConnectionResolver {
|
||||
|
||||
if ( ! empty( $where_args['statuses'] ) ) {
|
||||
$args['post_status'] = array();
|
||||
$statuses = $this->get_order_statuses();
|
||||
$statuses = wc_graphql_get_order_statuses();
|
||||
|
||||
foreach ( $where_args['statuses'] as $status ) {
|
||||
if ( in_array( $status, $statuses, true ) ) {
|
||||
|
||||
@@ -14,20 +14,6 @@ namespace WPGraphQL\Extensions\WooCommerce\Data\Connection;
|
||||
* Trait WC_Connection_Resolver
|
||||
*/
|
||||
trait WC_Connection_Resolver {
|
||||
/**
|
||||
* Get order statuses without prefixes.
|
||||
*
|
||||
* @access protected
|
||||
* @return array
|
||||
*/
|
||||
protected function get_order_statuses() {
|
||||
$order_statuses = array();
|
||||
foreach ( array_keys( wc_get_order_statuses() ) as $status ) {
|
||||
$order_statuses[] = str_replace( 'wc-', '', $status );
|
||||
}
|
||||
return $order_statuses;
|
||||
}
|
||||
|
||||
/**
|
||||
* This sets up the "allowed" args, and translates the GraphQL-friendly keys to WP_Query
|
||||
* friendly keys. There's probably a cleaner/more dynamic way to approach this, but
|
||||
|
||||
@@ -0,0 +1,37 @@
|
||||
<?php
|
||||
/**
|
||||
* WPEnum Type - OrderStatusEnum
|
||||
*
|
||||
* @package \WPGraphQL\Extensions\WooCommerce\Type\WPEnum
|
||||
* @since 0.0.1
|
||||
*/
|
||||
|
||||
namespace WPGraphQL\Extensions\WooCommerce\Type\WPEnum;
|
||||
|
||||
/**
|
||||
* Class Order_Status
|
||||
*/
|
||||
class Order_Status {
|
||||
/**
|
||||
* Registers type
|
||||
*/
|
||||
public static function register() {
|
||||
$values = array(
|
||||
'PENDING' => array( 'value' => 'pending' ),
|
||||
'PROCESSING' => array( 'value' => 'processing' ),
|
||||
'ON_HOLD' => array( 'value' => 'on-hold' ),
|
||||
'COMPLETED' => array( 'value' => 'completed' ),
|
||||
'CANCELLED' => array( 'value' => 'cancelled' ),
|
||||
'REFUNDED' => array( 'value' => 'refunded' ),
|
||||
'FAILED' => array( 'value' => 'failed' ),
|
||||
);
|
||||
|
||||
register_graphql_enum_type(
|
||||
'OrderStatusEnum',
|
||||
array(
|
||||
'description' => __( 'Order status enumeration', 'wp-graphql-woocommerce' ),
|
||||
'values' => $values,
|
||||
)
|
||||
);
|
||||
}
|
||||
}
|
||||
@@ -153,7 +153,7 @@ class Order_Type {
|
||||
'description' => __( 'Order shipping properties', 'wp-graphql-woocommerce' ),
|
||||
),
|
||||
'status' => array(
|
||||
'type' => 'String',
|
||||
'type' => 'OrderStatusEnum',
|
||||
'description' => __( 'Order status', 'wp-graphql-woocommerce' ),
|
||||
),
|
||||
'parent' => array(
|
||||
|
||||
@@ -165,7 +165,7 @@ class OrderHelper extends WCG_Helper {
|
||||
'orderVersion' => ! empty( $data->get_version() ) ? $data->get_version() : null,
|
||||
'date' => $data->get_date_created()->__toString(),
|
||||
'modified' => $data->get_date_modified()->__toString(),
|
||||
'status' => $data->get_status(),
|
||||
'status' => strtoupper( $data->get_status() ),
|
||||
'discountTotal' => floatval( $data->get_discount_total() ),
|
||||
'discountTax' => floatval( $data->get_discount_tax() ),
|
||||
'shippingTotal' => floatval( $data->get_shipping_total() ),
|
||||
|
||||
+1
@@ -2552,6 +2552,7 @@ return array(
|
||||
'WPGraphQL\\Extensions\\WooCommerce\\Type\\WPEnum\\Catalog_Visibility' => $baseDir . '/src/type/enum/class-catalog-visibility.php',
|
||||
'WPGraphQL\\Extensions\\WooCommerce\\Type\\WPEnum\\Discount_Type' => $baseDir . '/src/type/enum/class-discount-type.php',
|
||||
'WPGraphQL\\Extensions\\WooCommerce\\Type\\WPEnum\\Manage_Stock' => $baseDir . '/src/type/enum/class-manage-stock.php',
|
||||
'WPGraphQL\\Extensions\\WooCommerce\\Type\\WPEnum\\Order_Status' => $baseDir . '/src/type/enum/class-order-status.php',
|
||||
'WPGraphQL\\Extensions\\WooCommerce\\Type\\WPEnum\\Stock_Status' => $baseDir . '/src/type/enum/class-stock-status.php',
|
||||
'WPGraphQL\\Extensions\\WooCommerce\\Type\\WPEnum\\Tax_Class' => $baseDir . '/src/type/enum/class-tax-class.php',
|
||||
'WPGraphQL\\Extensions\\WooCommerce\\Type\\WPEnum\\Tax_Rate_Connection_Orderby_Enum' => $baseDir . '/src/type/enum/class-tax-rate-connection-orderby-enum.php',
|
||||
|
||||
@@ -2498,6 +2498,7 @@ return array(
|
||||
'WPGraphQL\\Extensions\\WooCommerce\\Type\\WPEnum\\Catalog_Visibility' => $baseDir . '/src/type/enum/class-catalog-visibility.php',
|
||||
'WPGraphQL\\Extensions\\WooCommerce\\Type\\WPEnum\\Discount_Type' => $baseDir . '/src/type/enum/class-discount-type.php',
|
||||
'WPGraphQL\\Extensions\\WooCommerce\\Type\\WPEnum\\Manage_Stock' => $baseDir . '/src/type/enum/class-manage-stock.php',
|
||||
'WPGraphQL\\Extensions\\WooCommerce\\Type\\WPEnum\\Order_Status' => $baseDir . '/src/type/enum/class-order-status.php',
|
||||
'WPGraphQL\\Extensions\\WooCommerce\\Type\\WPEnum\\Stock_Status' => $baseDir . '/src/type/enum/class-stock-status.php',
|
||||
'WPGraphQL\\Extensions\\WooCommerce\\Type\\WPEnum\\Tax_Class' => $baseDir . '/src/type/enum/class-tax-class.php',
|
||||
'WPGraphQL\\Extensions\\WooCommerce\\Type\\WPEnum\\Tax_Rate_Connection_Orderby_Enum' => $baseDir . '/src/type/enum/class-tax-rate-connection-orderby-enum.php',
|
||||
|
||||
Vendored
+1
@@ -2992,6 +2992,7 @@ class ComposerStaticInit703f21dde3c5889862ac86d8135b48b6
|
||||
'WPGraphQL\\Extensions\\WooCommerce\\Type\\WPEnum\\Catalog_Visibility' => __DIR__ . '/../..' . '/src/type/enum/class-catalog-visibility.php',
|
||||
'WPGraphQL\\Extensions\\WooCommerce\\Type\\WPEnum\\Discount_Type' => __DIR__ . '/../..' . '/src/type/enum/class-discount-type.php',
|
||||
'WPGraphQL\\Extensions\\WooCommerce\\Type\\WPEnum\\Manage_Stock' => __DIR__ . '/../..' . '/src/type/enum/class-manage-stock.php',
|
||||
'WPGraphQL\\Extensions\\WooCommerce\\Type\\WPEnum\\Order_Status' => __DIR__ . '/../..' . '/src/type/enum/class-order-status.php',
|
||||
'WPGraphQL\\Extensions\\WooCommerce\\Type\\WPEnum\\Stock_Status' => __DIR__ . '/../..' . '/src/type/enum/class-stock-status.php',
|
||||
'WPGraphQL\\Extensions\\WooCommerce\\Type\\WPEnum\\Tax_Class' => __DIR__ . '/../..' . '/src/type/enum/class-tax-class.php',
|
||||
'WPGraphQL\\Extensions\\WooCommerce\\Type\\WPEnum\\Tax_Rate_Connection_Orderby_Enum' => __DIR__ . '/../..' . '/src/type/enum/class-tax-rate-connection-orderby-enum.php',
|
||||
|
||||
Reference in New Issue
Block a user