File "class-wc-order-item-shipping.php"
Full path: /home/kosmetik/public_html/wp-content/plugins/woocommerce/includes/class-wc-order-item-shipping.php
File
size: 4.6 B
MIME-type: text/x-php
Charset: utf-8
Download Open Edit Advanced Editor Back
<?php
defined('ABSPATH') || exit;
class WC_Order_Item_Shipping extends WC_Order_Item
{
protected $extra_data = array('method_title' => '', 'method_id' => '', 'instance_id' => '', 'total' => 0, 'total_tax' => 0, 'taxes' => array('total' => array()));
public function calculate_taxes($calculate_tax_for = array())
{
if (!isset($calculate_tax_for['country'], $calculate_tax_for['state'], $calculate_tax_for['postcode'], $calculate_tax_for['city'], $calculate_tax_for['tax_class'])) {
return false;
}
if (wc_tax_enabled()) {
$tax_rates = WC_Tax::find_shipping_rates($calculate_tax_for);
$taxes = WC_Tax::calc_tax($this->get_total(), $tax_rates, false);
$this->set_taxes(array('total' => $taxes));
} else {
$this->set_taxes(false);
}
do_action('woocommerce_order_item_shipping_after_calculate_taxes', $this, $calculate_tax_for);
return true;
}
public function set_name($value)
{
$this->set_method_title($value);
}
public function set_method_title($value)
{
$this->set_prop('name', wc_clean($value));
$this->set_prop('method_title', wc_clean($value));
}
public function set_method_id($value)
{
$this->set_prop('method_id', wc_clean($value));
}
public function set_instance_id($value)
{
$this->set_prop('instance_id', wc_clean($value));
}
public function set_total($value)
{
$this->set_prop('total', wc_format_decimal($value));
}
protected function set_total_tax($value)
{
$this->set_prop('total_tax', wc_format_decimal($value));
}
public function set_taxes($raw_tax_data)
{
$raw_tax_data = maybe_unserialize($raw_tax_data);
$tax_data = array('total' => array());
if (isset($raw_tax_data['total'])) {
$tax_data['total'] = array_map('wc_format_decimal', $raw_tax_data['total']);
} elseif (!empty($raw_tax_data) && is_array($raw_tax_data)) {
$tax_data['total'] = array_map('wc_format_decimal', $raw_tax_data);
}
$this->set_prop('taxes', $tax_data);
if ('yes' === get_option('woocommerce_tax_round_at_subtotal')) {
$this->set_total_tax(array_sum($tax_data['total']));
} else {
$this->set_total_tax(array_sum(array_map('wc_round_tax_total', $tax_data['total'])));
}
}
public function set_shipping_rate($shipping_rate)
{
$this->set_method_title($shipping_rate->get_label());
$this->set_method_id($shipping_rate->get_method_id());
$this->set_instance_id($shipping_rate->get_instance_id());
$this->set_total($shipping_rate->get_cost());
$this->set_taxes($shipping_rate->get_taxes());
$this->set_meta_data($shipping_rate->get_meta_data());
}
public function get_type()
{
return 'shipping';
}
public function get_name($context = 'view')
{
return $this->get_method_title($context);
}
public function get_method_title($context = 'view')
{
$method_title = $this->get_prop('method_title', $context);
if ('view' === $context) {
return $method_title ? $method_title : __('Shipping', 'woocommerce');
} else {
return $method_title;
}
}
public function get_method_id($context = 'view')
{
return $this->get_prop('method_id', $context);
}
public function get_instance_id($context = 'view')
{
return $this->get_prop('instance_id', $context);
}
public function get_total($context = 'view')
{
return $this->get_prop('total', $context);
}
public function get_total_tax($context = 'view')
{
return $this->get_prop('total_tax', $context);
}
public function get_taxes($context = 'view')
{
return $this->get_prop('taxes', $context);
}
public function get_tax_class($context = 'view')
{
return get_option('woocommerce_shipping_tax_class');
}
public function offsetGet($offset)
{
if ('cost' === $offset) {
$offset = 'total';
}
return parent::offsetGet($offset);
}
public function offsetSet($offset, $value)
{
wc_deprecated_function('WC_Order_Item_Shipping::offsetSet', '4.4.0', '');
if ('cost' === $offset) {
$offset = 'total';
}
parent::offsetSet($offset, $value);
}
public function offsetExists($offset)
{
if (in_array($offset, array('cost'), true)) {
return true;
}
return parent::offsetExists($offset);
}
}