/** * 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; } 쓰레기 줍기도 스포츠다!!! | 시민정치마당 주요 콘텐츠로 건너뛰기
사이드바

쓰레기 줍기도 스포츠다!!!

월, 2021/02/15- 17:00admin 에 의해 제출됨
관련 개인/그룹
지역
카테고리

어른 아이 할 거 없이 누구나 참여할 수 있는 ‘스포GOMI’※ GOMI는 일본어로 쓰레기라는 뜻는 팀별 쓰레기 줍기를 스포츠로 즐기면서 환경 문제에 대해 생각할 수 있는 행사로, ‘일반사단법인 소셜 스포츠 이니셔티브'(이하, (사)스포츠 이니셔티브)가 운영한다. 2008년 시작된 이후 650회가 넘게 개최된 스포GOMI대회는 작년 환경부 장관상을 수상했고, ‘쓰레기 줍기는 스포츠다!’라는 캐치프레이즈를 일본 국내를 넘어 세계 각지에 확산하고 있다. 환경미화와 스포츠를 융합한 사회공헌 이벤트‘스포GOMI’는 (사)스포츠 이니셔티브가 경기 규칙을 만들어 운영하고 있다. 즐기면서 참여할 수 있는 사회공헌 활동이기에 지자체나 기.......

댓글 달기

CAPTCHA
스펨 사용자 차단 질문