OrderStatusEnum added

This commit is contained in:
Geoff Taylor
2019-04-18 12:39:27 -04:00
parent de321955d7
commit b72a993099
11 changed files with 60 additions and 18 deletions
+14
View File
@@ -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;
}
+2
View File
@@ -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
+37
View File
@@ -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,
)
);
}
}
+1 -1
View File
@@ -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(
+1 -1
View File
@@ -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
View File
@@ -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',
+1
View File
@@ -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',
+1
View File
@@ -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',