次のモジュールを使用してカスタムチェックアウトペインを追加し、注文に関するユーザーからいくつかの追加情報を取得しました。
https://drupal.org/project/commerce_fieldgroup_panes
次に、注文に特定の製品タイプの製品が含まれている場合にこのペインを表示し、それ以外の場合は非表示にするという条件を適用する必要があります。
誰かが私にこれをどのように行うことができるかを教えてくれますか?.
https://drupal.org/node/1807092 から次のコードを見つけましたが、必要に応じて変更する方法がわかりません。このコードを変更および使用する方法に関するヘルプを探しています。
<?php function commerce_conditional_panes_commerce_checkout_pane_info_alter(&$checkout_panes, $form, &$form_state) {
global $user;
foreach($checkout_panes as $pane_name => &$pane_data) {
// load current order
$order = commerce_cart_order_load($user->uid);
// retrieve the value of controlling field
$order_wrapper = entity_metadata_wrapper('commerce_order', $order);
$control = $order->field_make['und']['0']['value'];
// Perform switch to see what to do with each aircraft make
switch ($control)
{
case "value1":
break;
case "value2":
break;
case "value3":
break;
case "value4":
break;
case "value5":
break;
case "value6":
// ...we only need to override one of them
if($pane_name == 'commerce_fieldgroup_pane__conditional_pane' && $pane_data['enabled']) {
// the pane is enabled by default, so we need to disable it
$pane_data['enabled'] = 0;
}
break;
case "value6":
break;
case "value7":
break;
case "value8":
break;
default:
break;
}
}
}
?>
確かにあなたのプロジェクトには遅すぎます...とにかく、あなたは Commerce Rules Extra を使用できます、それはあなたが必要とする正確な機能を追加します:
- ルール条件:タイプ数量の製品の合計の比較:指定されたタイプの数量の製品の合計
- ルールアクション:ペインプロパティの変更:ペインの表示、ページ、ウェイトの変更
インストールしたら、チェックアウト設定で、ペインをデフォルトで無効に設定し、新しいルールを作成します
ペインを非表示にするために「Commerce Rules Extra」を使用できなくなったため、Kojoの回答は機能しなくなります。
参照: https://www.drupal.org/node/2083981#comment-974075
「hook_commerce_order_view_alterはもう存在しないようです、あなたは正しいです」-Perignon(モジュールメンテナー)