У данного модуля есть тема, определяющая подсчет суммы
<?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
Подскажите пожалуйста