store tax rate percent in tax items

This commit is contained in:
Ewout Fernhout 2019-04-10 17:35:43 +02:00
parent 1ea6d7d3f8
commit 794ba844b2
2 changed files with 24 additions and 1 deletions

View File

@ -27,6 +27,7 @@ class WC_Order_Item_Tax extends WC_Order_Item {
'compound' => false,
'tax_total' => 0,
'shipping_tax_total' => 0,
'rate_percent' => 0.0,
);
/*
@ -98,6 +99,15 @@ class WC_Order_Item_Tax extends WC_Order_Item {
$this->set_prop( 'compound', (bool) $value );
}
/**
* Set rate value.
*
* @param float $value tax rate value.
*/
public function set_rate_percent( $value ) {
$this->set_prop( 'rate_percent', (float) $value );
}
/**
* Set properties based on passed in tax rate by ID.
*
@ -110,6 +120,7 @@ class WC_Order_Item_Tax extends WC_Order_Item {
$this->set_rate_code( WC_Tax::get_rate_code( $tax_rate ) );
$this->set_label( WC_Tax::get_rate_label( $tax_rate ) );
$this->set_compound( WC_Tax::is_compound( $tax_rate ) );
$this->set_rate_percent( WC_Tax::get_rate_percent_value( $tax_rate ) );
}
/*
@ -211,6 +222,16 @@ class WC_Order_Item_Tax extends WC_Order_Item {
return $this->get_compound();
}
/**
* Get rate value
*
* @param string $context What the value is for. Valid values are 'view' and 'edit'.
* @return float
*/
public function get_rate_percent( $context = 'view' ) {
return $this->get_prop( 'rate_percent', $context );
}
/*
|--------------------------------------------------------------------------
| Array Access Methods

View File

@ -22,7 +22,7 @@ class WC_Order_Item_Tax_Data_Store extends Abstract_WC_Order_Item_Type_Data_Stor
* @since 3.0.0
* @var array
*/
protected $internal_meta_keys = array( 'rate_id', 'label', 'compound', 'tax_amount', 'shipping_tax_amount' );
protected $internal_meta_keys = array( 'rate_id', 'label', 'compound', 'tax_amount', 'shipping_tax_amount', 'rate_percent' );
/**
* Read/populate data properties specific to this order item.
@ -41,6 +41,7 @@ class WC_Order_Item_Tax_Data_Store extends Abstract_WC_Order_Item_Type_Data_Stor
'compound' => get_metadata( 'order_item', $id, 'compound', true ),
'tax_total' => get_metadata( 'order_item', $id, 'tax_amount', true ),
'shipping_tax_total' => get_metadata( 'order_item', $id, 'shipping_tax_amount', true ),
'rate_percent' => get_metadata( 'order_item', $id, 'rate_percent', true ),
)
);
$item->set_object_read( true );
@ -62,6 +63,7 @@ class WC_Order_Item_Tax_Data_Store extends Abstract_WC_Order_Item_Type_Data_Stor
'compound' => 'compound',
'tax_amount' => 'tax_total',
'shipping_tax_amount' => 'shipping_tax_total',
'rate_percent' => 'rate_percent',
);
$props_to_update = $this->get_props_to_update( $item, $meta_key_to_props, 'order_item' );