TaxClassEnum implemented

This commit is contained in:
Geoff Taylor
2019-04-12 11:43:51 -04:00
parent bd2217d692
commit ff93f4208d
10 changed files with 74 additions and 14 deletions
+2
View File
@@ -15,6 +15,7 @@ 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\Stock_Status;
use WPGraphQL\Extensions\WooCommerce\Type\WPEnum\Tax_Class;
use WPGraphQL\Extensions\WooCommerce\Type\WPEnum\Tax_Status;
use WPGraphQL\Extensions\WooCommerce\Type\WPEnum\WC_Connection_Orderby_Enum;
use WPGraphQL\Extensions\WooCommerce\Type\WPInputObject\WC_Connection_Orderby_Input;
@@ -67,6 +68,7 @@ class Actions {
Discount_Type::register();
Manage_Stock::register();
Stock_Status::register();
Tax_Class::register();
Tax_Status::register();
WC_Connection_Orderby_Enum::register();
+17 -7
View File
@@ -116,12 +116,17 @@ class Order_Item extends Model {
'name' => function() {
return ! empty( $this->data->get_name() ) ? $this->data->get_name() : null;
},
'taxClass' => function() {
return ! empty( $this->data->get_tax_class() ) ? $this->data->get_tax_class() : null;
},
'taxStatus' => function() {
return ! empty( $this->data->get_tax_status() ) ? $this->data->get_tax_status() : null;
},
'taxClass' => function() {
if ( $this->data->get_tax_status() === 'taxable' ) {
return ! empty( $this->data->get_tax_class() )
? $this->data->get_tax_class()
: 'standard';
}
return null;
},
'total' => function() {
return ! empty( $this->data->get_total() ) ? $this->data->get_total() : null;
},
@@ -159,7 +164,7 @@ class Order_Item extends Model {
: null;
},
'taxClass' => function() {
return ! empty( $this->data->get_tax_class() ) ? $this->data->get_tax_class() : null;
return is_callable( $this->data, 'get_tax_class' ) ? $this->data->get_tax_class() : 'standard';
},
'method_id' => function() {
return ! empty( $this->data->get_method_id() ) ? $this->data->get_method_id() : null;
@@ -206,9 +211,6 @@ class Order_Item extends Model {
'quantity' => function() {
return ! empty( $this->data->get_quantity() ) ? $this->data->get_quantity() : null;
},
'taxClass' => function() {
return ! empty( $this->data->get_tax_class() ) ? $this->data->get_tax_class() : null;
},
'subtotal' => function() {
return ! empty( $this->data->get_subtotal() ) ? $this->data->get_subtotal() : null;
},
@@ -232,6 +234,14 @@ class Order_Item extends Model {
'taxStatus' => function() {
return ! empty( $this->data->get_tax_status() ) ? $this->data->get_tax_status() : null;
},
'taxClass' => function() {
if ( $this->data->get_tax_status() === 'taxable' ) {
return ! empty( $this->data->get_tax_class() )
? $this->data->get_tax_class()
: 'standard';
}
return null;
},
)
);
break;
+2 -2
View File
@@ -16,11 +16,11 @@ class Stock_Status {
* Registers type
*/
public static function register() {
$values = [
$values = array(
'IN_STOCK' => array( 'value' => 'instock' ),
'OUT_OF_STOCK' => array( 'value' => 'outofstock' ),
'ON_BACKORDER' => array( 'value' => 'onbackorder' ),
];
);
register_graphql_enum_type(
'StockStatusEnum',
+45
View File
@@ -0,0 +1,45 @@
<?php
/**
* WPEnum Type - TaxClassEnum
*
* @package \WPGraphQL\Extensions\WooCommerce\Type\WPEnum
* @since 0.0.2
*/
namespace WPGraphQL\Extensions\WooCommerce\Type\WPEnum;
use WPGraphQL\Type\WPEnumType;
/**
* Class Tax_Class
*/
class Tax_Class {
/**
* Registers type
*/
public static function register() {
$values = array(
WPEnumType::get_safe_name( 'inherit cart' ) => array(
'value' => 'inherit',
'description' => __( 'Inherits Tax class from cart', 'wp-graphql-woocommerce' ),
),
WPEnumType::get_safe_name( 'standard' ) => array(
'value' => 'standard',
'description' => __( 'Standard Tax rate', 'wp-graphql-woocommerce' ),
),
);
$classes = \WC_Tax::get_tax_classes();
foreach ( $classes as $class ) {
$values[ WPEnumType::get_safe_name( $class ) ] = array( 'value' => sanitize_title( $class ) );
}
register_graphql_enum_type(
'TaxClassEnum',
array(
'description' => __( 'Tax class enumeration', 'wp-graphql' ),
'values' => $values,
)
);
}
}
+3 -3
View File
@@ -83,7 +83,7 @@ class Order_Item_Type {
'description' => __( 'Line taxes', 'wp-graphql-woocommerce' ),
),
'taxClass' => array(
'type' => 'String',
'type' => 'TaxClassEnum',
'description' => __( 'Line tax class', 'wp-graphql-woocommerce' ),
),
),
@@ -110,7 +110,7 @@ class Order_Item_Type {
'description' => __( 'Line taxes', 'wp-graphql-woocommerce' ),
),
'taxClass' => array(
'type' => 'String',
'type' => 'TaxClassEnum',
'description' => __( 'Line tax class', 'wp-graphql-woocommerce' ),
),
// 'shippingMethod' => array(
@@ -174,7 +174,7 @@ class Order_Item_Type {
'description' => __( 'Line item\'s product quantity', 'wp-graphql-woocommerce' ),
),
'taxClass' => array(
'type' => 'String',
'type' => 'TaxClassEnum',
'description' => __( 'Line item\'s tax class', 'wp-graphql-woocommerce' ),
),
'subtotal' => array(
+1 -1
View File
@@ -155,7 +155,7 @@ class Product_Type {
'description' => __( 'Tax status', 'wp-graphql-woocommerce' ),
),
'taxClass' => array(
'type' => 'String',
'type' => 'TaxClassEnum',
'description' => __( 'Tax class', 'wp-graphql-woocommerce' ),
),
'manageStock' => array(
@@ -61,7 +61,7 @@ class Product_Variation_Type {
'description' => __( 'Product variation height', 'wp-graphql-woocommerce' ),
),
'taxClass' => array(
'type' => 'String',
'type' => 'TaxClassEnum',
'description' => __( 'Product variation tax class', 'wp-graphql-woocommerce' ),
),
'manageStock' => array(
+1
View File
@@ -2548,6 +2548,7 @@ return array(
'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\\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_Status' => $baseDir . '/src/type/enum/class-tax-status.php',
'WPGraphQL\\Extensions\\WooCommerce\\Type\\WPEnum\\WC_Connection_Orderby_Enum' => $baseDir . '/src/type/enum/class-wc-connection-orderby-enum.php',
'WPGraphQL\\Extensions\\WooCommerce\\Type\\WPInputObject\\WC_Connection_Orderby_Input' => $baseDir . '/src/type/input/class-wc-connection-orderby-input.php',
+1
View File
@@ -2494,6 +2494,7 @@ return array(
'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\\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_Status' => $baseDir . '/src/type/enum/class-tax-status.php',
'WPGraphQL\\Extensions\\WooCommerce\\Type\\WPEnum\\WC_Connection_Orderby_Enum' => $baseDir . '/src/type/enum/class-wc-connection-orderby-enum.php',
'WPGraphQL\\Extensions\\WooCommerce\\Type\\WPInputObject\\WC_Connection_Orderby_Input' => $baseDir . '/src/type/input/class-wc-connection-orderby-input.php',
+1
View File
@@ -2988,6 +2988,7 @@ class ComposerStaticInit703f21dde3c5889862ac86d8135b48b6
'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\\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_Status' => __DIR__ . '/../..' . '/src/type/enum/class-tax-status.php',
'WPGraphQL\\Extensions\\WooCommerce\\Type\\WPEnum\\WC_Connection_Orderby_Enum' => __DIR__ . '/../..' . '/src/type/enum/class-wc-connection-orderby-enum.php',
'WPGraphQL\\Extensions\\WooCommerce\\Type\\WPInputObject\\WC_Connection_Orderby_Input' => __DIR__ . '/../..' . '/src/type/input/class-wc-connection-orderby-input.php',