commerce_price_components_handler_area_order_total.inc in Commerce price by components 7
File
includes/views/handlers/commerce_price_components_handler_area_order_total.inc
View source
<?php
class commerce_price_components_handler_area_order_total extends views_handler_area {
function option_definition() {
$options = parent::option_definition();
$components = commerce_price_component_titles();
foreach ($components as $key => $component) {
$options['commerce_price_components']['default'][$key] = $key == 'base_price' ? TRUE : '';
}
return $options;
}
function options_form(&$form, &$form_state) {
parent::options_form($form, $form_state);
$form += commerce_price_components_settings_form($this->options);
$form['commerce_price_components']['#states'] = array(
'invisible' => array(
'input[name="options[info][total]"]' => array(
'checked' => FALSE,
),
),
);
}
function render($empty = FALSE) {
if (!$empty) {
foreach ($this->view->argument as $name => $argument) {
if ($argument instanceof commerce_order_handler_argument_order_order_id) {
if (count($argument->value) == 1) {
$order = commerce_order_load(reset($argument->value));
$components = $order->commerce_order_total[LANGUAGE_NONE][0]['data']['components'];
foreach ($components as $key => $component) {
if (!$this->options['commerce_price_components'][$component['name']]) {
unset($components[$key]);
}
}
$order->commerce_order_total[LANGUAGE_NONE][0]['data']['components'] = $components;
$price = commerce_price_component_total($order->commerce_order_total[LANGUAGE_NONE][0]);
$price['data']['components'] = $components;
$order->commerce_order_total[LANGUAGE_NONE][0] = $price;
$display = array(
'label' => 'hidden',
'type' => 'commerce_price_formatted_components',
'settings' => array(
'calculation' => FALSE,
),
);
$field = field_view_field('commerce_order', $order, 'commerce_order_total', $display);
return '<div class="commerce-order-handler-area-order-total">' . drupal_render($field) . '</div>';
}
}
}
}
return '';
}
}