Use variables to save values in item crud.

This commit is contained in:
Mike Jolley 2017-02-01 10:53:53 +01:00
parent 3a3588c92c
commit 31308403d4
7 changed files with 59 additions and 34 deletions

View File

@ -527,7 +527,7 @@ abstract class WC_Data {
protected function get_prop( $prop, $context = 'view' ) {
$value = null;
if ( array_key_exists( $prop, $this->data ) ) {
if ( isset( $this->data[ $prop ] ) ) {
$value = isset( $this->changes[ $prop ] ) ? $this->changes[ $prop ] : $this->data[ $prop ];
if ( 'view' === $context ) {

View File

@ -197,7 +197,7 @@ abstract class WC_Abstract_Order extends WC_Abstract_Legacy_Order {
}
$this->items_to_delete = array();
// Add/save items
// Add/save items.
foreach ( $this->items as $item_group => $items ) {
if ( is_array( $items ) ) {
foreach ( $items as $item_key => $item ) {
@ -835,8 +835,8 @@ abstract class WC_Abstract_Order extends WC_Abstract_Legacy_Order {
$item->set_order_id( $this->get_id() );
// Append new row with generated temporary ID
if ( $item->get_id() ) {
$this->items[ $items_key ][ $item->get_id() ] = $item;
if ( $item_id = $item->get_id() ) {
$this->items[ $items_key ][ $item_id ] = $item;
} else {
$this->items[ $items_key ][ 'new:' . sizeof( $this->items[ $items_key ] ) ] = $item;
}

View File

@ -43,9 +43,14 @@ class WC_Order_Item_Coupon_Data_Store extends Abstract_WC_Order_Item_Type_Data_S
* @param WC_Order_Item $item
*/
public function save_item_data( &$item ) {
$id = $item->get_id();
update_metadata( 'order_item', $id, 'discount_amount', $item->get_discount( 'edit' ) );
update_metadata( 'order_item', $id, 'discount_amount_tax', $item->get_discount_tax( 'edit' ) );
$id = $item->get_id();
$save_values = array(
'discount_amount' => $item->get_discount( 'edit' ),
'discount_amount_tax' => $item->get_discount_tax( 'edit' ),
);
foreach ( $save_values as $key => $value ) {
update_metadata( 'order_item', $id, $key, $value );
}
$this->clear_cache( $item );
}
}

View File

@ -44,12 +44,17 @@ class WC_Order_Item_Fee_Data_Store extends Abstract_WC_Order_Item_Type_Data_Stor
* @param WC_Order_Item $item
*/
public function save_item_data( &$item ) {
$id = $item->get_id();
update_metadata( 'order_item', $id, '_tax_class', $item->get_tax_class( 'edit' ) );
update_metadata( 'order_item', $id, '_tax_status', $item->get_tax_status( 'edit' ) );
update_metadata( 'order_item', $id, '_line_total', $item->get_total( 'edit' ) );
update_metadata( 'order_item', $id, '_line_tax', $item->get_total_tax( 'edit' ) );
update_metadata( 'order_item', $id, '_line_tax_data', $item->get_taxes( 'edit' ) );
$id = $item->get_id();
$save_values = array(
'_tax_class' => $item->get_tax_class( 'edit' ),
'_tax_status' => $item->get_tax_status( 'edit' ),
'_line_total' => $item->get_total( 'edit' ),
'_line_tax' => $item->get_total_tax( 'edit' ),
'_line_tax_data' => $item->get_taxes( 'edit' ),
);
foreach ( $save_values as $key => $value ) {
update_metadata( 'order_item', $id, $key, $value );
}
$this->clear_cache( $item );
}
}

View File

@ -47,16 +47,21 @@ class WC_Order_Item_Product_Data_Store extends Abstract_WC_Order_Item_Type_Data_
* @param WC_Order_Item $item
*/
public function save_item_data( &$item ) {
$id = $item->get_id();
update_metadata( 'order_item', $id, '_product_id', $item->get_product_id( 'edit' ) );
update_metadata( 'order_item', $id, '_variation_id', $item->get_variation_id( 'edit' ) );
update_metadata( 'order_item', $id, '_qty', $item->get_quantity( 'edit' ) );
update_metadata( 'order_item', $id, '_tax_class', $item->get_tax_class( 'edit' ) );
update_metadata( 'order_item', $id, '_line_subtotal', $item->get_subtotal( 'edit' ) );
update_metadata( 'order_item', $id, '_line_subtotal_tax', $item->get_subtotal_tax( 'edit' ) );
update_metadata( 'order_item', $id, '_line_total', $item->get_total( 'edit' ) );
update_metadata( 'order_item', $id, '_line_tax', $item->get_total_tax( 'edit' ) );
update_metadata( 'order_item', $id, '_line_tax_data', $item->get_taxes( 'edit' ) );
$id = $item->get_id();
$save_values = array(
'_product_id' => $item->get_product_id( 'edit' ),
'_variation_id' => $item->get_variation_id( 'edit' ),
'_qty' => $item->get_quantity( 'edit' ),
'_tax_class' => $item->get_tax_class( 'edit' ),
'_line_subtotal' => $item->get_subtotal( 'edit' ),
'_line_subtotal_tax' => $item->get_subtotal_tax( 'edit' ),
'_line_total' => $item->get_total( 'edit' ),
'_line_tax' => $item->get_total_tax( 'edit' ),
'_line_tax_data' => $item->get_taxes( 'edit' ),
);
foreach ( $save_values as $key => $value ) {
update_metadata( 'order_item', $id, $key, $value );
}
$this->clear_cache( $item );
}

View File

@ -43,11 +43,16 @@ class WC_Order_Item_Shipping_Data_Store extends Abstract_WC_Order_Item_Type_Data
* @param WC_Order_Item $item
*/
public function save_item_data( &$item ) {
$id = $item->get_id();
update_metadata( 'order_item', $id, 'method_id', $item->get_method_id( 'edit' ) );
update_metadata( 'order_item', $id, 'cost', $item->get_total( 'edit' ) );
update_metadata( 'order_item', $id, 'total_tax', $item->get_total_tax( 'edit' ) );
update_metadata( 'order_item', $id, 'taxes', $item->get_taxes( 'edit' ) );
$id = $item->get_id();
$save_values = array(
'method_id' => $item->get_method_id( 'edit' ),
'cost' => $item->get_total( 'edit' ),
'total_tax' => $item->get_total_tax( 'edit' ),
'taxes' => $item->get_taxes( 'edit' ),
);
foreach ( $save_values as $key => $value ) {
update_metadata( 'order_item', $id, $key, $value );
}
$this->clear_cache( $item );
}
}

View File

@ -45,12 +45,17 @@ class WC_Order_Item_Tax_Data_Store extends Abstract_WC_Order_Item_Type_Data_Stor
* @param WC_Order_Item $item
*/
public function save_item_data( &$item ) {
$id = $item->get_id();
update_metadata( 'order_item', $id, 'rate_id', $item->get_rate_id( 'edit' ) );
update_metadata( 'order_item', $id, 'label', $item->get_label( 'edit' ) );
update_metadata( 'order_item', $id, 'compound', $item->get_compound( 'edit' ) );
update_metadata( 'order_item', $id, 'tax_amount', $item->get_tax_total( 'edit' ) );
update_metadata( 'order_item', $id, 'shipping_tax_amount', $item->get_shipping_tax_total( 'edit' ) );
$id = $item->get_id();
$save_values = array(
'rate_id' => $item->get_rate_id( 'edit' ),
'label' => $item->get_label( 'edit' ),
'compound' => $item->get_compound( 'edit' ),
'tax_amount' => $item->get_tax_total( 'edit' ),
'shipping_tax_amount' => $item->get_shipping_tax_total( 'edit' ),
);
foreach ( $save_values as $key => $value ) {
update_metadata( 'order_item', $id, $key, $value );
}
$this->clear_cache( $item );
}
}