/**
* 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('field_my_field')->getValue();
// 예: 각 라인아이템 별로 값 저장.
$result[$item->id()] = $values;
}
$variables['my_custom_fields'] = $result;
}
안효익 | 시민정치마당
주요 콘텐츠로 건너뛰기
약력/경력
청산초 졸 / 청산중 졸 / 청주고 졸/ 대전대 행정학과(지방자치과 전공) 졸 / 대전대학교 7대 총학생회장 / 청산어린이집 운영위원장 / 청산초등학교 운영위원장 / 청산중학교 운영위원장 / 청산고등학교 운영위원장 / 청산초 64회 동창회장 / 청산중 총동문회 사무국장 / / 대전대 총동문회 부회장 / 청산면 주민자치분과장 / 청산면 바르게살기 사무장 / 정순철기념사업회 홍보이사 / 한화증권 근무 / 삼성화재 대리점대표 및 명예보상위원 / 청산면 새마을지도자 / 옥천군 새마을 이사 / 제6대 옥천군의회 전반기 산업경제위원장 / 제6대 옥천군의회 후반기 부의장/제7대 옥천군의회 의원 / 옥천군민주평화통일자문회의 자문위원