2017-09-05 7 views
1

J'essaie de faire une chose assez simple, mais pour moi, je ne pas le faire fonctionner.conditionnellement WooCommerce panier grande personnaliser la production totale basée sur les frais

C'est du WC-panier-functions.php

 if (! empty($tax_string_array)) { 
      $taxable_address = WC()->customer->get_taxable_address(); 
      $estimated_text = WC()->customer->is_customer_outside_base() && ! WC()->customer->has_calculated_shipping() 
       ? sprintf(' ' . __('estimated for %s', 'woocommerce'), WC()->countries->estimated_for_prefix($taxable_address[0]) . WC()->countries->countries[ $taxable_address[0] ]) 
       : ''; 
      $value .= '<small class="includes_tax">' . sprintf(__('(includes %s)', 'woocommerce'), implode(', ', $tax_string_array) . $estimated_text) . '</small>'; 
     } 
    } 

    echo apply_filters('woocommerce_cart_totals_order_total_html', $value); 
} 

La valeur $ devrait être différente si une $fee est appliqué. Mais je reçois seulement 0.00 € Valeur de $fee Variable si je vérifie pour.

Quelqu'un pourrait-il me s'il vous plaît aider simplement appliquer la valeur de la taxe dans une variable et vérifier dans un simple if clause comme:

si des frais est appliqué ---> 1
autre ---> 2

Comment puis-je le faire?

Répondre

0

Comme vous pouvez le voir, vous pouvez utiliser le crochet de filtre woocommerce_cart_totals_order_total_html situé dans ce code de base wc-cart-functions.php, pour modifier la sortie du grand panier total:

add_filter('woocommerce_cart_totals_order_total_html', 'custom_cart_totals_order_total_html', 10, 1); 
function custom_cart_totals_order_total_html($value) { 
    // Get the fee cart amount 
    $fees_total = WC()->cart->fee_total; 

    // HERE is the condition 
    if(! empty($fees_total) && $fees_total != 0){ 
     // Change/customize HERE $value (just for test) 
     $value .= " <small>($fees_total)<small>"; 
    } 

    // Always return $value 
    return $value; 
} 

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

Ce code a été testé et fonctionne.

jamais OVERIDE fichiers de base, car cela est interdit quelque chose, dangereux et pas pratique pour de nombreuses raisons

Vous aurez besoin de personnaliser le code dans la condition pour $value

+0

Wohoooo! Merci beaucoup !!! Fonctionne perfekt pour mes besoins. Juste deux petits problèmes sont partis et tu m'as sauvé la vie. Je dois passer le même à la vue d'ensemble après la commande et à l'e-mail qui est envoyé au client. Une idée sur la façon de faire le tour? ------> 10000000 Merci d'avance! –

+1

Oui c'est fait! Merci beaucoup. Mais qu'en est-il de l'e-mail et après la caisse? Voulez-vous s'il vous plaît être si gentil m'aider là aussi? –