TestUser123 Posted September 7, 2021 Share Posted September 7, 2021 I would like to change order status using php AND then send proper email... ALL using PHP where can i begin to educate myself? Thnx in advance! AG Link to comment Share on other sites More sharing options...
Knowband Plugins Posted September 10, 2021 Share Posted September 10, 2021 File Path: /controller/admin/adminorderscontroller.php Function: postprocess() In above function please check the below code which can use for changing the order status and sending respective emails using PHP. elseif (Tools::isSubmit('submitState') && isset($order)) { /* Change order status, add a new entry in order history and send an e-mail to the customer if needed */ if ($this->access('edit')) { $order_state = new OrderState(Tools::getValue('id_order_state')); if (!Validate::isLoadedObject($order_state)) { $this->errors[] = $this->trans('The new order status is invalid.', array(), 'Admin.Orderscustomers.Notification'); } else { $current_order_state = $order->getCurrentOrderState(); if ($current_order_state->id != $order_state->id) { // Create new OrderHistory $history = new OrderHistory(); $history->id_order = $order->id; $history->id_employee = (int) $this->context->employee->id; $use_existings_payment = false; if (!$order->hasInvoice()) { $use_existings_payment = true; } $history->changeIdOrderState((int) $order_state->id, $order, $use_existings_payment); $carrier = new Carrier($order->id_carrier, $order->id_lang); $templateVars = array(); if ($history->id_order_state == Configuration::get('PS_OS_SHIPPING') && $order->shipping_number) { $templateVars = array('{followup}' => str_replace('@', $order->shipping_number, $carrier->url)); } // Save all changes if ($history->addWithemail(true, $templateVars)) { // synchronizes quantities if needed.. if (Configuration::get('PS_ADVANCED_STOCK_MANAGEMENT')) { foreach ($order->getProducts() as $product) { if (StockAvailable::dependsOnStock($product['product_id'])) { StockAvailable::synchronize($product['product_id'], (int) $product['id_shop']); } } } Tools::redirectAdmin(self::$currentIndex . '&id_order=' . (int) $order->id . '&vieworder&token=' . $this->token); } $this->errors[] = $this->trans('An error occurred while changing order status, or we were unable to send an email to the customer.', array(), 'Admin.Orderscustomers.Notification'); } else { $this->errors[] = $this->trans('The order has already been assigned this status.', array(), 'Admin.Orderscustomers.Notification'); } } } else { $this->errors[] = $this->trans('You do not have permission to edit this.', array(), 'Admin.Notifications.Error'); } Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now