2015-10-19 102 views
0

我嘗試對Drupal Commerce優惠券窗格(向其中添加一個div)做一些小改動。我試圖鉤這樣的功能:掛鉤drupal商務優惠券窗格

function commerce_coupon_pane_checkout_form($form, &$form_state, $checkout_pane, $order) { 
       // Allow to replace pane content with ajax calls. 
       $pane_form = array(
       '#prefix' => '<div id="commerce-checkout-coupon-ajax-wrapper">', 
       '#suffix' => '</div>', 
      ); 
     (..) 
} 

要做到這一點我在我的模塊中創建一個函數:

function <mymodule>_form_commerce_coupon_pane_alter(&$form, &$form_state, $form_id) { 
     $form['#prefix'] = '<div id="collapsable-panel"><p>You have coupon? Add it here.</p>' + $form['#prefix']; 
     $form['#suffix'] = $form['#suffix'] + '</div>'; 
    } 

,但它不工作。我認爲應該有其他方式來勾選結帳窗格,但我無法弄清楚如何做到這一點。

回答

0

您的意圖是正確的,但表單ID不正確。它應該是這樣的function <mymodule>_form_commerce_coupon_pane_checkout_alter

如果還是不行,這裏是另一種嘗試:

function YOURMODULE_form_alter(&$form, &$form_state, $form_id) { 
    if($form_id == "YOU NEED TO DISCOVER THE FORM ID") { 
     // Do whatever you want here 
    } 
} 

不要忘記清除所有緩存!

+0

不幸的是,對於Drupal Commerce而言,這種方式並不奏效。 commerce_coupon_pane_checkout_form中的表單令人困惑,因爲事實上它不處理表單,而是用於創建一個大結帳表單的一部分。我花了一些時間來弄清楚如何處理這個任務,最後我在這裏發佈了正確的答案:http://drupal.stackexchange.com/questions/178025/how-to-hook-checkout-pane-defined-in-another -module – KraggTheGrimm