Drupal Commerce의 테마 체크 아웃 페이지


16

Drupal Commerce에서 장바구니 및 결제 페이지를 어떻게 테마로 설정합니까? 콘텐츠, 계정, 청구 및 지불 부분을 설정했습니다. 만들-. tpl.php 파일이 있습니까?


Commerce Cart 및 Checkout의 어떤 측면을 변경하려고하는지, 최종 결과가 무엇인지를 더 구체적으로 설명 할 수 있다면 다른 사람들이보다 유용한 답변을 제공 할 수 있습니다.
sheena_d

비슷한 문제를 다루는 곳! 마크 업을 수정하기 위해 hook_form_alter ()를 사용하고 싶었습니다. 기껏해야 이미 테이블로 렌더링 된 "데이터"필드가 나타납니다. 렌더링하기 전에 양식 요소에 대해 작업 할 수 있기를 바랍니다. 여전히 검색 중 ...
PatrickS

답변:


14

테마 장바구니 페이지 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을 읽으십시오


이것은 나에게 많은 도움이되었지만이 질문이 내 것이 아니기 때문에 나는 단지 하나의 엄지 손가락 만 줄 수있다 :)
RajeevK

8

Checkout 모듈과 관련된 Commerce의 유일한 템플리트 파일은 commerce-checkout-errors-message.tpl.php 및 commerce-checkout-help.tpl.php입니다. 이들은 Commerce 모듈 디렉토리의 modules / checkout / theme에 있습니다.

Cart 모듈과 관련된 유일한 템플리트 파일은 commerce-cart-block.tpl.php이며, 이는 Commerce 모듈 디렉토리의 modules / cart / theme에 있습니다.


5

실제로 가장 쉬운 방법은 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 ...

}

3

사용하는 기본 테마에 따라 본문 클래스를 사용할 수도 있습니다. 예를 들어 클래스 .checkout을 사용하여 본문의 하위 항목에 특정 값을 제공 할 수 있습니다. 레이아웃을 약간 지그하기에 충분할 수 있습니다.


2

어떤 테마 후크를 구현하고 어떤 플레이트를 채택 할 것인지에 대한 정보를 제공하는 Theme Develper 모듈을 사용해 보셨습니까?


2

장바구니 페이지는보기 일 뿐이므로 다른보기로 스타일을 지정하십시오.

  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


2

자신 만의 .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>

또는 그대로두고 주변에서 작업 할 수 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.