/ Published in: XML
Allow you to change the admin notification email to the same level of detail as the customer receives.
Expand |
Embed | Plain Text
Copy this code and paste it in your HTML
<modification> <id>OCA_Detailed Order Admin Email Notification(1.5.x)</id> <version>1.0</version> <vqmver>1.0.0</vqmver> <file name="catalog/model/checkout/order.php"> <operation> <search position="replace"><![CDATA[$mail->setText($text);]]></search> <add><![CDATA[ $mail->setHtml($html); $mail->setText(html_entity_decode($text, ENT_QUOTES, 'UTF-8')); $mail->addAttachment(DIR_IMAGE . $this->config->get('config_logo')); ]]></add> </operation> <operation> <search position="before" index="2"><![CDATA[$mail = new Mail();]]></search> <add><![CDATA[ // HTML Mail $template = new Template(); $template->data['title'] = sprintf($language->get('text_new_subject'), html_entity_decode($order_info['store_name'], ENT_QUOTES, 'UTF-8'), $order_id); $template->data['text_greeting'] = sprintf($language->get('text_new_received')); $template->data['text_link'] = ''; $template->data['text_download'] = ''; $template->data['text_order_detail'] = $language->get('text_new_order_detail'); $template->data['text_invoice_no'] = $language->get('text_new_invoice_no'); $template->data['text_order_id'] = $language->get('text_new_order_id'); $template->data['text_date_added'] = $language->get('text_new_date_added'); $template->data['text_payment_method'] = $language->get('text_new_payment_method'); $template->data['text_shipping_method'] = $language->get('text_new_shipping_method'); $template->data['text_email'] = $language->get('text_new_email'); $template->data['text_telephone'] = $language->get('text_new_telephone'); $template->data['text_ip'] = $language->get('text_new_ip'); $template->data['text_payment_address'] = $language->get('text_new_payment_address'); $template->data['text_shipping_address'] = $language->get('text_new_shipping_address'); $template->data['text_product'] = $language->get('text_new_product'); $template->data['text_model'] = $language->get('text_new_model'); $template->data['text_quantity'] = $language->get('text_new_quantity'); $template->data['text_price'] = $language->get('text_new_price'); $template->data['text_total'] = $language->get('text_new_total'); $template->data['text_footer'] = ''; $template->data['text_powered'] = ''; $template->data['logo'] = 'cid:' . basename($this->config->get('config_logo')); $template->data['store_name'] = $order_info['store_name']; $template->data['store_url'] = $order_info['store_url']; $template->data['customer_id'] = $order_info['customer_id']; $template->data['link'] = ''; $template->data['download'] = ''; if (isset($comment) && isset($notify)) { if ($comment && $notify) { $template->data['comment'] = nl2br($comment); } else { $template->data['comment'] = ''; } } $template->data['invoice_no'] = $invoice_no; $template->data['order_id'] = $order_id; $template->data['date_added'] = date($language->get('date_format_short'), strtotime($order_info['date_added'])); $template->data['payment_method'] = $order_info['payment_method']; $template->data['shipping_method'] = $order_info['shipping_method']; $template->data['email'] = $order_info['email']; $template->data['telephone'] = $order_info['telephone']; $template->data['ip'] = $order_info['ip'] . '<br/><b>' . $language->get('text_new_order_status') . '</b> ' . $order_status; if ($order_info['shipping_address_format']) { $format = $order_info['shipping_address_format']; } else { $format = '{firstname} {lastname}' . "\n" . '{company}' . "\n" . '{address_1}' . "\n" . '{address_2}' . "\n" . '{city} {postcode}' . "\n" . '{zone}' . "\n" . '{country}'; } $find = array( '{firstname}', '{lastname}', '{company}', '{address_1}', '{address_2}', '{city}', '{postcode}', '{zone}', '{zone_code}', '{country}' ); $replace = array( 'firstname' => $order_info['shipping_firstname'], 'lastname' => $order_info['shipping_lastname'], 'company' => $order_info['shipping_company'], 'address_1' => $order_info['shipping_address_1'], 'address_2' => $order_info['shipping_address_2'], 'city' => $order_info['shipping_city'], 'postcode' => $order_info['shipping_postcode'], 'zone' => $order_info['shipping_zone'], 'zone_code' => $order_info['shipping_zone_code'], 'country' => $order_info['shipping_country'] ); $template->data['shipping_address'] = str_replace(array("\r\n", "\r", "\n"), '<br />', preg_replace(array("/\s\s+/", "/\r\r+/", "/\n\n+/"), '<br />', trim(str_replace($find, $replace, $format)))); if ($order_info['payment_address_format']) { $format = $order_info['payment_address_format']; } else { $format = '{firstname} {lastname}' . "\n" . '{company}' . "\n" . '{address_1}' . "\n" . '{address_2}' . "\n" . '{city} {postcode}' . "\n" . '{zone}' . "\n" . '{country}'; } $find = array( '{firstname}', '{lastname}', '{company}', '{address_1}', '{address_2}', '{city}', '{postcode}', '{zone}', '{zone_code}', '{country}' ); $replace = array( 'firstname' => $order_info['payment_firstname'], 'lastname' => $order_info['payment_lastname'], 'company' => $order_info['payment_company'], 'address_1' => $order_info['payment_address_1'], 'address_2' => $order_info['payment_address_2'], 'city' => $order_info['payment_city'], 'postcode' => $order_info['payment_postcode'], 'zone' => $order_info['payment_zone'], 'zone_code' => $order_info['payment_zone_code'], 'country' => $order_info['payment_country'] ); $template->data['payment_address'] = str_replace(array("\r\n", "\r", "\n"), '<br />', preg_replace(array("/\s\s+/", "/\r\r+/", "/\n\n+/"), '<br />', trim(str_replace($find, $replace, $format)))); $template->data['products'] = array(); foreach ($order_product_query->rows as $product) { $option_data = array(); $order_option_query = $this->db->query("SELECT * FROM " . DB_PREFIX . "order_option WHERE order_id = '" . (int)$order_id . "' AND order_product_id = '" . (int)$product['order_product_id'] . "'"); foreach ($order_option_query->rows as $option) { if ($option['type'] != 'file') { $option_data[] = array( 'name' => $option['name'], 'value' => (strlen($option['value']) > 20 ? substr($option['value'], 0, 20) . '..' : $option['value']) ); } else { $filename = substr($option['value'], 0, strrpos($option['value'], '.')); $option_data[] = array( 'name' => $option['name'], 'value' => (strlen($filename) > 20 ? substr($filename, 0, 20) . '..' : $filename) ); } } $template->data['products'][] = array( 'name' => $product['name'], 'model' => $product['model'], 'option' => $option_data, 'quantity' => $product['quantity'], 'price' => $this->currency->format($product['price'], $order_info['currency_code'], $order_info['currency_value']), 'total' => $this->currency->format($product['total'], $order_info['currency_code'], $order_info['currency_value']) ); } $template->data['totals'] = $order_total_query->rows; if (file_exists(DIR_TEMPLATE . $this->config->get('config_template') . '/template/mail/order.tpl')) { $html = $template->fetch($this->config->get('config_template') . '/template/mail/order.tpl'); } else { $html = $template->fetch('default/template/checkout/mail/order.tpl'); } ]]></add> </operation> </file> </modification>
URL: https://forum.opencart.com/viewtopic.php?t=45829#p224874