WooCommerce árak megjelenésének módosítása (ÁFA nélkül/ÁFA-val/ÁFA mennyisége)

[Ezt a cikket 4 perc elolvasni.]

WooCommerce webshopunk esetén beállíthatjuk, hogy a termékeinknél szereplő árak bruttó vagy nettó kerüljenek kijelzésre, tehát megjeleníthetünk ÁFA mentes vagy ÁFA-s árat, de sajnos alapesetben mindkettőt nem, pedig gyakori igény, hogy egy termék ára megjelenjen ÁFA mentesen és a 27%-os ÁFA-val együtt is. Ezen felül hasznos lehet még, ha az ÁFA összegét is megjelenítjük egy külön sorban. Ez a cikk ennek a funkciónak az integrálásáról fog szólni.

Ahhoz, hogy ez működhessen természetesen első lépésként szükséges megadni a 27% ÁFA mértékét, ezt a “WooCommerce / Beállítások / Adó fül / Normál árak” alatt tehetjük meg. Így a rendszer a felvitt árainkhoz hozzá tudja majd adni ennek az összegét.

Az “Adó beállítások” résznél érdemes az “Adószámítás alapja” szekciónál az “Üzlet címe” opciót választani, ehhez pedig szükséges kitölteni az “Általános” fül alatt szereplő helységi adatokat, így a WooCommerce rögtön tud majd kalkulálni a terméklapokon és nem csak a cím megadása után vásárláskor.

Ezen alap beállítások után jöhet a dolog technikai része. A cél, hogy a terméklapokon, a kategóriaoldalakon és magában a shop-ban megjelenjen egymás alatt új sorban a bruttó és a nettó ár, valamint a hozzáadott ÁFA összege forintban. Természetesen a lenti kód módosítható, tehát nem szükséges mindhárom szekció megjelenítése, bármelyik rész kivehető vagy átalakítható.

Ha még nem lenne, akkor indulásnak mindenképp hozzunk létre egy gyerek sablont, mivel itt a WooCommerce alapértelmezett sablon fájljait fogjuk klónozni és módosítani.

A gyerek sablonunk könyvtárába hozzunk létre egy “woocommerce” könyvtárat, azon belül egy “single-product” könyvtárat, ebbe pedig készítsünk egy “price.php” fájlt a következő tartalommal:

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

global $product;

// Arak generalasa
$price_excl_tax = wc_get_price_excluding_tax( $product ); // AFA mentes ar
$price_incl_tax = wc_get_price_including_tax( $product );  // AFA-s ar
$tax_amount     = $price_incl_tax - $price_excl_tax; // AFA merteke

// Arak megjelenitese
?>
<p class="price afamentes">ÁFA mentes ár: <?php echo wc_price( $price_excl_tax ); ?></p>
<p class="price afamerteke">ÁFA mértéke: <?php  echo wc_price( $tax_amount ); ?></p>
<p class="price afas">ÁFA-s ár: <?php echo wc_price( $price_incl_tax ); ?></p>

Ezután a már meglévő “woocommerce” könyvtárunkba kreáljunk még egy “loop” nevű könyvtárat, ebbe pedig hozzunk létre egy “price.php” fájlt a következő tartalommal:

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

global $product;

if ( $product->get_price_html() ) :
    // Arak generalasa
    $price_excl_tax = wc_get_price_excluding_tax( $product ); // AFA mentes ar
    $price_incl_tax = wc_get_price_including_tax( $product );  // AFA-s ar
    $tax_amount     = $price_incl_tax - $price_excl_tax; // AFA merteke

    // Arak megjelenitese
    ?>
    <span class="price afamentes">ÁFA mentes ár: <?php echo wc_price( $price_excl_tax ); ?></span><br>
    <span class="price afamerteke">ÁFA mértéke: <?php  echo wc_price( $tax_amount ); ?></span><br>
    <span class="price afas">ÁFA-s ár: <?php echo wc_price( $price_incl_tax ); ?></span>
<?php endif ?>

Ha mindent jól csináltunk, akkor az alapértelmezett ár megjelenítése megváltozik globálisan a webshopban az általunk kívánt módon, azaz lesz egy megjelenő ÁFA mentes és egy ÁFA-s ár, valamint az ÁFA összegének kijelzése. Természetesen ezek megjelenítése, szövegezése és stílusa könnyedén módosítható a fenti kódok szerkesztésével. A hozzájuk rendelt CSS osztályokkal könnyen változtatható betűszín vagy betűméret és betűtípus is, és ha nem szükséges az ÁFA összegének megjelenítése, akkor könnyedén kivehető az a szekció is.

A fenti kód módosított változata működés közben egy webshop termékoldalán.
Ha tetszik, mutasd meg másoknak is: