diff --git a/backend/app/plugins/wiaas/includes/class-wiaas-cart.php b/backend/app/plugins/wiaas/includes/class-wiaas-cart.php index 194f4a1..69f4972 100644 --- a/backend/app/plugins/wiaas/includes/class-wiaas-cart.php +++ b/backend/app/plugins/wiaas/includes/class-wiaas-cart.php @@ -468,14 +468,25 @@ class Wiaas_Cart { $order->set_currency($currency); - // set order commercial lead + // get order commercial lead $shop_owner_id = get_user_meta(get_current_user_id(), '_wiaas_cart_shop_owner_id', true); $shop_owner_id = absint($shop_owner_id); + // save commercial lead info in case it gets deleted $order->add_meta_data('_wiaas_commercial_lead_id', $shop_owner_id); + $commercial_lead_organization_info = wiaas_get_organization_info($shop_owner_id); + $order->add_meta_data('_wiaas_commercial_lead_info', $commercial_lead_organization_info); + + // save customer organization info in case it gets deleted + $customer_user_id = $order->get_customer_id(); + $customer_organization_id = wiaas_get_user_organization_id($customer_user_id); + $order->add_meta_data('_wiaas_customer_id', $customer_organization_id); + $customer_organization_info = wiaas_get_organization_info($customer_organization_id); + $order->add_meta_data('_wiaas_customer_info', $customer_organization_info); - // add supplier organizations information to order + + // add supplier organizations information to order in case supplier organizations are deleted // save installation suppliers separately $suppliers_info = array(); $installation_suppliers_info = array(); diff --git a/backend/app/plugins/wiaas/includes/class-wiaas-order.php b/backend/app/plugins/wiaas/includes/class-wiaas-order.php index f288772..8c3cd55 100644 --- a/backend/app/plugins/wiaas/includes/class-wiaas-order.php +++ b/backend/app/plugins/wiaas/includes/class-wiaas-order.php @@ -463,19 +463,35 @@ class Wiaas_Order { /** * Appends additional wiaas customer lead info to order json response * @param $data - * @param $order + * @param WC_Order $order * @param $request * * @return mixed */ private static function _append_commercial_lead_info($data, $order, $request) { - $data['commercial_lead'] = array( - 'id' => 1, - 'name' => 'Coor Service Management', - 'phone' => '123456789', - 'email' => 'rikard@co-ideation.com' - ); + $commercial_lead_org_id = $order->get_meta('_wiaas_commercial_lead_id', true); + + $commercial_lead_organization_info = $order->get_meta('_wiaas_commercial_lead_info', true); + + if (! empty($commercial_lead_org_id) && empty($commercial_lead_organization_info)) { + + $commercial_lead_organization_info = wiaas_get_organization_info($commercial_lead_org_id); + + $data['commercial_lead'] = array( + 'id' => $commercial_lead_org_id, + 'name' => $commercial_lead_organization_info['name'], + 'phone' => $commercial_lead_organization_info['phone'], + 'email' => $commercial_lead_organization_info['email'] + ); + } + + if (!empty($commercial_lead_organization_info)) { + + $commercial_lead_organization_info['id'] = $commercial_lead_organization_info; + + $data['commercial_lead'] = $commercial_lead_organization_info; + } return $data; } @@ -483,25 +499,34 @@ class Wiaas_Order { /** * Appends additional wiaas customer info to order json response * @param $data - * @param $order + * @param WC_Order $order * @param $request * * @return mixed */ private static function _append_customer_info($data, $order, $request) { - $current_user = wp_get_current_user(); + $customer_organization_id = $order->get_meta('_wiaas_customer_id', true); - $customer_id = $data['customer_id']; + $customer_user_id = $order->get_customer_id(); - $customer_user = get_user_by('id', $customer_id); - $data['customer'] = array( - 'email' => $customer_user->user_email, - 'name' => $customer_user->display_name, - 'phone' => '+46 (10) 5595148' - ); + if (empty($customer_organization_id)) { - $data['is_my_order'] = $customer_id === $current_user->ID; + $customer_organization_id = wiaas_get_user_organization_id($customer_user_id); + } + + $customer_organization_info = $order->get_meta('_wiaas_customer_info', true); + + if ( !empty($customer_organization_id) && empty($customer_organization_info) ) { + + $customer_organization_info = wiaas_get_organization_info($customer_organization_id); + + $customer_organization_info['id'] = $customer_organization_id; + } + + $data['customer'] = $customer_organization_info; + + $data['is_my_order'] = $customer_user_id === get_current_user_id(); return $data; } diff --git a/backend/app/plugins/wiaas/includes/delivery-process/class-wiaas-order-fields.php b/backend/app/plugins/wiaas/includes/delivery-process/class-wiaas-order-fields.php index 6195a2e..072f7d2 100644 --- a/backend/app/plugins/wiaas/includes/delivery-process/class-wiaas-order-fields.php +++ b/backend/app/plugins/wiaas/includes/delivery-process/class-wiaas-order-fields.php @@ -96,8 +96,6 @@ class Wiaas_Order_Fields { continue; } - error_log($new_value); - $bundle_item->update_meta_data('wiaas_installation_date', $new_value); $bundle_item->save_meta_data(); diff --git a/frontend/src/helpers/OrderHelper.js b/frontend/src/helpers/OrderHelper.js index 9210246..1dcd6f1 100644 --- a/frontend/src/helpers/OrderHelper.js +++ b/frontend/src/helpers/OrderHelper.js @@ -89,7 +89,7 @@ export const fromWCOrder = (WCOrder) => { isOwner: comment['is_owner'] })) : [], deliveryAddress: formatAddress(WCOrder.shipping), - customer: WCOrder.customer, - commercialLead: WCOrder['commercial_lead'], + customer: WCOrder.customer || {}, + commercialLead: WCOrder['commercial_lead'] || {}, } }; \ No newline at end of file