From 745f161456dcdfe50ed3cb2af1fa71f8ac528f34 Mon Sep 17 00:00:00 2001 From: Claudio Sanches Date: Thu, 9 Jun 2016 12:36:06 -0300 Subject: [PATCH] [REST API] Fixed variation date_created and date_updated cc @mikejolley --- .../api/class-wc-rest-products-controller.php | 6 +- .../api/legacy/v1/class-wc-api-products.php | 9 ++- .../api/legacy/v2/class-wc-api-products.php | 70 +++++++++--------- .../api/legacy/v3/class-wc-api-products.php | 72 ++++++++++--------- 4 files changed, 83 insertions(+), 74 deletions(-) diff --git a/includes/api/class-wc-rest-products-controller.php b/includes/api/class-wc-rest-products-controller.php index 0043d0238c8..d32f69f56b0 100644 --- a/includes/api/class-wc-rest-products-controller.php +++ b/includes/api/class-wc-rest-products-controller.php @@ -502,10 +502,12 @@ class WC_REST_Products_Controller extends WC_REST_Posts_Controller { continue; } + $post_data = get_post( $variation->get_variation_id() ); + $variations[] = array( 'id' => $variation->get_variation_id(), - 'date_created' => wc_rest_prepare_date_response( $variation->get_post_data()->post_date_gmt ), - 'date_modified' => wc_rest_prepare_date_response( $variation->get_post_data()->post_modified_gmt ), + 'date_created' => wc_rest_prepare_date_response( $post_data->post_date_gmt ), + 'date_modified' => wc_rest_prepare_date_response( $post_data->post_modified_gmt ), 'permalink' => $variation->get_permalink(), 'sku' => $variation->get_sku(), 'price' => $variation->get_price(), diff --git a/includes/api/legacy/v1/class-wc-api-products.php b/includes/api/legacy/v1/class-wc-api-products.php index 37aac28f204..d733ad51b4c 100644 --- a/includes/api/legacy/v1/class-wc-api-products.php +++ b/includes/api/legacy/v1/class-wc-api-products.php @@ -348,13 +348,16 @@ class WC_API_Products extends WC_API_Resource { $variation = $product->get_child( $child_id ); - if ( ! $variation->exists() ) + if ( ! $variation->exists() ) { continue; + } + + $post_data = get_post( $variation->get_variation_id() ); $variations[] = array( 'id' => $variation->get_variation_id(), - 'created_at' => $this->server->format_datetime( $variation->get_post_data()->post_date_gmt ), - 'updated_at' => $this->server->format_datetime( $variation->get_post_data()->post_modified_gmt ), + 'created_at' => $this->server->format_datetime( $post_data->post_date_gmt ), + 'updated_at' => $this->server->format_datetime( $post_data->post_modified_gmt ), 'downloadable' => $variation->is_downloadable(), 'virtual' => $variation->is_virtual(), 'permalink' => $variation->get_permalink(), diff --git a/includes/api/legacy/v2/class-wc-api-products.php b/includes/api/legacy/v2/class-wc-api-products.php index 65edab35612..af8c64d2ea9 100644 --- a/includes/api/legacy/v2/class-wc-api-products.php +++ b/includes/api/legacy/v2/class-wc-api-products.php @@ -740,41 +740,43 @@ class WC_API_Products extends WC_API_Resource { continue; } + $post_data = get_post( $variation->get_variation_id() ); + $variations[] = array( - 'id' => $variation->get_variation_id(), - 'created_at' => $this->server->format_datetime( $variation->get_post_data()->post_date_gmt ), - 'updated_at' => $this->server->format_datetime( $variation->get_post_data()->post_modified_gmt ), - 'downloadable' => $variation->is_downloadable(), - 'virtual' => $variation->is_virtual(), - 'permalink' => $variation->get_permalink(), - 'sku' => $variation->get_sku(), - 'price' => wc_format_decimal( $variation->get_price(), $prices_precision ), - 'regular_price' => wc_format_decimal( $variation->get_regular_price(), $prices_precision ), - 'sale_price' => $variation->get_sale_price() ? wc_format_decimal( $variation->get_sale_price(), $prices_precision ) : null, - 'taxable' => $variation->is_taxable(), - 'tax_status' => $variation->get_tax_status(), - 'tax_class' => $variation->get_tax_class(), - 'managing_stock' => $variation->managing_stock(), - 'stock_quantity' => (int) $variation->get_stock_quantity(), - 'in_stock' => $variation->is_in_stock(), - 'backordered' => $variation->is_on_backorder(), - 'purchaseable' => $variation->is_purchasable(), - 'visible' => $variation->variation_is_visible(), - 'on_sale' => $variation->is_on_sale(), - 'weight' => $variation->get_weight() ? wc_format_decimal( $variation->get_weight(), 2 ) : null, - 'dimensions' => array( - 'length' => $variation->length, - 'width' => $variation->width, - 'height' => $variation->height, - 'unit' => get_option( 'woocommerce_dimension_unit' ), - ), - 'shipping_class' => $variation->get_shipping_class(), - 'shipping_class_id' => ( 0 !== $variation->get_shipping_class_id() ) ? $variation->get_shipping_class_id() : null, - 'image' => $this->get_images( $variation ), - 'attributes' => $this->get_attributes( $variation ), - 'downloads' => $this->get_downloads( $variation ), - 'download_limit' => (int) $product->download_limit, - 'download_expiry' => (int) $product->download_expiry, + 'id' => $variation->get_variation_id(), + 'created_at' => $this->server->format_datetime( $post_data->post_date_gmt ), + 'updated_at' => $this->server->format_datetime( $post_data->post_modified_gmt ), + 'downloadable' => $variation->is_downloadable(), + 'virtual' => $variation->is_virtual(), + 'permalink' => $variation->get_permalink(), + 'sku' => $variation->get_sku(), + 'price' => wc_format_decimal( $variation->get_price(), $prices_precision ), + 'regular_price' => wc_format_decimal( $variation->get_regular_price(), $prices_precision ), + 'sale_price' => $variation->get_sale_price() ? wc_format_decimal( $variation->get_sale_price(), $prices_precision ) : null, + 'taxable' => $variation->is_taxable(), + 'tax_status' => $variation->get_tax_status(), + 'tax_class' => $variation->get_tax_class(), + 'managing_stock' => $variation->managing_stock(), + 'stock_quantity' => (int) $variation->get_stock_quantity(), + 'in_stock' => $variation->is_in_stock(), + 'backordered' => $variation->is_on_backorder(), + 'purchaseable' => $variation->is_purchasable(), + 'visible' => $variation->variation_is_visible(), + 'on_sale' => $variation->is_on_sale(), + 'weight' => $variation->get_weight() ? wc_format_decimal( $variation->get_weight(), 2 ) : null, + 'dimensions' => array( + 'length' => $variation->length, + 'width' => $variation->width, + 'height' => $variation->height, + 'unit' => get_option( 'woocommerce_dimension_unit' ), + ), + 'shipping_class' => $variation->get_shipping_class(), + 'shipping_class_id' => ( 0 !== $variation->get_shipping_class_id() ) ? $variation->get_shipping_class_id() : null, + 'image' => $this->get_images( $variation ), + 'attributes' => $this->get_attributes( $variation ), + 'downloads' => $this->get_downloads( $variation ), + 'download_limit' => (int) $product->download_limit, + 'download_expiry' => (int) $product->download_expiry, ); } diff --git a/includes/api/legacy/v3/class-wc-api-products.php b/includes/api/legacy/v3/class-wc-api-products.php index 6e1cedea3b0..16dd6a5e3c9 100644 --- a/includes/api/legacy/v3/class-wc-api-products.php +++ b/includes/api/legacy/v3/class-wc-api-products.php @@ -1199,42 +1199,44 @@ class WC_API_Products extends WC_API_Resource { continue; } + $post_data = get_post( $variation->get_variation_id() ); + $variations[] = array( - 'id' => $variation->get_variation_id(), - 'created_at' => $this->server->format_datetime( $variation->get_post_data()->post_date_gmt ), - 'updated_at' => $this->server->format_datetime( $variation->get_post_data()->post_modified_gmt ), - 'downloadable' => $variation->is_downloadable(), - 'virtual' => $variation->is_virtual(), - 'permalink' => $variation->get_permalink(), - 'sku' => $variation->get_sku(), - 'price' => $variation->get_price(), - 'regular_price' => $variation->get_regular_price(), - 'sale_price' => $variation->get_sale_price() ? $variation->get_sale_price() : null, - 'taxable' => $variation->is_taxable(), - 'tax_status' => $variation->get_tax_status(), - 'tax_class' => $variation->get_tax_class(), - 'managing_stock' => $variation->managing_stock(), - 'stock_quantity' => $variation->get_stock_quantity(), - 'in_stock' => $variation->is_in_stock(), - 'backorders_allowed' => $variation->backorders_allowed(), - 'backordered' => $variation->is_on_backorder(), - 'purchaseable' => $variation->is_purchasable(), - 'visible' => $variation->variation_is_visible(), - 'on_sale' => $variation->is_on_sale(), - 'weight' => $variation->get_weight() ? $variation->get_weight() : null, - 'dimensions' => array( - 'length' => $variation->length, - 'width' => $variation->width, - 'height' => $variation->height, - 'unit' => get_option( 'woocommerce_dimension_unit' ), - ), - 'shipping_class' => $variation->get_shipping_class(), - 'shipping_class_id' => ( 0 !== $variation->get_shipping_class_id() ) ? $variation->get_shipping_class_id() : null, - 'image' => $this->get_images( $variation ), - 'attributes' => $this->get_attributes( $variation ), - 'downloads' => $this->get_downloads( $variation ), - 'download_limit' => (int) $product->download_limit, - 'download_expiry' => (int) $product->download_expiry, + 'id' => $variation->get_variation_id(), + 'created_at' => $this->server->format_datetime( $post_data->post_date_gmt ), + 'updated_at' => $this->server->format_datetime( $post_data->post_modified_gmt ), + 'downloadable' => $variation->is_downloadable(), + 'virtual' => $variation->is_virtual(), + 'permalink' => $variation->get_permalink(), + 'sku' => $variation->get_sku(), + 'price' => $variation->get_price(), + 'regular_price' => $variation->get_regular_price(), + 'sale_price' => $variation->get_sale_price() ? $variation->get_sale_price() : null, + 'taxable' => $variation->is_taxable(), + 'tax_status' => $variation->get_tax_status(), + 'tax_class' => $variation->get_tax_class(), + 'managing_stock' => $variation->managing_stock(), + 'stock_quantity' => $variation->get_stock_quantity(), + 'in_stock' => $variation->is_in_stock(), + 'backorders_allowed' => $variation->backorders_allowed(), + 'backordered' => $variation->is_on_backorder(), + 'purchaseable' => $variation->is_purchasable(), + 'visible' => $variation->variation_is_visible(), + 'on_sale' => $variation->is_on_sale(), + 'weight' => $variation->get_weight() ? $variation->get_weight() : null, + 'dimensions' => array( + 'length' => $variation->length, + 'width' => $variation->width, + 'height' => $variation->height, + 'unit' => get_option( 'woocommerce_dimension_unit' ), + ), + 'shipping_class' => $variation->get_shipping_class(), + 'shipping_class_id' => ( 0 !== $variation->get_shipping_class_id() ) ? $variation->get_shipping_class_id() : null, + 'image' => $this->get_images( $variation ), + 'attributes' => $this->get_attributes( $variation ), + 'downloads' => $this->get_downloads( $variation ), + 'download_limit' => (int) $product->download_limit, + 'download_expiry' => (int) $product->download_expiry, ); }