/** * Implements hook_preprocess_commerce_checkout_form(). */ function bootstrap_barrio_subtheme_preprocess_commerce_checkout_form(&$variables) { $form = &$variables['form']; $custom_fields = []; // 주문 엔터티 추출 시도 $order = NULL; $possible_keys = ['#order', 'order', '#entity', 'checkout']; foreach ($possible_keys as $key) { if (!empty($form[$key]) && $form[$key] instanceof \Drupal\commerce_order\Entity\OrderInterface) { $order = $form[$key]; \Drupal::logger('mytheme')->debug('Order found with key: @key', ['@key' => $key]); break; } } // 대체 방법: 현재 체크아웃 단계에서 주문 엔터티 로드 if (!$order) { $checkout_flow = \Drupal::routeMatch()->getParameter('commerce_checkout_flow'); if ($checkout_flow) { $order = \Drupal::routeMatch()->getParameter('commerce_order'); \Drupal::logger('mytheme')->debug('Order loaded from route: @order_id', ['@order_id' => $order ? $order->id() : 'none']); } } if ($order && $order instanceof \Drupal\commerce_order\Entity\OrderInterface) { foreach ($order->getItems() as $order_item) { $variation = $order_item->getPurchasedEntity(); $product = $variation ? $variation->getProduct() : NULL; if ($product) { $footer_block_value = $product->hasField('field_footer_block') && !$product->field_footer_block->isEmpty() ? $product->field_footer_block->value : 'N/A'; $custom_fields[] = [ 'footer_block' => $footer_block_value, ]; \Drupal::logger('mytheme')->debug('Field footer_block value: @value for product: @product_id', [ '@value' => $footer_block_value, '@product_id' => $product->id(), ]); } else { \Drupal::logger('mytheme')->debug('No product found for order item: @id', ['@id' => $order_item->id()]); } } } else { $custom_fields[] = ['footer_block' => '주문 엔터티를 찾을 수 없습니다.']; \Drupal::logger('mytheme')->debug('No order entity found. Form keys: @keys', ['@keys' => implode(', ', array_keys($form))]); } $variables['custom_fields'] = $custom_fields; $variables['form_keys'] = array_keys($form); } function bootstrap_barrio_subtheme_preprocess_commerce_checkout_order_summary(&$variables) { /** @var \Drupal\commerce_order\Entity\OrderInterface $order */ $order = $variables['order_entity']; $result = []; foreach ($order->getItems() as $item) { $variation = $item->getPurchasedEntity(); // 커스텀 필드값 가져오기 (배열 형태). $values = $variation->get('body')->getValue(); // 예: 각 라인아이템 별로 값 저장. $result[$item->id()] = $values; } $variables['body'] = $result; } [평생학습동향리포트 ‘와’] 다른 삶은 가능하다③ | 시민정치마당 주요 콘텐츠로 건너뛰기
사이드바

[평생학습동향리포트 ‘와’] 다른 삶은 가능하다③

목, 2016/06/09- 08:47익명 (미확인) 에 의해 제출됨
관련 개인/그룹
지역

【기획 연재】 다른 삶은 가능하다③

[인터뷰] 불편하다면 멈춰라, 그리고 행동하라

– 『적당히 벌고 잘 살기』 저자

[인터뷰] 불편하다면 멈춰라, 그리고 행동하라

현재의 삶이 지루하기 짝이 없고 무의미하고 답답할 때, 아니 다른 세상, 다른 꿈을 꾸기 시작했다면 지금 자신의 현 실태를 바꾸어보자. 두려움은 있을 수 있지만 그 어떤 보험도 존재할 순 없다. 오직 자신에 대한 신뢰뿐. 일단은 너무 무겁지 않게 한번 접속해보자.

[공부를 공부하다_춤추는 사람들] 몸으로 배우는 사람

[공부를 공부하다_춤추는 사람들] 몸으로 배우는 사람

“춤은 참 정직해요. 아무리 부정하려고 해도 부정할 수 없는 제 모습이 나와버려요. 춤을 추면서 계속 저를 발견하게 돼요. 계속 춤을 추다 보면 변하는 지점도 생기지 않을까, 그럼 제 일상생활에서도 드러나지 않을까 생각해요. 정말 공부죠. 모든 활동이 저한텐 놀이이면서 공부에요.”

[혁신·교육思考] 공감교육, 지금 시작하지 않으면 늦는다

[혁신·교육思考]

공감교육, 지금 시작하지 않으면 늦는다

단순히 감정을 다루는 감성교육이 아닌, 문제를 해결할 필요를 보는 눈을 기른다. 인간과 세상에 대한 깊은 이해와 통찰력은 공감능력의 핵심이다.

[분투의 기록_시흥청년아티스트]

[분투의 기록_시흥청년아티스트]

인생을 건 도전에 실패란 용납되지 않는다. 포화상태인 그 도전에 청년과 청년에게 소외된 지역은 점차 병들어간다. 이 경쟁을 끊어낼 수 있는 계기가 있다면… 변화는 작은 곳에서 시작된다.

평생학습동향_수원

평생학습동향_국내

수원시평생학습관

댓글 달기

CAPTCHA
스펨 사용자 차단 질문