2017-05-11 2 views
1

Je souhaite mettre à jour le sous-total du panier dans WooCommerce.Mise à jour du sous-total du panier dans WooCommerce

Comment ajouter une action pour modifier le sous-total dans WooCommerce?

J'ai essayé de par ce code, mais ne fonctionne pas. Je voudrais multiplier par 12 le sous-total du panier et afficher ce calcul sur la page du panier.

Voici mon code:

add_action('woocommerce_before_calculate_totals', 'add_custom_price'); 
function add_custom_price($total) { 

    foreach ($total->cart_contents as $key => $value) { 

     $modifiedtotal = $total->subtotal * 12; 
     // -------------------------------- 
     //how can get subtotal with multiply by 12 and it should be show on cart page. 
    } 
} 

Répondre

0

Utilisation 'woocommerce_calculate_totals' au lieu de 'woocommerce_before_calculate_totals'

+0

Merci pour votre réponse. J'ai vérifié avec ceci mais pas le succès. pouvez-vous s'il vous plaît mettre le code ici où je peux montrer sous-total avec multiplier par 12. –

4

Vous utilisez le crochet du droit et est ici le code fonctionnel et testé pour la version 2.6x WooCommerce à 3.0+, qui est va faire l'affaire (au lieu que vous pouvez faire votre calcul sur les articles de panier, et vous obtiendrez la même chose):

add_action('woocommerce_before_calculate_totals', 'add_custom_price', 10, 1); 
function add_custom_price($cart_object) { 

    if (is_admin() && ! defined('DOING_AJAX')) 
     return; 

    foreach ($cart_object->get_cart() as $cart_item) { 
     ## Price calculation ## 
     $price = $cart_item['data']->price * 12; 

     ## Set the price with WooCommerce compatibility ## 
     if (version_compare(WC_VERSION, '3.0', '<')) { 
      $cart_item['data']->price = $price; // Before WC 3.0 
     } else { 
      $cart_item['data']->set_price($price); // WC 3.0+ 
     } 
    } 
} 

Le code va dans le fichier function.php de votre thème enfant actif (ou thème) ou dans n'importe quel fichier plugin.


Explications:

l'aide d'un calcul basé sur le sous-total de panier, n'affiche le calcul du total partiel panier ligne ligne, sans mettre à jour les articles de panier, la ligne articles de panier sous-totaux, et le total du panier.

Vous pouvez le voir essayer ce code de travail pour la version 2.6.x et WooCommerce 3.0+:

add_action('woocommerce_calculate_totals', 'add_custom_price', 10, 1); 
function add_custom_price($cart_object) { 

    if (is_admin() && ! defined('DOING_AJAX')) 
     return; 

    $cart_object->subtotal *= 12; 
} 

Code va dans le fichier function.php de votre thème enfant actif (ou le thème) ou encore dans n'importe quel fichier plugin.

+0

Hey ..... Merci beaucoup, Merci beaucoup. Ça marche pour moi. oui c'était le problème de version. Merci encore. –

+0

Juste une requête. Je veux montrer la quantité totale multipliée avec l'étiquette de subtotal. en fait ce spectacle de code multiplié par le prix unitaire, où l'utilisateur peut confondre le prix unitaire du produit. Pouvez-vous s'il vous plaît montrer seulement la quantité de multiplication en seulement sous-total. Merci d'avance. –