web-dev-qa-db-ja.com

配送料の計算を自動化するにはどうすればよいですか?

Drupal 7の送料を自動計算することはできますか?クーポンも統合して自動化する方法はありますか?例:送料無料クーポン。

現在、誰かが無料発送クーポンを入力する場合、これらは必要な手順です。

  1. FREESHIPPINGコードを入力してください
  2. 注文する
  3. 注文を更新
  4. 送料を計算します
  5. 「送料無料」ではなく「送料無料」を選択

最後の3つのステップはかなり長いプロセスであり、一部のお客様はpdate orderをクリックした後にCalculate Shippingをクリックすることを知らない可能性があるため、除外します。彼らはクーポンが壊れていると思うかもしれません。とにかく、送料無料コードの適用は自明です。私が探しているのは、クーポンウィンドウでApply to Orderをクリックしたときに、ユーザーが配送国を入力または変更したときに配送料を計算する方法を自動化する方法です。

何か考えはありますか?

3
Chris Lai

私はまだD6を使用していますが、jQueryで同様のことを行いました。

次のようなmymodule.moduleファイルを作成します。

_<?php

function mymodule_form_alter(&$form, &$form_state, $form_id){
  if ($form_id == 'uc_cart_checkout_form'){

    drupal_add_js(drupal_get_path('module', 'mymodule') . '/mymodule.js');

  }
}
_

あなたのhook_form_alterのフォーマットは7では異なるかもしれませんが、これのための至る所にチュートリアルがあります。ポイントは、drupal_add_js(ここでも形式が異なる可能性があります)を使用して、必要なIDを持つフォーム(チェックアウトフォーム)のみにJavaScriptを詰め込むことです。

次のようなmymodule.infoを作成します。

 name =送料を再計算する
 description = JavaScriptを使用して、チェックアウト時に[送料の計算]ボタンをクリックします。
 core = 6.x 
 dependencies [] = uc_quote 
 package = "Example.comカスタムモジュール" 

(しかし、あなたはコアです7.x-別のモジュールの情報ファイルをコピーします。)そして、次のようなmymodule.jsファイルを作成します。

_$(document).ready(function(){
      $("#edit-panes-quotes-quote-button").click();
      $("#edit-panes-delivery-copy-address").click();
});

$(document).ready(function(){
   $("#edit-panes-billing-billing-zone").change(function() {
      $("#edit-panes-quotes-quote-button").click();
   });
});

$(document).ready(function(){
   $("#edit-panes-delivery-delivery-zone").change(function() {
      $("#edit-panes-quotes-quote-button").click();
   });
});
_

これはユーザーの「計算」ボタンをクリックするだけですが、jQueryを使用してより多くのものをクリックする方法を理解できると確信しています。

Id = "cram"属性を持つドロップダウン選択があるとします。 jsファイルでは、$("#cram")を使用して、ID "cram"のすべてを選択します。

_$("#cram").change(function() {
_

末尾に.change()を付けると、#cram要素が変更されたとき、たとえば別の果物/げっ歯類が選択されたときなど、_.change_の後の角括弧の間の何かがトリガーされます。ここでは関数をトリガーしており、その場で定義されています。

セレクタの最後に.click()を付けると、選択した要素をクリックします。

楽しい :)

3
griz