91 lines
2.0 KiB
PHP
91 lines
2.0 KiB
PHP
<?php
|
|
|
|
class Wiaas_Order_Item {
|
|
|
|
public static function init() {
|
|
|
|
add_filter( 'woocommerce_hidden_order_itemmeta', array( __CLASS__, 'hidden_order_item_meta' ) );
|
|
}
|
|
|
|
/**
|
|
* Mark extended properties for order as hidden
|
|
*
|
|
* @param array $hidden
|
|
*
|
|
* @return array
|
|
*/
|
|
public static function hidden_order_item_meta( $hidden ) {
|
|
|
|
return array_merge( $hidden, array(
|
|
//'_wiaas_payment_type',
|
|
//'_wiaas_services_extra',
|
|
'_wiaas_service_contract_period',
|
|
'_wiaas_max_contract_period',
|
|
'_wiaas_period_unit',
|
|
//'_wiaas_recurrent_extra',
|
|
'_wiaas_pay_period',
|
|
'_wiaas_addon_items',
|
|
'_wiaas_addon_for',
|
|
'_wiaas_option_items',
|
|
'_wiaas_option_for',
|
|
'_wiaas_option_group_name',
|
|
'_wiaas_standard_package',
|
|
'_wiaas_documents',
|
|
'_wiaas_category',
|
|
'_wiaas_manufacturer_product_no',
|
|
'_wiaas_supplier_product_no',
|
|
'_wiaas_supplier_organization_id',
|
|
'_wiaas_product_price',
|
|
'_wiaas_earliest_installation_additional_days',
|
|
'_wiaas_installation',
|
|
'_wiaas_installation_date'
|
|
) );
|
|
}
|
|
|
|
/**
|
|
* @param WC_Order_Item $order_item
|
|
*
|
|
* @return bool
|
|
*/
|
|
public static function is_standard_bundle($order_item) {
|
|
|
|
$is_standard = $order_item->get_meta('_wiaas_standard_package');
|
|
return ! empty($is_standard);
|
|
}
|
|
|
|
/**
|
|
* @param WC_Order_Item $order_item
|
|
*
|
|
* @return float
|
|
*/
|
|
public static function get_services_total($order_item) {
|
|
$quantity = $order_item->get_quantity();
|
|
|
|
return $quantity * floatval($order_item->get_meta('_wiaas_services_extra'));
|
|
}
|
|
|
|
/**
|
|
* @param WC_Order_Item $order_item
|
|
*
|
|
* @return float
|
|
*/
|
|
public static function get_recurrent_total($order_item) {
|
|
$quantity = $order_item->get_quantity();
|
|
|
|
return $quantity * floatval($order_item->get_meta('_wiaas_recurrent_extra'));
|
|
}
|
|
|
|
/**
|
|
* @param WC_Order_Item $order_item
|
|
*
|
|
* @return float
|
|
*/
|
|
public static function get_monthly_recurring_total($order_item) {
|
|
|
|
return self::get_services_total($order_item) + self::get_recurrent_total($order_item);
|
|
}
|
|
|
|
}
|
|
|
|
Wiaas_Order_Item::init();
|