web-dev-qa-db-fra.com

Afficher le prix du produit Woocommerce avec et sans taxe et montant de la taxe

J'utilise WooCommerce pour WordPress et je répertorie les articles hors taxe.

Je dois montrer séparément le prix (sans taxe) , la taxe et le prix + taxe sur la page du produit (comme dans la page de paiement) .

Je n'ai pas pu trouver de plugin qui fait ça.

Comment puis-je faire ceci?

9
Nuri Akman

WooCommerce v3.0.0 et versions ultérieures
Depuis WooCommerce version 3.0, la fonction woocommerce_price () est déconseillée, tout comme la méthode get_price_including_tax () . Au lieu de cela, vous devez utiliser wc_get_price_including_tax :

<?php echo wc_price( wc_get_price_including_tax( $product ) ); ?>

Avant WooCommerce v3.0.0
Vous devez modifier un modèle. Ne pas modifier le modèle WooCommerce de base, mais plutôt en faire une copie dans votre thème, en utilisant le système de remplacement du modèle WooCommerce. Pour obtenir de l'aide, reportez-vous aux documents WooCommerce sur l'utilisation du système de remplacement de modèle .

Dans le price.php modèle, vous allez ajouter ce bout de code où vous voulez le prix, TTC (TVA):

<?php echo woocommerce_price( $product->get_price_including_tax() ); ?>

Noter la price.php le modèle que vous modifiez doit se trouver ici dans wp-content/themes/[your theme folder]/woocommerce/single-product/price.php

14
cale_b

Mise à jour 2018/2019 (pour Woocommerce 3+)

Pour afficher le prix hors taxe + montant de la taxe + prix TTC (sur des lignes séparées):

Lisez d'abord "Comment remplacer les modèles de Woocommerce via votre thème"

1) Activé single-product/price.php fichier modèle (pages produit uniques) .

Remplacez le code par:

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

global $product;

// Get the prices
$price_excl_tax = wc_get_price_excluding_tax( $product ); // price without VAT
$price_incl_tax = wc_get_price_including_tax( $product );  // price with VAT
$tax_amount     = $price_incl_tax - $price_excl_tax; // VAT amount

// Display the prices
?>
<p class="price-excl"><?php echo wc_price( $price_excl_tax ); ?></p>
<p class="tax-price"><?php  echo wc_price( $tax_amount ); ?></p>
<p class="price-incl"><?php echo wc_price( $price_incl_tax ); ?></p>

2) Activé loop/price.php fichier modèle (Pages de magasin et d'archivage) =.

Remplacez le code par:

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

global $product;

if ( $product->get_price_html() ) :
    // Get the prices
    $price_excl_tax = wc_get_price_excluding_tax( $product ); // price without VAT
    $price_incl_tax = wc_get_price_including_tax( $product );  // price with VAT
    $tax_amount     = $price_incl_tax - $price_excl_tax; // VAT amount

    // Display the prices
    ?>
    <span class="price price-excl"><?php echo wc_price( $price_excl_tax ); ?></span><br>
    <span class="price tax-price"><?php  echo wc_price( $tax_amount ); ?></span><br>
    <span class="price price-incl"><?php echo wc_price( $price_incl_tax ); ?></span>
<?php endif ?>

Documentation:
Structure des modèles et comment remplacer les modèles Woocommerce via votre thème
wc_get_price_including_tax() fonction prix du produit
wc_get_price_excluding_tax() fonction prix du produit
wc_price() formatage fonction prix
wc_get_price_to_display() fonction prix du produit


Réponse originale (avant woocommerce 3):

Avant de vérifier que vos paramètres généraux WooCommerce Fiscalité correspondent à vos besoins.

Comme cale_b suggéré, vous devez copier depuis woocommerce le dossier templates à l'intérieur de votre thème ou thème enfant actif. Renommez-le ensuite woocommerce. Dans ce dossier de modèles woocommerce, vous trouverez dans le sous-dossier single-product Le modèle price.php à éditer en rapport avec l'affichage des prix dans des pages de produits uniques.

Dans single-product/price.php fichier modèle juste après global $product;, Remplacez le code par:

?>
<div itemprop="offers" itemscope itemtype="http://schema.org/Offer">
<?php
    $price_excl = $product->get_price_excluding_tax(); // price without VAT
    $price_incl = $product->get_price_including_tax();  // price included VAT
    $tax_amount = $price_incl - $price_excl; // VAT price amount
?>
    <p class="price"><?php echo woocommerce_price( $price_excl ); /* without VAT */ ?></p> (formatted)
    <p class="price-vat"><?php echo woocommerce_price( $tax_amount); /* VAT */ ?></p>
    <p class="price-and-vat"><?php echo woocommerce_price( $price_incl); /* With VAT  */ ?></p> 

    <meta itemprop="price" content="<?php echo esc_attr( $product->get_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>

Étant donné que les prix supplémentaires ne sont pas formatés, vous devrez peut-être mélanger d'autres éléments avec ces prix supplémentaires en utilisant certaines fonctions php de woocommerce comme:

get_price_suffix( ) // Get the suffix to display after prices > 0.
$currency = esc_attr( get_woocommerce_currency( ) ) // Get the currency code.
get_woocommerce_currency_symbol( $currency ) // Get the currency symbol.
get_tax_class( ) // Returns the tax class.
get_tax_status( ) // Returns the tax status.

Référence: classe WooCommerce WC_Product

9
LoicTheAztec

Pour le moment, vous n'avez plus besoin de modifier un modèle. Vous pouvez définir cela dans les paramètres de Woocommerce:

  • Woocommerce: onglet Taxe: Afficher les prix dans la boutique/Afficher les prix pendant le panier et le paiement
6
SPRBRN