在Drupal Commerce中设置主题结帐页面


15

如何在Drupal Commerce中为购物车和结帐页面设置主题?我已经设置了内容,帐户,帐单和付款部分。是否有要创建的-。tpl.php文件?


如果您可以更详细地了解要更改的“商务购物车”和“结帐”的哪些方面以及希望的最终结果,它将有助于其他人为您提供更有用的答案。
sheena_d 2011年

在这里处理类似的问题!我希望使用hook_form_alter()来修改标记。充其量,我会得到一个已经呈现为表格的“数据”字段。人们希望可以在表单元素呈现之前对其进行操作...仍在搜索...
PatrickS

Answers:


13

对于主题购物车页面page--cart.tpl.php,在主题的模板目录中添加。

对于主题结帐页面,请添加page--checkout.tpl.php主题的模板目录。如果要设置主题,则仅将结帐评论页面添加page--checkout--review.tpl.php到模板目录中。

添加tpl文件后,不要忘记清除缓存。

如果您想了解更多钩子,请执行dpm($variables)内部YOURTHEMENAME_preprocess_page函数并查看theme_hook_suggestions数组。

有关详细信息,请阅读此评论http://drupal.org/node/1142800#comment-5365466


这对我
很有帮助,

7

Commerce中与checkout模块相关的唯一模板文件是commerce-checkout-errors-message.tpl.php和commerce-checkout-help.tpl.php。这些位于modules / checkout / theme下的Commerce模块目录中。

与Cart模块有关的唯一模板文件是commerce-cart-block.tpl.php,它位于Commerce模块目录下的modules / cart / theme下。


4

实际上,我认为最简单的方法是使用hook_form_FORM_ID_alter()更改结帐表单。如果您只需要更改结帐表格中的部分即可。

如我所见,大多数“结帐和结帐评论”页面内容都在表单内。第一个是“ commerce_checkout_form_checkout ”,第二个是“ commerce_checkout_form_review ”。如果您知道如何使用表单API以及如何通过使用hook_form_FORM_ID_alter()来更改表单。更改表单内容将非常容易。像重新排列它们或插入/删除元素。

这是一个向结帐页面添加通知的简单示例

function my_module_form_commerce_checkout_form_alter(&$form, &$form_state, $form_id) {

  //If you have Devel module, uncomment to see what is the original form data
  //kpr($form);

  //uncomment to see current form_id
  //echo $form_id;

  //check form id
  if($form_id == 'commerce_checkout_form'){
    $form['my_test_notice'] = array(
      '#markup' => '<h1>Hello, this is a checkout test!</h1>',
      '#weight' => -1,
    );
  }
  elseif($form_id == 'commerce_checkout_form_review'){
    $form['my_test_notice'] = array(
      '#markup' => '<h1>Hello, this is a checkout review test!</h1>',
      '#weight' => -1,
    );
  }
  //You can add more ...

}

2

您还可以使用主体类(取决于您使用的基本主题,这些经常可用)。例如,这允许您使用类.checkout为身体的子项提供特定的值。这可能足以稍微调整一下布局。



1

购物车页面只是一个视图,因此可以将其设置为其他任何视图的样式:

  1. 以管理员身份登录后,转到页面,找到并单击“编辑视图”链接。

  2. 在视图编辑页面上,打开“高级”视图设置,然后单击“主题信息”

  3. 在那里,您可以看到如何命名模板(即,views-view--commerce-cart-summary--default.tpl.php),以及是否以行开头的模板名称(即,首先是“ Display output”)您可以看到默认模板,将其复制,以其他名称保存在主题的模板目录中,并根据需要进行修改)。

  4. 或者,您可以自己构建这些页面(视图)。http://www.drupalcommerce.org/user-guide/modifying-shopping-cart-using-views


1

您可以创建自己的.tpl文件,并使用hook_theme函数调用它们:

function yourtheme_theme(&$existing, $type, $theme, $path) {
  return array(
    'commerce_cart_add_to_cart_form'=> array(
    'render element' => 'form',
    'template' => 'path/to/template/commerce_cart_add_to_cart_form',
  ),
    'commerce_checkout_form_review'=> array(
    'render element' => 'form',
    'template' => 'path/to/template/commerce_checkout_form_review',
  ),
  ...
  ...(more templates)
}

由于这些都是表单,因此您可以隐藏表单,找到所需的内容,并在模板中使用自己的标记。

<?php
  hide($form);
  dpm($form);
?>

<div>
  print render($form[...]);
</div>

或者,您可以保留原样并在其周围做一些事情。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.