2014-07-22 5 views
0

Je suis actuellement en utilisant ce code pour calculer la taxe sur un de mes formulaires, mais je voudrais avoir un autre formulaire calculer la taxe ainsi et je ne suis pas sûr de savoir comment modifier ce code afin ça affecte 2 formes ou s'il y a quelque chose de mieux que je puisse faire ???Gravity Forms - Formes multiples avec la taxe

 

    // update the "78" to the ID of your form 
    add_filter('gform_pre_render_78', 'add_total_script'); 
    function add_total_script($form) { 
     ?> 

     
     function gform_product_total(formId, total){ 
      var tax = ((5 * total)/100); // update the "20" to the desired tax percentage; 
      tax = Math.round(tax*100)/100; //rounding tax to 2 decimal digits 
      return total + tax; 
     } 
     

     'Tax', // name that will appear in PayPal and pricing summary tables 
      'price' => $tax, // amount of total tax 
      'quantity' => 1 
      ); 

     return $product_info; 
    } 

    function get_total($products) { 

     $total = 0; 
     foreach($products["products"] as $product){ 

      $price = GFCommon::to_number($product["price"]); 
      if(is_array($product["options"])){ 
       foreach($product["options"] as $option){ 
        $price += GFCommon::to_number($option["price"]); 
       } 
      } 
      $subtotal = floatval($product["quantity"]) * $price; 
      $total += $subtotal; 

     } 

     $total += floatval($products["shipping"]["price"]); 

     return $total; 
    } 

Répondre

0

Depuis l'introduction des « calculs » dans les formes de gravité (ne me souviens pas quelle version), cette méthode de calcul de l'impôt est nécessaire que si le calcul de l'impôt est très compliqué. On dirait que votre impôt est assez simple.

Voici un article qui démontre la meilleure façon d'ajouter la taxe pour vos formulaires de gravité (et fournit également une balise de fusion pour générer le sous-total actuel):

http://gravitywiz.com/subtotal-merge-tag-for-calculations/

Assurez-vous check out the demo à voyez ça en action.

+0

Merci. J'ai déjà vu cet article, mais je n'arrive pas à le faire fonctionner pour moi. Il dit d'ajouter le code dans mes functions.php mais quand je le fais, je reçois juste l'écran blanc de la mort et rien ne fonctionne. Y a-t-il peut-être une autre solution pour cela? ou quelque chose qui me manque? J'utilise un thème gratuit appelé Pinboard si ça aide. – Cameron

+0

Consultez cette page pour plus d'aide: l'installation des extraits http://gravitywiz.com/documentation/snippet-troubleshooting/ Sinon, déposez un commentaire sur l'article (même si vous avez déjà précédemment) et je serai heureux d'aider. – David

0

Veuillez vérifier le code ci-dessous. Ajouter javascript pour afficher la taxe dans le frontal

<script type="text/javascript"> 
    gform.addFilter('gform_product_total', function(total, formId){ 
    var tax = 10, 
     newtax = (total * tax)/100 ; 
     return total + newtax; 
    }); 
</script> 

Maintenant, nous allons mettre à jour la taxe à la base de données.

function saiful_gf_remove_money_symbol($s) { 
    return GFCommon::to_number($s); 
} 
add_filter('saiful_gf_remove_money_symbol', 'saiful_gf_remove_money_symbol'); 

function saiful_gf_to_money($s) { 
    return GFCommon::to_money($s); 
} 
add_filter('saiful_gf_to_money', 'saiful_gf_to_money'); 

add_filter('gform_product_info', 'add_fee', 10, 3); 
function add_fee($product_info, $form, $lead) { 
    $tax = 10; 
    $loop_price = 0; 
    if(isset($product_info['products']) && count($product_info['products']) > 0){ 
     foreach ($product_info['products'] as $data){ 
      if(isset($data['options']) && count($data['options']) > 0){ 
       foreach ($data['options'] as $key => $option) { 
        $loop_price += floatval($option['price']); 
       } 
      } 
      $new_price = apply_filters('saiful_gf_remove_money_symbol',$data['price']) + $loop_price ; 
      $new_price = (($new_price * $tax)/100) + apply_filters('saiful_gf_remove_money_symbol',$data['price']); 
      $data['price'] = apply_filters('saiful_gf_to_money', $new_price); 
      $product_info['products'] = $data; 
     } 
    } 
    return $product_info; 
} 

Merci

Questions connexes