Index: branches/5.2.x/units/orders/orders_event_handler.php =================================================================== diff -u -N -r15589 -r15591 --- branches/5.2.x/units/orders/orders_event_handler.php (.../orders_event_handler.php) (revision 15589) +++ branches/5.2.x/units/orders/orders_event_handler.php (.../orders_event_handler.php) (revision 15591) @@ -1,6 +1,6 @@ GetDBField('BillingEmail'); - $user_email = $this->Conn->GetOne(' SELECT Email FROM '.$this->Application->getUnitOption('u', 'TableName').' - WHERE PortalUserId = '.$order->GetDBField('PortalUserId')); - $email_params = Array(); - $email_params['_user_email'] = $user_email; //for use when shipping vs user is required in InventoryAction - $email_params['to_email'] = $billing_email ? $billing_email : $user_email; - $email_params['to_name'] = $order->GetDBField('BillingTo'); - return $email_params; + + $sql = 'SELECT Email + FROM ' . $this->Application->getUnitOption('u', 'TableName') . ' + WHERE PortalUserId = ' . $order->GetDBField('PortalUserId'); + $user_email = $this->Conn->GetOne($sql); + + $ret = Array ( + '_user_email' => $user_email, // for use when shipping vs user is required in InventoryAction + 'to_name' => $order->GetDBField('BillingTo'), + 'to_email' => $billing_email ? $billing_email : $user_email, + ); + + return $ret; } function PrepareCoupons($event, &$order) @@ -481,7 +487,7 @@ $this->PrepareCoupons($event, $order); } - $this->Application->EmailEventUser('ORDER.SUBMIT', $order->GetDBField('PortalUserId'), $this->OrderEmailParams($order)); + $this->Application->EmailEventUser('ORDER.SUBMIT', null, $this->OrderEmailParams($order)); $this->Application->EmailEventAdmin('ORDER.SUBMIT'); } @@ -2108,11 +2114,12 @@ $this->PrepareCoupons($event, $object); $this->SplitOrder($event, $object); - if ($object->GetDBField('IsRecurringBilling') != 1) { - $this->Application->EmailEventUser('ORDER.APPROVE', $object->GetDBField('PortalUserId'), $email_params); + if ( $object->GetDBField('IsRecurringBilling') != 1 ) { + $this->Application->EmailEventUser('ORDER.APPROVE', null, $email_params); + // Mask credit card with XXXX - if ($this->Application->ConfigValue('Comm_MaskProcessedCreditCards')) { + if ( $this->Application->ConfigValue('Comm_MaskProcessedCreditCards') ) { $this->maskCreditCard($object, 'PaymentAccount'); $set_new_status = 1; } @@ -2131,15 +2138,15 @@ $this->raiseProductEvent('Deny', $product_item['ProductId'], $product_item); } - if ( ($original_order_status != ORDER_STATUS_INCOMPLETE ) && ($event->Name == 'OnMassOrderDeny' || $event->Name == 'OnOrderDeny') ) { - $this->Application->EmailEventUser('ORDER.DENY', $object->GetDBField('PortalUserId'), $email_params); + if ( ($original_order_status != ORDER_STATUS_INCOMPLETE) && ($event->Name == 'OnMassOrderDeny' || $event->Name == 'OnOrderDeny') ) { + $this->Application->EmailEventUser('ORDER.DENY', null, $email_params); // inform payment gateway that order was declined $gw_data = $object->getGatewayData(); if ( $gw_data ) { - $this->Application->registerClass( $gw_data['ClassName'], GW_CLASS_PATH . '/' . $gw_data['ClassFile'] ); - $gateway_object = $this->Application->recallObject( $gw_data['ClassName'] ); + $this->Application->registerClass($gw_data['ClassName'], GW_CLASS_PATH . '/' . $gw_data['ClassFile']); + $gateway_object = $this->Application->recallObject($gw_data['ClassName']); $gateway_object->OrderDeclined($object->GetFieldValues(), $gw_data['gw_params']); } @@ -2181,19 +2188,19 @@ if ( !array_key_exists('error_number', $ret) ) { $set_new_status = $this->approveOrder($order_items); - // $set_new_status = $this->shipOrder($order_items); +// $set_new_status = $this->shipOrder($order_items); $object->SetDBField('ShippingDate', adodb_mktime()); $object->UpdateFormattersSubFields(); $shipping_email = $object->GetDBField('ShippingEmail'); $email_params['to_email'] = $shipping_email ? $shipping_email : $email_params['_user_email']; - $this->Application->EmailEventUser('ORDER.SHIP', $object->GetDBField('PortalUserId'), $email_params); + $this->Application->EmailEventUser('ORDER.SHIP', null, $email_params); // inform payment gateway that order was shipped $gw_data = $object->getGatewayData(); - $this->Application->registerClass( $gw_data['ClassName'], GW_CLASS_PATH.'/'.$gw_data['ClassFile'] ); - $gateway_object = $this->Application->recallObject( $gw_data['ClassName'] ); + $this->Application->registerClass($gw_data['ClassName'], GW_CLASS_PATH . '/' . $gw_data['ClassFile']); + $gateway_object = $this->Application->recallObject($gw_data['ClassName']); $gateway_object->OrderShipped($object->GetFieldValues(), $gw_data['gw_params']); } @@ -2208,17 +2215,22 @@ case 'OnMassOrderProcess': case 'OnOrderProcess': - if ($this->ReadyToProcess($object->GetID())) { + if ( $this->ReadyToProcess($object->GetID()) ) { $event->CallSubEvent('OnReserveItems'); - if ($event->status == kEvent::erSUCCESS) $set_new_status = true; - $this->Application->EmailEventUser('BACKORDER.PROCESS', $object->GetDBField('PortalUserId'), $email_params); - } else { + + if ( $event->status == kEvent::erSUCCESS ) { + $set_new_status = true; + } + + $this->Application->EmailEventUser('BACKORDER.PROCESS', null, $email_params); + } + else { $event->status = kEvent::erFAIL; } break; } - if ($set_new_status) { + if ( $set_new_status ) { $object->Update(); } } @@ -2873,7 +2885,7 @@ $sub_order->SetDBField('Status', ORDER_STATUS_BACKORDERS); if ($event->Special != 'recurring') { // just in case if admin uses tangible backordered products in recurring orders - $this->Application->EmailEventUser('BACKORDER.ADD', $sub_order->GetDBField('PortalUserId'), $this->OrderEmailParams($sub_order)); + $this->Application->EmailEventUser('BACKORDER.ADD', null, $this->OrderEmailParams($sub_order)); $this->Application->EmailEventAdmin('BACKORDER.ADD'); } } @@ -3512,14 +3524,14 @@ if ($complete_event->status == kEvent::erSUCCESS) { //send recurring ok email - $this->Application->EmailEventUser('ORDER.RECURRING.PROCESSED', $order->GetDBField('PortalUserId'), $this->OrderEmailParams($order)); + $this->Application->EmailEventUser('ORDER.RECURRING.PROCESSED', null, $this->OrderEmailParams($order)); $this->Application->EmailEventAdmin('ORDER.RECURRING.PROCESSED'); } else { //send Recurring failed event $order->SetDBField('Status', ORDER_STATUS_DENIED); $order->Update(); - $this->Application->EmailEventUser('ORDER.RECURRING.DENIED', $order->GetDBField('PortalUserId'), $this->OrderEmailParams($order)); + $this->Application->EmailEventUser('ORDER.RECURRING.DENIED', null, $this->OrderEmailParams($order)); $this->Application->EmailEventAdmin('ORDER.RECURRING.DENIED'); } }