Drupal 7 开发内部培训资料, 分头诗人

关于Commerce License 模块的panel显示问题

赞成!
0
否决!

怎么修改License completion message的文字,

现在显示的是 Your license will be activated once your payment has been processed。 可是我在模块文件里没有搜到相关内容。

我把加入一个Files的链接,类似于"view your order",可以方便用户点击查看自己的license。

 

现在交易完成显示的文字是这样的

c

2 个回答

赞成!
0
否决!

不好意思,刚搜到了,是在sites\all\modules\commerce_license\includes\commerce_license.checkout_pane.inc文件里

相关代码是

function commerce_license_complete_checkout_form($form, &$form_state, $checkout_pane, $order) {
  $pane_form = array(
    '#type' => 'container',
  );
  $balance = commerce_payment_order_balance($order);
  $order_paid = ($balance && $balance['amount'] <= 0);
  $js_attached = FALSE;

  // Show a pane for each found license.
  $licenses = commerce_license_get_order_licenses($order);
  foreach ($licenses as $license) {
    $synchronizable = ($license instanceof CommerceLicenseSynchronizableInterface);
    // If this is a synchronizable license, attach the JS for the refresh.
    if (!$js_attached && $synchronizable) {
      $pane_form['#attached']['library'][] = array('system', 'drupal.ajax');
      $pane_form['#attached']['js'] = array(
        drupal_get_path('module', 'commerce_license') . '/commerce_license.js',
      );
      $js_attached = TRUE;
    }
    // Get the message to show.

    //  要修改这里的显示内容
    $message = t('Your license will be activated once your payment has been processed.');
    if ($order_paid) {
      $refresh = $synchronizable ? TRUE : FALSE;
      $message = commerce_license_checkout_competion_message($license, $refresh);
    }

我直接改源码是不是不太好?

赞成!
0
否决!

hack 代码当然是不好的,但有时候模块写的不完善的话,只能hack。视情况而定的。