skip to Main Content

I have products with custom VAT on my WooCommerce store. I have to show it on single-product page. My actual single-product page is like following:

<?php
/**
 * Single Product Price, including microdata for SEO
 *
 * This template can be overridden by copying it to yourtheme/woocommerce/single-product/price.php.
 *
 * HOWEVER, on occasion WooCommerce will need to update template files and you
 * (the theme developer) will need to copy the new files to your theme to
 * maintain compatibility. We try to do this as little as possible, but it does
 * happen. When this occurs the version of the template file will be bumped and
 * the readme will list any important changes.
 *
 * @see     https://docs.woocommerce.com/document/template-structure/
 * @author  WooThemes
 * @package WooCommerce/Templates
 * @version 2.4.9
 */

if ( ! defined( 'ABSPATH' ) ) {
    exit; // Exit if accessed directly
}

global $product;


?>

<div class="offers" itemprop="offers" itemscope itemtype="http://schema.org/Offer">
    <div class="price"><?php echo $product->get_price_html(); ?></div>
    <div class="vat">
        VAT: ?%
    </div>
    <!--div class="woocommerce-variation-availability">
        <?php echo $product->get_stock_quantity(); ?>
    </div-->

    <meta itemprop="price" content="<?php echo esc_attr( $product->get_display_price() ); ?>" />
    <meta itemprop="priceCurrency" content="<?php echo esc_attr( get_woocommerce_currency() ); ?>" />
    <link itemprop="availability" href="http://schema.org/<?php echo $product->is_in_stock() ? 'InStock' : 'OutOfStock'; ?>" />

</div>

How to print custom VAT for that product?

2

Answers


  1. To get the tax amount, try something like this:

     $with_tax = $product->get_price_including_tax();
     $without_tax = $product->get_price_excluding_tax();
     $tax_amount = $with_tax - $without_tax;
    
     echo woocommerce_price($tax_amount ); // this will echo the tax amount properly formatted.
    
     // and the percentage would be:
     $percent = ($tax_amount / $without_tax) * 100;
     echo 'tax rate is ' . $percent . '%';
    
    Login or Signup to reply.
  2. I wanted to add tax value after price suffix (I added this code to function.php)

    add_filter( 'woocommerce_get_price_suffix', 'kk_woocommerce_get_percentage_suffix', 10, 2 );
    function kk_woocommerce_get_percentage_suffix( $price_display_suffix, $product ) {
    
    $tax_rate_info = 0;
    // get Tax info:
    $tax_rates = WC_Tax::get_rates( $product->get_tax_class() );
    if (!empty($tax_rates)) {
        $tax_rate = reset($tax_rates);
        $tax_rate_info = (int)$tax_rate['rate'];
    }
    else {
        // ...something here
    }
    //var_dump($tax_rate);
    
    $price_display_suffix =   $price_display_suffix .' ('. $tax_rate_info . '%)';
    return $price_display_suffix;
    }
    

    This code helped me with getting tax value in WooCommerce:
    https://stackoverflow.com/a/45634171/318380

    Login or Signup to reply.
Please signup or login to give your own answer.
Back To Top
Search