<?php
if (!defined('ABSPATH')) {
exit;
}
abstract class WC_Legacy_Cart
{
public $cart_session_data = array('cart_contents_total' => 0, 'total' => 0, 'subtotal' => 0, 'subtotal_ex_tax' => 0, 'tax_total' => 0, 'taxes' => array(), 'shipping_taxes' => array(), 'discount_cart' => 0, 'discount_cart_tax' => 0, 'shipping_total' => 0, 'shipping_tax_total' => 0, 'coupon_discount_amounts' => array(), 'coupon_discount_tax_amounts' => array(), 'fee_total' => 0, 'fees' => array());
public $coupon_applied_count = array();
public function __isset($name)
{
$legacy_keys = array_merge(array('dp', 'prices_include_tax', 'round_at_subtotal', 'cart_contents_total', 'total', 'subtotal', 'subtotal_ex_tax', 'tax_total', 'fee_total', 'discount_cart', 'discount_cart_tax', 'shipping_total', 'shipping_tax_total', 'display_totals_ex_tax', 'display_cart_ex_tax', 'cart_contents_weight', 'cart_contents_count', 'coupons', 'taxes', 'shipping_taxes', 'coupon_discount_amounts', 'coupon_discount_tax_amounts', 'fees', 'tax', 'discount_total', 'tax_display_cart'), is_array($this->cart_session_data) ? array_keys($this->cart_session_data) : array());
if (in_array($name, $legacy_keys, true)) {
return true;
}
return false;
}
public function &__get($name)
{
$value = '';
switch ($name) {
case 'dp':
$value = wc_get_price_decimals();
break;
case 'prices_include_tax':
$value = wc_prices_include_tax();
break;
case 'round_at_subtotal':
$value = 'yes' === get_option('woocommerce_tax_round_at_subtotal');
break;
case 'cart_contents_total':
$value = $this->get_cart_contents_total();
break;
case 'total':
$value = $this->get_total('edit');
break;
case 'subtotal':
$value = $this->get_subtotal() + $this->get_subtotal_tax();
break;
case 'subtotal_ex_tax':
$value = $this->get_subtotal();
break;
case 'tax_total':
$value = $this->get_fee_tax() + $this->get_cart_contents_tax();
break;
case 'fee_total':
$value = $this->get_fee_total();
break;
case 'discount_cart':
$value = $this->get_discount_total();
break;
case 'discount_cart_tax':
$value = $this->get_discount_tax();
break;
case 'shipping_total':
$value = $this->get_shipping_total();
break;
case 'shipping_tax_total':
$value = $this->get_shipping_tax();
break;
case 'display_totals_ex_tax':
case 'display_cart_ex_tax':
$value = !$this->display_prices_including_tax();
break;
case 'cart_contents_weight':
$value = $this->get_cart_contents_weight();
break;
case 'cart_contents_count':
$value = $this->get_cart_contents_count();
break;
case 'coupons':
$value = $this->get_coupons();
break;
case 'taxes':
wc_deprecated_function('WC_Cart->taxes', '3.2', sprintf('getters (%s) and setters (%s)', 'WC_Cart::get_cart_contents_taxes()', 'WC_Cart::set_cart_contents_taxes()'));
$value =& $this->totals['cart_contents_taxes'];
break;
case 'shipping_taxes':
wc_deprecated_function('WC_Cart->shipping_taxes', '3.2', sprintf('getters (%s) and setters (%s)', 'WC_Cart::get_shipping_taxes()', 'WC_Cart::set_shipping_taxes()'));
$value =& $this->totals['shipping_taxes'];
break;
case 'coupon_discount_amounts':
$value =& $this->coupon_discount_totals;
break;
case 'coupon_discount_tax_amounts':
$value =& $this->coupon_discount_tax_totals;
break;
case 'fees':
wc_deprecated_function('WC_Cart->fees', '3.2', sprintf('the fees API (%s)', 'WC_Cart::get_fees'));
$new_fees = $this->fees_api()->get_fees();
$this->fees = $new_fees;
$value =& $this->fees;
break;
case 'tax':
wc_deprecated_argument('WC_Cart->tax', '2.3', 'Use WC_Tax directly');
$this->tax = new WC_Tax();
$value = $this->tax;
break;
case 'discount_total':
wc_deprecated_argument('WC_Cart->discount_total', '2.3', 'After tax coupons are no longer supported. For more information see: https://woocommerce.wordpress.com/2014/12/upcoming-coupon-changes-in-woocommerce-2-3/');
$value = 0;
break;
case 'tax_display_cart':
wc_deprecated_argument('WC_Cart->tax_display_cart', '4.4', 'Use WC_Cart->get_tax_price_display_mode() instead.');
$value = $this->get_tax_price_display_mode();
break;
}
return $value;
}
public function __set($name, $value)
{
switch ($name) {
case 'cart_contents_total':
$this->set_cart_contents_total($value);
break;
case 'total':
$this->set_total($value);
break;
case 'subtotal':
$this->set_subtotal($value);
break;
case 'subtotal_ex_tax':
$this->set_subtotal($value);
break;
case 'tax_total':
$this->set_cart_contents_tax($value);
$this->set_fee_tax(0);
break;
case 'taxes':
$this->set_cart_contents_taxes($value);
break;
case 'shipping_taxes':
$this->set_shipping_taxes($value);
break;
case 'fee_total':
$this->set_fee_total($value);
break;
case 'discount_cart':
$this->set_discount_total($value);
break;
case 'discount_cart_tax':
$this->set_discount_tax($value);
break;
case 'shipping_total':
$this->set_shipping_total($value);
break;
case 'shipping_tax_total':
$this->set_shipping_tax($value);
break;
case 'coupon_discount_amounts':
$this->set_coupon_discount_totals($value);
break;
case 'coupon_discount_tax_amounts':
$this->set_coupon_discount_tax_totals($value);
break;
case 'fees':
wc_deprecated_function('WC_Cart->fees', '3.2', sprintf('the fees API (%s)', 'WC_Cart::add_fee'));
$this->fees = $value;
break;
default:
$this->{$name} = $value;
break;
}
}
public function get_cart_from_session()
{
$this->session->get_cart_from_session();
}
public function maybe_set_cart_cookies()
{
$this->session->maybe_set_cart_cookies();
}
public function set_session()
{
$this->session->set_session();
}
public function get_cart_for_session()
{
return $this->session->get_cart_for_session();
}
public function persistent_cart_update()
{
$this->session->persistent_cart_update();
}
public function persistent_cart_destroy()
{
$this->session->persistent_cart_destroy();
}
public function get_cart_discount_total()
{
return $this->get_discount_total();
}
public function get_cart_discount_tax_total()
{
return $this->get_discount_tax();
}
public function add_discount($coupon_code)
{
return $this->apply_coupon($coupon_code);
}
public function remove_taxes()
{
wc_deprecated_function('WC_Cart::remove_taxes', '3.2', '');
}
public function init()
{
wc_deprecated_function('WC_Cart::init', '3.2', '');
$this->get_cart_from_session();
}
public function get_discounted_price($values, $price, $add_totals = false)
{
wc_deprecated_function('WC_Cart::get_discounted_price', '3.2', '');
$cart_item_key = $values['key'];
$cart_item = $this->cart_contents[$cart_item_key];
return $cart_item['line_total'];
}
public function get_cart_url()
{
wc_deprecated_function('WC_Cart::get_cart_url', '2.5', 'wc_get_cart_url');
return wc_get_cart_url();
}
public function get_checkout_url()
{
wc_deprecated_function('WC_Cart::get_checkout_url', '2.5', 'wc_get_checkout_url');
return wc_get_checkout_url();
}
public function ship_to_billing_address_only()
{
wc_deprecated_function('WC_Cart::ship_to_billing_address_only', '2.5', 'wc_ship_to_billing_address_only');
return wc_ship_to_billing_address_only();
}
public function coupons_enabled()
{
wc_deprecated_function('WC_Legacy_Cart::coupons_enabled', '2.5.0', 'wc_coupons_enabled');
return wc_coupons_enabled();
}
public function get_discounts_before_tax()
{
wc_deprecated_function('get_discounts_before_tax', '2.3', 'get_total_discount');
if ($this->get_cart_discount_total()) {
$discounts_before_tax = wc_price($this->get_cart_discount_total());
} else {
$discounts_before_tax = false;
}
return apply_filters('woocommerce_cart_discounts_before_tax', $discounts_before_tax, $this);
}
public function get_order_discount_total()
{
wc_deprecated_function('get_order_discount_total', '2.3');
return 0;
}
public function apply_cart_discounts_after_tax($values, $price)
{
wc_deprecated_function('apply_cart_discounts_after_tax', '2.3');
}
public function apply_product_discounts_after_tax($values, $price)
{
wc_deprecated_function('apply_product_discounts_after_tax', '2.3');
}
public function get_discounts_after_tax()
{
wc_deprecated_function('get_discounts_after_tax', '2.3');
}
}