How do you override Commerce checkout pane output? I downloaded the commerce bitcoin module and I'd like to override the current output of the pane. There is no theme_ function to override. How can this be done?

The code is below:

 1 &lt;?php
  2
  3
  4 /**
  5  * Implements base_checkout_form()
  6  * Display the bitcoin address at the checkout
  7  *
  8  */
  9 function commerce_bitcoin_pane_checkout_form($form, $form_state, $checkout_pane, $order) {
 10
 11   
 12   
 13
 14   $output .= t('&lt;strong&gt;Total amount&lt;/strong&gt; %total BTC', array('%total' =&gt; $bittotal)) . '&lt;br/&gt;';                                                                                               15   $output .= t('&lt;a href="https://blockchain.info/address/'. $bitaddress .'" target="_blank"&gt;Check Blockchain.info Payment Status&lt;/a&gt;') . '&lt;br/&gt;';
 16   $checkout_form['commerce_bitcoin_pane_field_display'] = array(
 17     '#markup' =&gt; $output
 18   );
 19
 20   return $checkout_form;
 21 }
Checkout panes are fieldsets within the context of per-page checkout router form. You can use a hook_form_alter() to modify the contents of the entire page that a form is shown on. For instance, if you want to modify objects that appear on the checkout page (which is the first one in Commerce Core), you'd use this hook:

MYMODULE_form_commerce_checkout_form_checkout_alter(&amp;$form, &amp;$form_state) {
  // Make the customer profile billing pane's locality field a bit smaller.
  $form['customer_profile_billing']['commerce_customer_address']['und'][0]['locality_block']['locality']['#size'] = 20;
}


Where commerce_checkout_form_checkout is commerce_checkout_form_ concatenated with the current checkout router step. See commerce_checkout_router(). Each of the panes within the page exists within this form. As Ryan also points out in the comments, the main form traps errors and other items to present them inline with the checkout pane, so a payment error won't show up at the top of the page, but it will show up above the payment pane for instance.

If you're wanting more info on how to theme checkout, I'd recommend you go review the code for Commerce Responsive UI and mimic what it does.

This includes the complete pane which is still a form. If you want to override the form completely, you can just change the callback that is called when the completion pane is being built:

/**
 * Implements hook_commerce_checkout_pane_info_alter().
 */
function MYMODULE_commerce_checkout_pane_info_alter(&amp;$checkout_panes) {           
  $checkout_panes['checkout_completion_message']['callbacks']['checkout_form'] = 'MYMODULE_completion';
}


Then, you put your own output into the new callback. Just copy what commerce_checkout_completion_message_pane_checkout_form() does and put your own content in.