2015-10-19 104 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