Add package addons and options
This commit is contained in:
@@ -85,7 +85,7 @@ class Wiaas_Order {
|
||||
$data = $response->get_data();
|
||||
|
||||
# apply overrides
|
||||
$data = self::_append_products_info($data, $order, $request);
|
||||
$data = self::_append_packages($data, $order, $request);
|
||||
|
||||
$data = self::_append_order_process($data, $order, $request);
|
||||
|
||||
@@ -168,27 +168,26 @@ class Wiaas_Order {
|
||||
*
|
||||
* @return mixed
|
||||
*/
|
||||
private static function _append_products_info($data, $order, $request) {
|
||||
private static function _append_packages($data, $order, $request) {
|
||||
$line_items = array();
|
||||
|
||||
$order_items = $order->get_items( 'line_item' );
|
||||
|
||||
foreach ($data['line_items'] as $index => $product_line) {
|
||||
|
||||
$item = $order->get_item($product_line['id']);
|
||||
|
||||
// add only product lines that represent product bundles
|
||||
if (empty($product_line['bundled_by'])) {
|
||||
if (isset($item['wiaas_standard_package'])) {
|
||||
|
||||
$item = $order->get_item($product_line['id']);
|
||||
$payment = $item->get_meta('_wiaas_payment', true);
|
||||
|
||||
# lock all products to `Purchase` payment type
|
||||
$product_line['payment_type'] = $payment['payment_type'];
|
||||
|
||||
# lock all products to have no service
|
||||
$product_line['service_price'] = $payment['minimal_services_price'];
|
||||
$product_line['service_contract_period'] = $payment['services_contract_period'];
|
||||
$product_line['max_contract_period'] = $payment['max_contract_period'];
|
||||
$product_line['period_unit'] = $payment['period_unit'];
|
||||
|
||||
# simplify payment for all products
|
||||
$product_line['recurring_price'] = $payment['recurrent_price'];
|
||||
$product_line['pay_period'] = $payment['package_pay_period'];
|
||||
# get payment type info
|
||||
$product_line['payment_type'] = $item['wiaas_payment_type'];
|
||||
$product_line['service_price'] = floatval($item['wiaas_service_price']);
|
||||
$product_line['service_contract_period'] = floatval($item['wiaas_service_contract_period']);
|
||||
$product_line['max_contract_period'] = floatval($item['wiaas_max_contract_period']);
|
||||
$product_line['period_unit'] = $item['wiaas_period_unit'];
|
||||
$product_line['recurring_price'] = floatval($item['wiaas_recurring_price']);
|
||||
$product_line['pay_period'] = floatval($item['wiaas_pay_period']);
|
||||
|
||||
# collect status from order
|
||||
if ($data['status'] === 'completed') {
|
||||
@@ -198,11 +197,32 @@ class Wiaas_Order {
|
||||
} else {
|
||||
$product_line['status'] = 'processing';
|
||||
}
|
||||
|
||||
$product_line['short_desc'] = $product_line['status'];
|
||||
|
||||
# collect completion data from order
|
||||
$product_line['date_completed'] = $data['date_completed'];
|
||||
|
||||
// collect package addons
|
||||
$product_line['additional_packages'] = array();
|
||||
$addon_items = Wiaas_Package_Addon::get_order_item_addons($order_items, $item);
|
||||
foreach ($addon_items as $addon_item) {
|
||||
$product_line['additional_packages'][] = array(
|
||||
'id' => $addon_item->get_id(),
|
||||
'name' => $addon_item->get_name(),
|
||||
);
|
||||
}
|
||||
|
||||
// collect package options
|
||||
$product_line['options'] = array();
|
||||
$option_items = Wiaas_Package_Option_Groups::get_order_item_options($order_items, $item);
|
||||
foreach ($option_items as $option_item) {
|
||||
$product_line['options'][] = array(
|
||||
'id' => $option_item->get_id(),
|
||||
'name' => $option_item->get_name(),
|
||||
);
|
||||
}
|
||||
|
||||
$line_items[] = $product_line;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user