特定の製品の在庫カレンダーに応じて、現在の製品ラインアイテムの使用可能な日付をミラー化したいと思います。可用性カレンダーは、その製品の所有者/管理者が記入するものです。
次に、その商品のラインアイテム(カートに追加)にある別の日付フィールドがあり、顧客はいつ使用/取得するかを選択できます/その特定の製品をレンタルします。
利用可能日カレンダーで確認できるように、2月19日、21日、23日、26日、28日は満席です。ポップアップカレンダーの同じ日付を無効にしたい。
どうすればそれを達成できますか?
これらは私がすでに試したモジュールです:
私は Easy Booking のデモも確認しました。どの日付が利用できないかを推測する必要がありましたが、これも良くありません。
よろしくお願いします!
残念ながら、状況を修正するために共有できる特定のコードはありません。しかし、心に留めてください!表示する前に変更するように設計されたライブラリを使用しています。つまり、カスタムのphpとjavascriptを少し使用すれば、これを実行できます。
JavaScriptの使用: https://stackoverflow.com/questions/9742289/jquery-ui-date-picker-disabling-specific-dates
Drupalを使用してJavascriptに変数を送信するには: 。phpファイルから.jsファイルに変数を送信する方法は?
これはおそらく最も抽象的な問題です。ノード内から可用性を保存しているようです。 devel モジュールを使用して$node = node_load(123); dpm($node);
を試し、Availabilityフィールド配列がどのように見えるかを確認することをお勧めします。これは次のステップで行います。 ( 開発モジュールのLyndaシリーズ )
幸い、これは非常に簡単です。残念ながら、これは完全ではなく、実用的なソリューションを実現するにはかなりの試行錯誤が必要です。難しい方法を学ぶことへようこそ:)
<?php
/**
* Implements hook_form_alter()
*/
function MODULE_form_alter(&$form, &$form_state, $form_id) {
// Avoid bundle cart forms and other forms
if (strpos($form_id, 'commerce_cart_add_to_cart_form_') === 0) {
$current_node = menu_get_object();
// view the current node structure for your availability
dpm($current_node);
// view the current product's form array
// you may not actually need to change the form here, but
// I anticipate you needing to attach a javascript snippet to the
// form so that it gets run each time the ajax loads a new
// product
dpm($form);
// add your js to the php form
$js_settings = "js array for your availability?";
$form['#attached']['js'][] = array(
'data' => array('module' => $js_settings),
'type' => 'setting',
);
}
}
?>