Вопрос по модулю commerce_order

Главные вкладки

Аватар пользователя maximturchenko maximturchenko 7 марта 2022 в 17:20

У данного модуля есть тема, определяющая подсчет суммы

<?php
/**
 * Implements hook_theme().
 */
function commerce_order_theme($existing$type$theme$path) {
  return [
    
'commerce_order_total_summary' => [
      
'variables' => [
        
'order_entity' => NULL,
        
'totals' => NULL,
      ],
    ],
  ];
}
?>

И соответсвенно есть template twig, который выводит это все дело. (commerce-order-total-summary.html.twig)

<?php
{#
/**
 * @file
 * Default order total summary template.
 *
 * Available variables:
 * - attributes: HTML attributes for the wrapper.
 * - order_entity: The order entity.
 * - totals: An array of order totals values with the following keys:
 *   - subtotal: The order subtotal price.
 *   - adjustments: The adjustments:
 *     - type: The adjustment type.
 *     - label: The adjustment label.
 *     - amount: The adjustment amount.
 *     - percentage: The decimal adjustment percentage, when available. For example, "0.2" for a 20% adjustment.
 *   - total: The order total price.
 *
 * @ingroup themeable
 */

?>

Вывод:

<?php
  
{% for adjustment in totals.adjustments %}
    <
div class="order-total-line order-total-line__adjustment order-total-line__adjustment--{{ adjustment.type|clean_class }}">
      <
span class="order-total-line-label">{{ adjustment.label }} </span><span class="order-total-line-value">{{ adjustment.amount|commerce_price_format }}</span>
    </
div>
  {% endfor %}
?>

Хука препроцессинга у данного модуля нету, чтобы я variables.totals подправил

Мне нужно чтобы вместо adjustment.label встал элемент формы , вот так я его задаю:

<?php
Функция parcel_order_form_views_form_commerce_cart_form_default_alter 
{
    
$form['is_extra_protection'] = [
      
'#type' => 'checkbox',
      
'#title_display' => 'before',
      
"#weight" => 0,
      
'#title' => t('Extra Protection'),
      
'#default_value'=>$default,
      
'#ajax' => [
        
'callback' => 'parcel_order_change_extra_protection',
        
'disable-refocus' => TRUE,
        
'effect' => 'fade',
        
'progress' => [
          
'type' => 'throbber',
        ],
      ],
    ];  
}
?>

И выводить он отдельно, а мне нужно чтобы он в labels провалился.

Само отображение order_totals подгружается из view в футере.

По верстке все корректно, только нужно прокинуть одно в другое.
Как раз таблица это список полей с view, js-field это то что мы прокинуть как checkbox, и третье это подгруженный компонент в футере view.

Как и на каком уровне мне прокинуть корректно вообще не понимаю.

Либо смотреть в сторону view, либо пытаться ловить preprocessing поля, либо что то думать с переопределением commerce_order_total_summary

Подскажите пожалуйста