Drupal → Заменить сообщение о завершении заказа на свой .tpl.php файл
Два способа заменить сообщение о завершении заказа на свой .tpl.php файл.
Способ 1
Будет работать только из своего модуля.
MODULENAME.module:
/** * Implements hook_theme(). */ function MODULENAME_theme() { return array( 'commerce_checkout_completion_message' => array( 'template' => 'commerce-checkout-completion-message', 'variables' => array( 'order' => NULL, ), ), ); } /** * Implements hook_commerce_checkout_pane_info_alter(). */ function MODULENAME_commerce_checkout_pane_info_alter(&$checkout_panes) { $checkout_panes['checkout_completion_message']['callbacks']['checkout_form'] = 'MODULENAME_completion_message_callback'; } /** * Checkout complete message callback. */ function MODULENAME_completion_message_callback($form, &$form_state, $checkout_pane, $order) { return array( 'message' => array( '#theme' => 'commerce_checkout_completion_message', '#order' => $order, ), ); }
commerce-checkout-completion-message.tpl.php:
Order #<?php echo $order->order_id; ?> completed.
Способ 2
Будет работать и из модуля и из темы.
template.php:
/** * Implements hook_theme(). */ function THEMENAME_theme() { return array( 'commerce_checkout_completion_message' => array( 'template' => 'templates/commerce-checkout-completion-message', 'variables' => array( 'order' => NULL, 'message' => NULL, ), ), ); } /** * Implements hook_form_FORM_ID_alter(): commerce_checkout_form_complete. */ function THEMENAME_form_commerce_checkout_form_complete_alter(&$form, &$form_state) { $form['checkout_completion_message']['message'] = array( '#theme' => 'commerce_checkout_completion_message', '#order' => $form_state['order'], '#message' => $form['checkout_completion_message']['message']['#markup'], ); }
templates/commerce-checkout-completion-message.tpl.php:
<?php echo $message; ?>
Оставить комментарий