2017-08-05 2 views
1

Dans Woocommerce j'ai installé un plugin d'expédition, mais il calcule l'expédition par article dans le panier au lieu de par commande totale. Ce dont j'ai besoin est de calculer les frais de transport de cette manière: - Le premier kg est de 5 $ - Et 1 $ en kilo pour tous les autres.Définir un coût d'expédition personnalisé calculé sur le poids total du chariot dans WooCommerce

Est-il possible de le faire?

Avec le plug-in s'il y a 2 articles dans le panier de 1 kg chacun, il calcule l'expédition en 2 x 5 $ = 10
$ Au lieu de cela ce que je besoin est: $ (premier kilo) + 1 $(kilo supplémentaire) = (pour 2 kg).

Je n'ai pas de réponse de développeur de plugin, donc à la recherche de travail autour.

+0

Pourriez-vous montrer ce que vous avez essayé de faire? – MinistryofChaps

+0

Je demande un travail ou une solution. Je demande le code à ajouter à mon plugin.php afin que le panier soit soumis en tant que total combiné. merci – linda

+0

oups, qu'est-il arrivé à ma question - quelqu'un l'a édité? Je ne peux pas donner un sens à l'édition maintenant. Je veux savoir comment obtenir mon plugin pour calculer l'expédition basée sur le poids total dans le panier au lieu de sur chaque produit dans le panier .... – linda

Répondre

1

MISE À JOUR: Vous ne avez pas besoin de plug-in (vous pouvez le supprimer).

Pour obtenir un taux d'expédition calculé sur le poids total du panier, avec:

  • un montant initial de 5 $ (pour le premier kilo)
  • un taux variable de 1 $ pour chaque kilo
  • supplémentaire

Effectuez les opérations suivantes:

1) Paramètres dans WooCommerce:
Pour tous vos "taux forfaitaire" méthode d'expédition (dans chaque zone d'expédition), définissez un coût de 1(montant par kilo).

enter image description here

Ainsi, le coût

(Une fois fait désactiver/enregistrer et activer/enregistrer pour rafraîchir le cache WooCommerce transitoire)

2) Code personnalisé(Comme le coût unitaire d'expédition est de 1 $ par kilo, nous ajoutons 4 kilos au poids total du chariot dans les calculs coût de rrect):

add_filter('woocommerce_package_rates', 'custom_delivery_flat_rate_cost_calculation', 10, 2); 
function custom_delivery_flat_rate_cost_calculation($rates, $package) 
{ 
    // The total cart items weight 
    $cart_weight = WC()->cart->get_cart_contents_weight(); 

    foreach($rates as $rate_key => $rate_values){ 
     $method_id = $rate_values->method_id; 
     $rate_id = $rate_values->id; 
     if ('flat_rate' === $method_id) { 
      ## SHIPPING COSTS AND TAXES CALCULATIONS ## 
      $rates[$rate_id]->cost = $rates[$rate_id]->cost*($cart_weight+4); 
      foreach ($rates[$rate_id]->taxes as $key => $tax){ 
       if($rates[$rate_id]->taxes[$key] > 0){ 
        $tax_cost = number_format($rates[$rate_id]->taxes[$key]*($cart_weight+4)); 
        $rates[$rate_id]->taxes[$key] = $tax_cost; 
       } 
      } 
     } 
    } 
    return $rates; 
} 

Code va dans le fichier function.php de votre thème enfant actif (ou le thème) ou encore dans un fichier de plug-in.

Ce code a été testé et fonctionne sur les versions 2.6 de woocommerce.x and 3+

+0

Merci pour la suggestion. La raison pour laquelle nous utilisons le plugin est parce qu'il y a tellement de variables pour calculer le prix d'expédition basé sur le poids et l'emplacement avec plusieurs services offerts tels que nuit, route, etc, ceux-ci sont définis dans une API - je ne sais pas corriger ... – linda

+0

Je voudrais insérer une image de comment le code actuel ressemble - comment puis-je insérer l'image (ctrl G ne fonctionne pas .. – linda

+0

@linda Je choisis un plugin, vous êtes prisonnier de ce que le plugin permet En général, c'est quelque chose de fermé, donc utiliser le plugin ne vous permettra pas d'obtenir ce que vous voulez ... et personne ne va vraiment vous aider dans ce cas. – LoicTheAztec