WC_Abstract_Order::get_tax_location()
Get tax location for this order.
Метод класса: WC_Abstract_Order{}
Хуки из метода
Возвращает
Массив
.
Использование
// protected - в коде основоного (родительского) или дочернего класса $result = $this->get_tax_location( $args );
- $args(массив)
- array Override the location.
По умолчанию: array()
Список изменений
С версии 3.2.0 | Введена. |
Код WC_Abstract_Order::get_tax_location() WC Abstract Order::get tax location WC 9.4.2
protected function get_tax_location( $args = array() ) { $tax_based_on = get_option( 'woocommerce_tax_based_on' ); if ( 'shipping' === $tax_based_on && ! $this->get_shipping_country() ) { $tax_based_on = 'billing'; } $args = wp_parse_args( $args, array( 'country' => 'billing' === $tax_based_on ? $this->get_billing_country() : $this->get_shipping_country(), 'state' => 'billing' === $tax_based_on ? $this->get_billing_state() : $this->get_shipping_state(), 'postcode' => 'billing' === $tax_based_on ? $this->get_billing_postcode() : $this->get_shipping_postcode(), 'city' => 'billing' === $tax_based_on ? $this->get_billing_city() : $this->get_shipping_city(), ) ); /** * Filters whether apply base tax for local pickup shipping method or not. * * @since 6.8.0 * @param boolean apply_base_tax Whether apply base tax for local pickup. Default true. */ $apply_base_tax = true === apply_filters( 'woocommerce_apply_base_tax_for_local_pickup', true ); /** * Filters local pickup shipping methods. * * @since 6.8.0 * @param string[] $local_pickup_methods Local pickup shipping method IDs. */ $local_pickup_methods = apply_filters( 'woocommerce_local_pickup_methods', array( 'legacy_local_pickup', 'local_pickup' ) ); $shipping_method_ids = ArrayUtil::select( $this->get_shipping_methods(), 'get_method_id', ArrayUtil::SELECT_BY_OBJECT_METHOD ); // Set shop base address as a tax location if order has local pickup shipping method. if ( $apply_base_tax && count( array_intersect( $shipping_method_ids, $local_pickup_methods ) ) > 0 ) { $tax_based_on = 'base'; } // Default to base. if ( 'base' === $tax_based_on || empty( $args['country'] ) ) { $args['country'] = WC()->countries->get_base_country(); $args['state'] = WC()->countries->get_base_state(); $args['postcode'] = WC()->countries->get_base_postcode(); $args['city'] = WC()->countries->get_base_city(); } return apply_filters( 'woocommerce_order_get_tax_location', $args, $this ); }