--- /dev/null
+<?php
+
+if ( ! defined( 'ABSPATH' ) ) {
+ exit; // Exit if accessed directly
+}
+
+/**
+ * WooCommerce Shipping Rate Class.
+ *
+ * Simple Class for storing rates.
+ *
+ * @class WC_Shipping_Rate
+ * @version 2.6.0
+ * @package WooCommerce/Classes/Shipping
+ * @category Class
+ * @author WooThemes
+ */
+class WC_Shipping_Rate {
+
+ /** @var string Rate ID. */
+ public $id = '';
+
+ /** @var string Label for the rate. */
+ public $label = '';
+
+ /** @var float Cost for the rate. */
+ public $cost = 0;
+
+ /** @var array Array of taxes for the rate. */
+ public $taxes = array();
+
+ /** @var string Label for the rate. */
+ public $method_id = '';
+
+ /**
+ * Stores meta data for this rate
+ * @since 2.6.0
+ * @var array
+ */
+ private $meta_data = array();
+
+ /**
+ * Constructor.
+ *
+ * @param string $id
+ * @param string $label
+ * @param integer $cost
+ * @param array $taxes
+ * @param string $method_id
+ */
+ public function __construct( $id = '', $label = '', $cost = 0, $taxes = array(), $method_id = '' ) {
+ $this->id = $id;
+ $this->label = $label;
+ $this->cost = $cost;
+ $this->taxes = ! empty( $taxes ) && is_array( $taxes ) ? $taxes : array();
+ $this->method_id = $method_id;
+ }
+
+ /**
+ * Get shipping tax.
+ *
+ * @return array
+ */
+ public function get_shipping_tax() {
+ return apply_filters( 'woocommerce_get_shipping_tax', sizeof( $this->taxes ) > 0 && ! WC()->customer->get_is_vat_exempt() ? array_sum( $this->taxes ) : 0, $this );
+ }
+
+ /**
+ * Get label.
+ *
+ * @return string
+ */
+ public function get_label() {
+ return apply_filters( 'woocommerce_shipping_rate_label', $this->label, $this );
+ }
+
+ /**
+ * Add some meta data for this rate.
+ * @since 2.6.0
+ * @param string $key
+ * @param string $value
+ */
+ public function add_meta_data( $key, $value ) {
+ $this->meta_data[ wc_clean( $key ) ] = wc_clean( $value );
+ }
+
+ /**
+ * Get all meta data for this rate.
+ * @since 2.6.0
+ */
+ public function get_meta_data() {
+ return $this->meta_data;
+ }
+}