تابع ووکامرسی wc_get_price_including_tax دریافت قیمت شامل مالیات

تابع ووکامرسی wc_get_price_including_tax دریافت قیمت شامل مالیات

تابع ووکامرسی wc_get_price_including_tax – دریافت قیمت شامل مالیات ارزش افزوده

Syntax – سینتکس

(float) wc_get_price_including_tax( (WC_Product) $product, (array) $args = array() ); 

Parameters – پارامتر ها (2)

  • 1- $product (WC_Product)
  • 2- $args (array)

Usage – نحوه استفاده

if ( !function_exists( 'wc_get_price_including_tax' ) ) { 
    require_once ABSPATH . PLUGINDIR . 'woocommerce/includes/wc-product-functions.php'; 
} 
  
// The product. 
$product = null; 
  
// The args. 
$args = array(); 
  
// NOTICE! Understand what this does before running. 
$result = wc_get_price_including_tax($product, $args); 
    

Defined – محل تعریف

/includes/wc-product-functions.php

function wc_get_price_including_tax( $product, $args = array() ) { 
    $args = wp_parse_args( $args, array( 
        'qty' => '',  
        'price' => '',  
 ) ); 
 
    $price = '' !== $args['price'] ? max( 0.0, (float) $args['price'] ) : $product->get_price(); 
    $qty = '' !== $args['qty'] ? max( 0.0, (float) $args['qty'] ) : 1; 
 
    if ( '' === $price ) { 
        return ''; 
    } elseif ( empty( $qty ) ) { 
        return 0.0; 
    } 
 
    $line_price = $price * $qty; 
    $return_price = $line_price; 
 
    if ( $product->is_taxable() ) { 
        if ( ! wc_prices_include_tax() ) { 
            $tax_rates = WC_Tax::get_rates( $product->get_tax_class() ); 
            $taxes = WC_Tax::calc_tax( $line_price, $tax_rates, false ); 
            $tax_amount = WC_Tax::get_tax_total( $taxes ); 
            $return_price = round( $line_price + $tax_amount, wc_get_price_decimals() ); 
        } else { 
            $tax_rates = WC_Tax::get_rates( $product->get_tax_class() ); 
            $base_tax_rates = WC_Tax::get_base_tax_rates( $product->get_tax_class( 'unfiltered' ) ); 
 
            /** 
             * If the customer is excempt from VAT, remove the taxes here. 
             * Either remove the base or the user taxes depending on woocommerce_adjust_non_base_location_prices setting. 
             */ 
            if ( ! empty( WC()->customer ) && WC()->customer->get_is_vat_exempt() ) { 
                $remove_taxes = apply_filters( 'woocommerce_adjust_non_base_location_prices', true ) ? WC_Tax::calc_tax( $line_price, $base_tax_rates, true ) : WC_Tax::calc_tax( $line_price, $tax_rates, true ); 
                $remove_tax = array_sum( $remove_taxes ); 
                $return_price = round( $line_price - $remove_tax, wc_get_price_decimals() ); 
 
            /** 
             * The woocommerce_adjust_non_base_location_prices filter can stop base taxes being taken off when dealing with out of base locations. 
             * e.g. If a product costs 10 including tax, all users will pay 10 regardless of location and taxes. 
             * This feature is experimental @since 2.4.7 and may change in the future. Use at your risk. 
             */ 
            } elseif ( $tax_rates !== $base_tax_rates && apply_filters( 'woocommerce_adjust_non_base_location_prices', true ) ) { 
                $base_taxes = WC_Tax::calc_tax( $line_price, $base_tax_rates, true ); 
                $modded_taxes = WC_Tax::calc_tax( $line_price - array_sum( $base_taxes ), $tax_rates, false ); 
                $return_price = round( $line_price - array_sum( $base_taxes ) + array_sum( $modded_taxes ), wc_get_price_decimals() ); 
            } 
        } 
    } 
    return apply_filters( 'woocommerce_get_price_including_tax', $return_price, $qty, $product ); 
} 

versions – نسخه ها

از نسخه : 3.0.0

نسخه فعلی : 3.0.6

دیگر نسخه ها : 3.0.6 , 3.0.5 , 3.0.4 , 3.0.3 , 3.0.2

ارسال نظر

جهت استفاده از کد حتما از تگ pre استفاده نمایید .

contact us