Jump to content
  • Checkout
  • Login
  • Get in touch

osCommerce

The e-commerce.

[contribution] Send_order_html_email


Elazar

Recommended Posts

  • Replies 344
  • Created
  • Last Reply

Top Posters In This Topic

Now all works fine except the emails that receives my customers.

 

The billing address is empty , without data.

 

Ref:

$html_email_order .= "          	<td width=\"300\" class=\"boxmail\">[b]$VarAddressbill[/b]</td>";

Link to comment
Share on other sites

  • 1 month later...

Hello....

 

First i must say this is a great Contri!

As like Steelworks we have also a heavily modified shop. I am no pogrammer but more the Copy/Paste/merge and see what happens type :D

But now is getting out of my specialty...we have installed this Contri in a shop where Paypal and the dutch Ideal is running.

When our clients choose the 'pay by bank transfer' they get the nice HTML Mail...all good....but when they pay with Ideal no mail is going out to my clients :(

Could someone look at my checkoutfile if they see can find a error in there pls...

 

<?php

/*

$Id: checkout_process.php 1750 2007-12-21 05:20:28Z hpdl $

 

osCommerce, Open Source E-Commerce Solutions

http://www.oscommerce.com

 

Copyright © 2007 osCommerce

 

Released under the GNU General Public License

*/

 

include('includes/application_top.php');

 

// if the customer is not logged on, redirect them to the login page

if (!tep_session_is_registered('customer_id')) {

$navigation->set_snapshot(array('mode' => 'SSL', 'page' => FILENAME_CHECKOUT_PAYMENT));

tep_redirect(tep_href_link(FILENAME_LOGIN, '', 'SSL'));

}

 

// if there is nothing in the customers cart, redirect them to the shopping cart page

if ($cart->count_contents() < 1) {

tep_redirect(tep_href_link(FILENAME_SHOPPING_CART));

}

 

// if no shipping method has been selected, redirect the customer to the shipping method selection page

if (!tep_session_is_registered('shipping') || !tep_session_is_registered('sendto')) {

tep_redirect(tep_href_link(FILENAME_CHECKOUT_SHIPPING, '', 'SSL'));

}

 

if ( (tep_not_null(MODULE_PAYMENT_INSTALLED)) && (!tep_session_is_registered('payment')) ) {

tep_redirect(tep_href_link(FILENAME_CHECKOUT_PAYMENT, '', 'SSL'));

}

 

// avoid hack attempts during the checkout procedure by checking the internal cartID

if (isset($cart->cartID) && tep_session_is_registered('cartID')) {

if ($cart->cartID != $cartID) {

tep_redirect(tep_href_link(FILENAME_CHECKOUT_SHIPPING, '', 'SSL'));

}

}

 

include(DIR_WS_LANGUAGES . $language . '/' . FILENAME_CHECKOUT_PROCESS);

 

// load selected payment module

require(DIR_WS_CLASSES . 'payment.php');

$payment_modules = new payment($payment);

 

// load the selected shipping module

require(DIR_WS_CLASSES . 'shipping.php');

$shipping_modules = new shipping($shipping);

 

require(DIR_WS_CLASSES . 'order.php');

$order = new order;

 

// Stock Check

$any_out_of_stock = false;

if (STOCK_CHECK == 'true') {

for ($i=0, $n=sizeof($order->products); $i<$n; $i++) {

if (tep_check_stock($order->products[$i]['id'], $order->products[$i]['qty'])) {

$any_out_of_stock = true;

}

}

// Out of Stock

if ( (STOCK_ALLOW_CHECKOUT != 'true') && ($any_out_of_stock == true) ) {

tep_redirect(tep_href_link(FILENAME_SHOPPING_CART));

}

}

 

$payment_modules->update_status();

 

if ( ( is_array($payment_modules->modules) && (sizeof($payment_modules->modules) > 1) && !is_object($$payment) ) || (is_object($$payment) && ($$payment->enabled == false)) ) {

tep_redirect(tep_href_link(FILENAME_CHECKOUT_PAYMENT, 'error_message=' . urlencode(ERROR_NO_PAYMENT_MODULE_SELECTED), 'SSL'));

}

 

require(DIR_WS_CLASSES . 'order_total.php');

$order_total_modules = new order_total;

 

$order_totals = $order_total_modules->process();

 

// load the before_process function from the payment modules

$payment_modules->before_process();

// IDEAL AANPASSING

$do_email = true;

if (is_object($$payment)) {

$payment_class = $$payment;

if ($payment_class->code == 'idealm') {

if ((!tep_session_is_registered('trans')) || ($trans != 'success'))

$do_email = false;

}

}

 

if ((tep_session_is_registered('paymentid')) && ($payment_class->code != 'idealm')) {

tep_db_query("UPDATE ".TABLE_IDEAL_PAYMENTS." SET payment_status='".MODULE_PAYMENT_IDEALM_ORDER_CANCELLED_STATUS_ID."', date_last_check=now() WHERE payment_id='" . $paymentid."'");

tep_session_unregister('paymentid');

tep_session_unregister('trans');

}

 

if (!tep_session_is_registered('paymentid')) {

// EINDE IDEAL AANPASSING

 

$sql_data_array = array('customers_id' => $customer_id,

'customers_name' => $order->customer['firstname'] . ' ' . $order->customer['lastname'],

'customers_company' => $order->customer['company'],

'customers_street_address' => $order->customer['street_address'],

'customers_suburb' => $order->customer['suburb'],

'customers_city' => $order->customer['city'],

'customers_postcode' => $order->customer['postcode'],

'customers_state' => $order->customer['state'],

'customers_country' => $order->customer['country']['title'],

'customers_telephone' => $order->customer['telephone'],

'customers_email_address' => $order->customer['email_address'],

'customers_address_format_id' => $order->customer['format_id'],

'delivery_name' => trim($order->delivery['firstname'] . ' ' . $order->delivery['lastname']),

'delivery_company' => $order->delivery['company'],

'delivery_street_address' => $order->delivery['street_address'],

'delivery_suburb' => $order->delivery['suburb'],

'delivery_city' => $order->delivery['city'],

'delivery_postcode' => $order->delivery['postcode'],

'delivery_state' => $order->delivery['state'],

'delivery_country' => $order->delivery['country']['title'],

'delivery_address_format_id' => $order->delivery['format_id'],

'billing_name' => $order->billing['firstname'] . ' ' . $order->billing['lastname'],

'billing_company' => $order->billing['company'],

'billing_street_address' => $order->billing['street_address'],

'billing_suburb' => $order->billing['suburb'],

'billing_city' => $order->billing['city'],

'billing_postcode' => $order->billing['postcode'],

'billing_state' => $order->billing['state'],

'billing_country' => $order->billing['country']['title'],

'billing_address_format_id' => $order->billing['format_id'],

'payment_method' => $order->info['payment_method'],

'cc_type' => $order->info['cc_type'],

'cc_owner' => $order->info['cc_owner'],

'cc_number' => $order->info['cc_number'],

'cc_expires' => $order->info['cc_expires'],

'date_purchased' => 'now()',

'orders_status' => $order->info['order_status'],

'currency' => $order->info['currency'],

'currency_value' => $order->info['currency_value']);

tep_db_perform(TABLE_ORDERS, $sql_data_array);

$insert_id = tep_db_insert_id();

for ($i=0, $n=sizeof($order_totals); $i<$n; $i++) {

$sql_data_array = array('orders_id' => $insert_id,

'title' => $order_totals[$i]['title'],

'text' => $order_totals[$i]['text'],

'value' => $order_totals[$i]['value'],

'class' => $order_totals[$i]['code'],

'sort_order' => $order_totals[$i]['sort_order']);

tep_db_perform(TABLE_ORDERS_TOTAL, $sql_data_array);

}

 

 

// IDEAL AANPASSING

$customer_notification = '0';

if ($payment_class->code == 'idealm') {

if ($do_email)

$customer_notification = '1';

} else {

$customer_notification = (SEND_EMAILS == 'true') ? '1' : '0';

}

// EINDE IDEAL AANPASSING

 

$sql_data_array = array('orders_id' => $insert_id,

'orders_status_id' => $order->info['order_status'],

'date_added' => 'now()',

'customer_notified' => $customer_notification,

'comments' => $order->info['comments']);

tep_db_perform(TABLE_ORDERS_STATUS_HISTORY, $sql_data_array);

 

// initialized for the email confirmation

$products_ordered = '';

$subtotal = 0;

$total_tax = 0;

 

for ($i=0, $n=sizeof($order->products); $i<$n; $i++) {

// Stock Update - Joao Correia

if (STOCK_LIMITED == 'true') {

if (DOWNLOAD_ENABLED == 'true') {

$stock_query_raw = "SELECT products_quantity, pad.products_attributes_filename

FROM " . TABLE_PRODUCTS . " p

LEFT JOIN " . TABLE_PRODUCTS_ATTRIBUTES . " pa

ON p.products_id=pa.products_id

LEFT JOIN " . TABLE_PRODUCTS_ATTRIBUTES_DOWNLOAD . " pad

ON pa.products_attributes_id=pad.products_attributes_id

WHERE p.products_id = '" . tep_get_prid($order->products[$i]['id']) . "'";

// Will work with only one option for downloadable products

// otherwise, we have to build the query dynamically with a loop

$products_attributes = $order->products[$i]['attributes'];

if (is_array($products_attributes)) {

$stock_query_raw .= " AND pa.options_id = '" . $products_attributes[0]['option_id'] . "' AND pa.options_values_id = '" . $products_attributes[0]['value_id'] . "'";

}

$stock_query = tep_db_query($stock_query_raw);

} else {

$stock_query = tep_db_query("select products_quantity from " . TABLE_PRODUCTS . " where products_id = '" . tep_get_prid($order->products[$i]['id']) . "'");

}

if (tep_db_num_rows($stock_query) > 0) {

$stock_values = tep_db_fetch_array($stock_query);

// do not decrement quantities if products_attributes_filename exists

if ((DOWNLOAD_ENABLED != 'true') || (!$stock_values['products_attributes_filename'])) {

$stock_left = $stock_values['products_quantity'] - $order->products[$i]['qty'];

} else {

$stock_left = $stock_values['products_quantity'];

}

tep_db_query("update " . TABLE_PRODUCTS . " set products_quantity = '" . $stock_left . "' where products_id = '" . tep_get_prid($order->products[$i]['id']) . "'");

if ( ($stock_left < 1) && (STOCK_ALLOW_CHECKOUT == 'false') ) {

tep_db_query("update " . TABLE_PRODUCTS . " set products_status = '0' where products_id = '" . tep_get_prid($order->products[$i]['id']) . "'");

}

}

}

 

// Update products_ordered (for bestsellers list)

tep_db_query("update " . TABLE_PRODUCTS . " set products_ordered = products_ordered + " . sprintf('%d', $order->products[$i]['qty']) . " where products_id = '" . tep_get_prid($order->products[$i]['id']) . "'");

 

$sql_data_array = array('orders_id' => $insert_id,

'products_id' => tep_get_prid($order->products[$i]['id']),

'products_model' => $order->products[$i]['model'],

'products_name' => $order->products[$i]['name'],

'products_price' => $order->products[$i]['price'],

'products_cost' => $order->products[$i]['cost'],

'final_price' => $order->products[$i]['final_price'],

'products_tax' => $order->products[$i]['tax'],

'products_quantity' => $order->products[$i]['qty']);

tep_db_perform(TABLE_ORDERS_PRODUCTS, $sql_data_array);

$order_products_id = tep_db_insert_id();

 

//------insert customer choosen option to order--------

$attributes_exist = '0';

$products_ordered_attributes = '';

if (isset($order->products[$i]['attributes'])) {

$attributes_exist = '1';

for ($j=0, $n2=sizeof($order->products[$i]['attributes']); $j<$n2; $j++) {

if (DOWNLOAD_ENABLED == 'true') {

$attributes_query = "select popt.products_options_name, poval.products_options_values_name, pa.options_values_price, pa.price_prefix, pad.products_attributes_maxdays, pad.products_attributes_maxcount , pad.products_attributes_filename

from " . TABLE_PRODUCTS_OPTIONS . " popt, " . TABLE_PRODUCTS_OPTIONS_VALUES . " poval, " . TABLE_PRODUCTS_ATTRIBUTES . " pa

left join " . TABLE_PRODUCTS_ATTRIBUTES_DOWNLOAD . " pad

on pa.products_attributes_id=pad.products_attributes_id

where pa.products_id = '" . $order->products[$i]['id'] . "'

and pa.options_id = '" . $order->products[$i]['attributes'][$j]['option_id'] . "'

and pa.options_id = popt.products_options_id

and pa.options_values_id = '" . $order->products[$i]['attributes'][$j]['value_id'] . "'

and pa.options_values_id = poval.products_options_values_id

and popt.language_id = '" . $languages_id . "'

and poval.language_id = '" . $languages_id . "'";

$attributes = tep_db_query($attributes_query);

} else {

$attributes = tep_db_query("select popt.products_options_name, poval.products_options_values_name, pa.options_values_price, pa.price_prefix from " . TABLE_PRODUCTS_OPTIONS . " popt, " . TABLE_PRODUCTS_OPTIONS_VALUES . " poval, " . TABLE_PRODUCTS_ATTRIBUTES . " pa where pa.products_id = '" . $order->products[$i]['id'] . "' and pa.options_id = '" . $order->products[$i]['attributes'][$j]['option_id'] . "' and pa.options_id = popt.products_options_id and pa.options_values_id = '" . $order->products[$i]['attributes'][$j]['value_id'] . "' and pa.options_values_id = poval.products_options_values_id and popt.language_id = '" . $languages_id . "' and poval.language_id = '" . $languages_id . "'");

}

$attributes_values = tep_db_fetch_array($attributes);

 

$sql_data_array = array('orders_id' => $insert_id,

'orders_products_id' => $order_products_id,

'products_options' => $attributes_values['products_options_name'],

'products_options_values' => $attributes_values['products_options_values_name'],

'options_values_price' => $attributes_values['options_values_price'],

'price_prefix' => $attributes_values['price_prefix']);

tep_db_perform(TABLE_ORDERS_PRODUCTS_ATTRIBUTES, $sql_data_array);

 

if ((DOWNLOAD_ENABLED == 'true') && isset($attributes_values['products_attributes_filename']) && tep_not_null($attributes_values['products_attributes_filename'])) {

$sql_data_array = array('orders_id' => $insert_id,

'orders_products_id' => $order_products_id,

'orders_products_filename' => $attributes_values['products_attributes_filename'],

'download_maxdays' => $attributes_values['products_attributes_maxdays'],

'download_count' => $attributes_values['products_attributes_maxcount']);

tep_db_perform(TABLE_ORDERS_PRODUCTS_DOWNLOAD, $sql_data_array);

}

$products_ordered_attributes .= "\n\t" . $attributes_values['products_options_name'] . ' ' . $attributes_values['products_options_values_name'];

}

}

//------insert customer choosen option eof ----

//BEGIN SEND HTML MAIL//

 

$products_ordered .= $order->products[$i]['qty'] . ' x ' . $order->products[$i]['name'] . ' (' . $order->products[$i]['model'] . ') = ' . $currencies->display_price($order->products[$i]['final_price'], $order->products[$i]['tax'], $order->products[$i]['qty']) . $products_ordered_attributes . "\n";

$products_quantity .= nl2br($order->products[$i]['qty'] . "\n");

$products_name .= nl2br("" . $order->products[$i]['name'] . $products_ordered_attributes ."\n");

 

if (!tep_not_null($order->products[$i]['model'])) {

$products_model .= ''.EMAIL_NO_MODEL.'' ;

}

else

$products_model .= nl2br($order->products[$i]['model'] . "\n");

 

 

$products_price .= nl2br($currencies->format($order->products[$i]['final_price'] * $order->products[$i]['qty']) . "\n");

 

}

 

 

 

 

for ($i=0; $i<sizeof($order_totals); $i++) {

$Vartaxe .= strip_tags($order_totals[$i]['title']) . ' ' . strip_tags($order_totals[$i]['text']) . "\n";

}

 

 

if ($order->content_type != 'virtual') {

$Varaddress .= tep_address_label($customer_id, $sendto, 0, '', "\n") ;

}

 

if (is_object($$payment)) {

$Varmodepay .= EMAIL_TEXT_PAYMENT_METHOD . "\n" .

EMAIL_SEPARATOR . "\n";

$payment_class = $$payment;

$Varmodpay .= $payment_class->title . "\n";

if ($payment_class->email_footer) {

$Varmodpay .= $payment_class->email_footer . "\n\n";

}

}

 

$Varlogo = ''.VARLOGO.'' ;

$Vartable1 = ''.VARTABLE1.'' ;

$Vartable2 = ''.VARTABLE2.'' ;

 

$Vartext1 = ' <b>' . EMAIL_TEXT_DEAR . ' ' . $order->customer['firstname'] . ' ' . $order->customer['lastname'] .' </b><br><br>' . EMAIL_MESSAGE_GREETING ;

$Vartext2 = ' ' . EMAIL_TEXT_ORDER_NUMBER . ' <STRONG> ' . $insert_id . '</STRONG><br>' . EMAIL_TEXT_DATE_ORDERED . ' <strong>' . strftime(DATE_FORMAT_LONG) . '</strong><br><a href="' . HTTP_SERVER . DIR_WS_CATALOG . 'account_history_info.php?order_id=' . $insert_id .'">' . EMAIL_TEXT_INVOICE_URL . '</a>' ;

 

$Varmailfooter = ''.VARMAILFOOTER.'' ;

$VarArticles= ''.EMAIL_TEXT_PRODUCTS_ARTICLES.'' ;

$VarModele= ''.EMAIL_TEXT_PRODUCTS_MODELE.'' ;

$VarQte= ''.EMAIL_TEXT_PRODUCTS_QTY .'' ;

$VarTotal= ''.EMAIL_TEXT_TOTAL.'' ;

$VarAddresship = ''.EMAIL_TEXT_DELIVERY_ADDRESS.'' ;

$VarAddressbill = ''.EMAIL_TEXT_BILLING_ADDRESS.'' ;

$Varmetodpaye = ''.EMAIL_TEXT_PAYMENT_METHOD.'' ;

$Vardetail = ''.DETAIL .'' ;

$Varhttp = ''.VARHTTP.'';

$Varstyle = ''.VARSTYLE.'';

$Varshipaddress =''.tep_address_format($order->customer['format_id'], $order->customer, 1, '', '<br>').'';

$Varadpay =''.tep_address_format($order->delivery['format_id'], $order->delivery, 1, '', '<br>').'';

 

require(DIR_WS_MODULES . 'email/html_checkout_process.php');

$email_order = $html_email_order ;

 

// IDEAL AANPASSING

}

if (($do_email) && ($payment_class->code != 'idealm')) {

// EINDE IDEAAL AANPASSING

 

// lets start with the email confirmation

if (EMAIL_USE_HTML == 'true') {

 

$email_order;

 

}

else

 

{

 

$email_order = STORE_NAME . "\n" .

EMAIL_SEPARATOR . "\n" .

EMAIL_TEXT_ORDER_NUMBER . ' ' . $insert_id . "\n" .

EMAIL_TEXT_INVOICE_URL . ' ' . tep_href_link(FILENAME_ACCOUNT_HISTORY_INFO, 'order_id=' . $insert_id, 'SSL', false) . "\n" .

EMAIL_TEXT_DATE_ORDERED . ' ' . strftime(DATE_FORMAT_LONG) . "\n\n";

if ($order->info['comments']) {

+ $email_order .= tep_db_output($order->info['comments']) . "\n\n";

}

$email_order .= EMAIL_TEXT_PRODUCTS . "\n" .

EMAIL_SEPARATOR . "\n" .

$products_ordered .

EMAIL_SEPARATOR . "\n";

 

for ($i=0; $i<sizeof($order_totals); $i++) {

$email_order .= strip_tags($order_totals[$i]['title']) . ' ' . strip_tags($order_totals[$i]['text']) . "\n";

}

 

if ($order->content_type != 'virtual') {

$email_order .= "\n" . EMAIL_TEXT_DELIVERY_ADDRESS . "\n" .

EMAIL_SEPARATOR . "\n" .

tep_address_label($customer_id, $sendto, 0, '', "\n") . "\n";

}

 

$email_order .= "\n" . EMAIL_TEXT_BILLING_ADDRESS . "\n" .

 

EMAIL_SEPARATOR . "\n" .

tep_address_label($customer_id, $billto, 0, '', "\n") . "\n\n";

if (is_object($$payment)) {

$email_order .= EMAIL_TEXT_PAYMENT_METHOD . "\n" .

EMAIL_SEPARATOR . "\n";

$payment_class = $$payment;

$email_order .= $payment_class->title . "\n\n\n\n\n";

if ($payment_class->email_footer) {

$email_order .= $payment_class->email_footer . "\n\n";

}

}

 

$email_order .= "\n" . EMAIL_TEXT_FOOTER . "\n" .

HTTP_SERVER . DIR_WS_CATALOG . "\n" .

EMAIL_TEXT_FOOTERR . "\n" ;

 

}

 

 

tep_mail($order->customer['firstname'] . ' ' . $order->customer['lastname'], $order->customer['email_address'], EMAIL_TEXT_SUBJECT, nl2br($email_order), STORE_OWNER, STORE_OWNER_EMAIL_ADDRESS, '');

$email_order=ereg_replace("[[:alpha:]]+://[^<>[:space:]]+[[:alnum:]/]","<a href=\"\\0\">\\0</a>", $email_order);

 

// send emails to other people

if (SEND_EXTRA_ORDER_EMAILS_TO != '') {

$email_order = $html_email_order ;

if (EMAIL_USE_HTML == 'true') {

 

$email_order;

 

}

else

 

{

 

$email_order = STORE_NAME . "\n" .

EMAIL_SEPARATOR . "\n" .

EMAIL_TEXT_ORDER_NUMBER . ' ' . $insert_id . "\n" .

EMAIL_TEXT_INVOICE_URL . ' ' . tep_href_link(FILENAME_ACCOUNT_HISTORY_INFO, 'order_id=' . $insert_id, 'SSL', false) . "\n" .

EMAIL_TEXT_DATE_ORDERED . ' ' . strftime(DATE_FORMAT_LONG) . "\n\n";

if ($order->info['comments']) {

+ $email_order .= tep_db_output($order->info['comments']) . "\n\n";

}

$email_order .= EMAIL_TEXT_PRODUCTS . "\n" .

EMAIL_SEPARATOR . "\n" .

$products_ordered .

EMAIL_SEPARATOR . "\n";

 

for ($i=0; $i<sizeof($order_totals); $i++) {

$email_order .= strip_tags($order_totals[$i]['title']) . ' ' . strip_tags($order_totals[$i]['text']) . "\n";

}

 

if ($order->content_type != 'virtual') {

$email_order .= "\n" . EMAIL_TEXT_DELIVERY_ADDRESS . "\n" .

EMAIL_SEPARATOR . "\n" .

tep_address_label($customer_id, $sendto, 0, '', "\n") . "\n";

}

 

$email_order .= "\n" . EMAIL_TEXT_BILLING_ADDRESS . "\n" .

 

EMAIL_SEPARATOR . "\n" .

tep_address_label($customer_id, $billto, 0, '', "\n") . "\n\n";

if (is_object($$payment)) {

$email_order .= EMAIL_TEXT_PAYMENT_METHOD . "\n" .

EMAIL_SEPARATOR . "\n";

$payment_class = $$payment;

$email_order .= $payment_class->title . "\n\n\n\n\n";

if ($payment_class->email_footer) {

$email_order .= $payment_class->email_footer . "\n\n";

}

}

 

$email_order .= "\n" . EMAIL_TEXT_FOOTER . "\n" .

HTTP_SERVER . DIR_WS_CATALOG . "\n" .

EMAIL_TEXT_FOOTERR . "\n" ;

 

}

tep_mail('', SEND_EXTRA_ORDER_EMAILS_TO, EMAIL_TEXT_SUBJECT, nl2br($email_order), STORE_OWNER, STORE_OWNER_EMAIL_ADDRESS, '');

$email_order=ereg_replace("[[:alpha:]]+://[^<>[:space:]]+[[:alnum:]/]","<a href=\"\\0\">\\0</a>", $email_order);

}

 

//END SEND HTML MAIL//

 

// load the after_process function from the payment modules

 

// IDEAL AANPASSING

} elseif ($do_email) {

$orderid = tep_db_query("SELECT order_id FROM " . TABLE_IDEAL_PAYMENTS . " WHERE payment_id='" . $paymentid . "'");

$orderid = tep_db_fetch_array($orderid);

$order = new order($orderid['order_id']);

$insert_id = $orderid['order_id'];

$customer_id = $order->customer['id'];

require_once('admin/idealm_email.php');

tep_session_unregister('paymentid');

tep_session_unregister('trans');

}

 

if ((!$do_email) && ($trans != 'pending')) {

$payment_modules->after_process();

// remove items from wishlist if customer purchased them

$wishList->clear();

}

 

// EINDE IDEAL AANPASSING

 

$cart->reset(true);

 

// unregister session variables used during checkout

tep_session_unregister('sendto');

tep_session_unregister('billto');

tep_session_unregister('shipping');

tep_session_unregister('payment');

tep_session_unregister('comments');

 

/* IDEAAL/IDEAL AANPASSING */

if ((($payment_class->code == 'moneyorder') && (MODULE_PAYMENT_IDEAAL_STATUS != 'True'))

&& (MODULE_PAYMENT_MONEYORDER_INTERNETBANKING == 'True')) {

tep_redirect(tep_href_link(FILENAME_CHECKOUT_SUCCESS_IDEAAL . '?amount=' . $order_totals[$i-1]['value'] . '&ref=' . $insert_id, '', 'SSL'));

} elseif ((($payment_class->code == 'idealm')) && (($trans == 'pending') || ($trans == 'success'))) {

tep_session_unregister('paymentid');

tep_session_unregister('trans');

tep_redirect(tep_href_link(FILENAME_CHECKOUT_SUCCESS, '', 'SSL'));

} else {

tep_redirect(tep_href_link(FILENAME_CHECKOUT_SUCCESS, '', 'SSL'));

}

/* EINDE IDEAAL/IDEAL AANPASSING */

 

require(DIR_WS_INCLUDES . 'application_bottom.php');

?>

 

THANX JEROEN

Link to comment
Share on other sites

  • 3 weeks later...

OK, looks like I did a pretty good job of editing checkout_process. Thanks for your reply steve. My next issue is related to eorder_text. Im getting this error when I try to send a new order confirmation:

 

1146 - Table 'XXXXXX.eorder_text' doesn't exist

 

SELECT * FROM eorder_text where eorder_text_id = '1' and language_id = '1'

 

As far as I can tell, this is related to "email order text" which I dont have installed. I do have "Send Html Email v2" installed which is referred to in the order editor install directions. Maybe im reading the code wrong, but shouldnt eorder_text not come into play if its not installed? Do I have remnants of other contribs interfering? Am I too strung out with this install to make sense of it? I feel like this is a fairly simple install, and im missing something.

 

Maybe I should start over, its kinda depressing, lol

 

Hello Zach...can you tell me what you found to overcome these error messages?

thanks,

Mark

Link to comment
Share on other sites

  • 1 month later...

Hi,

 

Have 2 problems.

 

1. After 'The comments for your order are' I am just getting %s, as you can see below.

 

2. The link for Detailed Invoice, when I do an Order Update it just shows as: http://www.example.c...o.php?order_id=

The order id is missing. It is fine for Order Process.

 

 

Dear xxxxx xxxxxxxx 
We would like to notify you that the status of your order has been update.

Order Number: 13
Date Ordered:: Wednesday 31 March, 2010
Detailed Invoice:


The comments for your order are

%s



Your order has been updated to the following status.

New status: Pending

Please reply to this email if you have any questions.

This email address was given to us by you or by one of our customers. If you feel that you have received this email in error, please send an email to [email protected]
Copyright © 2010 test 

Link to comment
Share on other sites

  • 4 weeks later...

The shipping and billing adresses are swapped in the confirmation email (V2). The values are right (i.e. when I print the bill/label the shipping adress, really is in the shipping address) but they are displayed incorrectly in the confirmation email. This leads to many customers calling in and asking us to switch them back.

Where do I change the "headings" around so, that the shipping adress is displayed below the heading "shipping adress"?

 

Thank you for help, I have real trouble solving this!

 

Hello Philip,

I know this is an old post but I'm reading through this thread to find the solution for exactly the same problem I'm heaving. My shipping address and billing address are swapped also in the order confirmation email.

In my invoice and packing slip there are no problems.

 

Did you find the solution to this problem and do you still remember what it was? It would be a big help.

 

Django

Link to comment
Share on other sites

  • 4 weeks later...

Hey Everyone

 

This is a great contribution but i am having problems with the email not showing the description of the customers order.

 

Email.jpg

 

This is the Code for the Checkout~_process.php

<?php
/*
 $Id: checkout_process.php,v 1.128 2003/05/28 18:00:29 hpdl Exp $

 osCommerce, Open Source E-Commerce Solutions
 http://www.oscommerce.com

 Copyright (c) 2003 osCommerce

 Released under the GNU General Public License
*/

 include('includes/application_top.php');

// if the customer is not logged on, redirect them to the login page
/* One Page Checkout - BEGIN */  
 if (ONEPAGE_LOGIN_REQUIRED == 'true'){
     if (!tep_session_is_registered('customer_id')) {
         $navigation->set_snapshot(array('mode' => 'SSL', 'page' => FILENAME_CHECKOUT_PAYMENT));
         tep_redirect(tep_href_link(FILENAME_LOGIN, '', 'SSL'));
     }
 }
/* One Page Checkout - END */ 

 if (!tep_session_is_registered('sendto')) {
   tep_redirect(tep_href_link(FILENAME_CHECKOUT_PAYMENT, '', 'SSL'));
 }

 if ( (tep_not_null(MODULE_PAYMENT_INSTALLED)) && (!tep_session_is_registered('payment')) ) {
   tep_redirect(tep_href_link(FILENAME_CHECKOUT_PAYMENT, '', 'SSL'));
}

// avoid hack attempts during the checkout procedure by checking the internal cartID
 if (isset($cart->cartID) && tep_session_is_registered('cartID')) {
   if ($cart->cartID != $cartID) {
/* One Page Checkout - BEGIN */  
//    tep_redirect(tep_href_link(FILENAME_CHECKOUT_SHIPPING, '', 'SSL'));
/* One Page Checkout - END */  
   }
 }

 include(DIR_WS_LANGUAGES . $language . '/' . FILENAME_CHECKOUT_PROCESS);
 /* One Page Checkout - BEGIN */ 
 if (ONEPAGE_CHECKOUT_ENABLED == 'True'){
     require('includes/classes/onepage_checkout.php');
     $onePageCheckout = new osC_onePageCheckout();
 }
/* One Page Checkout - END 

// load selected payment module
 require(DIR_WS_CLASSES . 'payment.php');
 $payment_modules = new payment($payment);

// load the selected shipping module
 require(DIR_WS_CLASSES . 'shipping.php');
 $shipping_modules = new shipping($shipping);

 require(DIR_WS_CLASSES . 'order.php');
 $order = new order;
/* One Page Checkout - BEGIN */
 if (ONEPAGE_CHECKOUT_ENABLED == 'True'){
     $onePageCheckout->loadSessionVars();
     $onePageCheckout->fixTaxes();

     /*
      * This error report is due to the fact that we cannot duplicate some errors.
      * please forward this email always if you recieve it
      */
     if ($order->customer['email_address'] == '' || $order->customer['firstname'] == '' || $order->billing['firstname'] == '' || $order->delivery['firstname'] == ''){
       ob_start();
       echo 'ONEPAGE::' . serialize($onepage);
       echo 'SESSION::' . serialize($_SESSION);
       echo 'SERVER::' . serialize($_SERVER);
       echo 'ORDER::' . serialize($order);
       $content = ob_get_contents();
       mail(ONEPAGE_DEBUG_EMAIL_ADDRESS, 'Order Error: Please forward to I.T. Web Experts', $content);
       unset($content);
       ob_end_clean();
     }
 }
/* One Page Checkout - END */
// load the after_process function from the payment modules

 $cart->reset(true);

/* One Page Checkout - BEGIN */
 if (ONEPAGE_CHECKOUT_ENABLED == 'True'){
     $onepage['info']['order_id'] = $insert_id;
 }
/* One Page Checkout - END */

 require(DIR_WS_CLASSES . 'order_total.php');
 $order_total_modules = new order_total;

 $order_totals = $order_total_modules->process();

 $sql_data_array = array('customers_id' => $customer_id,
                         'customers_name' => $order->customer['firstname'] . ' ' . $order->customer['lastname'],
                         'customers_company' => $order->customer['company'],
                         'customers_street_address' => $order->customer['street_address'],
                         'customers_suburb' => $order->customer['suburb'],
                         'customers_city' => $order->customer['city'],
                         'customers_postcode' => $order->customer['postcode'], 
                         'customers_state' => $order->customer['state'], 
                         'customers_country' => $order->customer['country']['title'], 
                         'customers_telephone' => $order->customer['telephone'], 
                         'customers_email_address' => $order->customer['email_address'],
                         'customers_address_format_id' => $order->customer['format_id'], 
                         'delivery_name' => $order->delivery['firstname'] . ' ' . $order->delivery['lastname'], 
                         'delivery_company' => $order->delivery['company'],
                         'delivery_street_address' => $order->delivery['street_address'], 
                         'delivery_suburb' => $order->delivery['suburb'], 
                         'delivery_city' => $order->delivery['city'], 
                         'delivery_postcode' => $order->delivery['postcode'], 
                         'delivery_state' => $order->delivery['state'], 
                         'delivery_country' => $order->delivery['country']['title'], 
                         'delivery_address_format_id' => $order->delivery['format_id'], 
                         'billing_name' => $order->billing['firstname'] . ' ' . $order->billing['lastname'], 
                         'billing_company' => $order->billing['company'],
                         'billing_street_address' => $order->billing['street_address'], 
                         'billing_suburb' => $order->billing['suburb'], 
                         'billing_city' => $order->billing['city'], 
                         'billing_postcode' => $order->billing['postcode'], 
                         'billing_state' => $order->billing['state'], 
                         'billing_country' => $order->billing['country']['title'], 
                         'billing_address_format_id' => $order->billing['format_id'], 
                         'payment_method' => $order->info['payment_method'], 
                         'shipping_module' => $shipping['id'],
                         'cc_type' => $order->info['cc_type'],
                         'cc_owner' => $order->info['cc_owner'], 
                         'cc_number' => $order->info['cc_number'], 
                         'cc_expires' => $order->info['cc_expires'], 
                         'date_purchased' => 'now()', 
                         'orders_status' => $order->info['order_status'], 
                         'currency' => $order->info['currency'], 
                         'currency_value' => $order->info['currency_value']);
 tep_db_perform(TABLE_ORDERS, $sql_data_array);
 $insert_id = tep_db_insert_id();
 for ($i=0, $n=sizeof($order_totals); $i<$n; $i++) {
   $sql_data_array = array('orders_id' => $insert_id,
                           'title' => $order_totals[$i]['title'],
                           'text' => $order_totals[$i]['text'],
                           'value' => $order_totals[$i]['value'], 
                           'class' => $order_totals[$i]['code'], 
                           'sort_order' => $order_totals[$i]['sort_order']);
   tep_db_perform(TABLE_ORDERS_TOTAL, $sql_data_array);
 }

 $customer_notification = (SEND_EMAILS == 'true') ? '1' : '0';
 $sql_data_array = array('orders_id' => $insert_id, 
                         'orders_status_id' => $order->info['order_status'], 
                         'date_added' => 'now()', 
                         'customer_notified' => $customer_notification,
                         'comments' => $order->info['comments']);
 tep_db_perform(TABLE_ORDERS_STATUS_HISTORY, $sql_data_array);

// initialized for the email confirmation
 $products_ordered = '';
 $subtotal = 0;
 $total_tax = 0;

 for ($i=0, $n=sizeof($order->products); $i<$n; $i++) {
// Stock Update - Joao Correia
   if (STOCK_LIMITED == 'true') {
     if (DOWNLOAD_ENABLED == 'true') {
       $stock_query_raw = "SELECT products_quantity, pad.products_attributes_filename 
                           FROM " . TABLE_PRODUCTS . " p
                           LEFT JOIN " . TABLE_PRODUCTS_ATTRIBUTES . " pa
                            ON p.products_id=pa.products_id
                           LEFT JOIN " . TABLE_PRODUCTS_ATTRIBUTES_DOWNLOAD . " pad
                            ON pa.products_attributes_id=pad.products_attributes_id
                           WHERE p.products_id = '" . tep_get_prid($order->products[$i]['id']) . "'";
// Will work with only one option for downloadable products
// otherwise, we have to build the query dynamically with a loop
       $products_attributes = $order->products[$i]['attributes'];
       if (is_array($products_attributes)) {
         $stock_query_raw .= " AND pa.options_id = '" . $products_attributes[0]['option_id'] . "' AND pa.options_values_id = '" . $products_attributes[0]['value_id'] . "'";
       }
       $stock_query = tep_db_query($stock_query_raw);
     } else {
       $stock_query = tep_db_query("select products_quantity from " . TABLE_PRODUCTS . " where products_id = '" . tep_get_prid($order->products[$i]['id']) . "'");
     }
     if (tep_db_num_rows($stock_query) > 0) {
       $stock_values = tep_db_fetch_array($stock_query);
// do not decrement quantities if products_attributes_filename exists
       if ((DOWNLOAD_ENABLED != 'true') || (!$stock_values['products_attributes_filename'])) {
         $stock_left = $stock_values['products_quantity'] - $order->products[$i]['qty'];
       } else {
         $stock_left = $stock_values['products_quantity'];
       }
       tep_db_query("update " . TABLE_PRODUCTS . " set products_quantity = '" . $stock_left . "' where products_id = '" . tep_get_prid($order->products[$i]['id']) . "'");
       if ( ($stock_left < 1) && (STOCK_ALLOW_CHECKOUT == 'false') ) {
         tep_db_query("update " . TABLE_PRODUCTS . " set products_status = '0' where products_id = '" . tep_get_prid($order->products[$i]['id']) . "'");
       }
     }
   }

// Update products_ordered (for bestsellers list)
   tep_db_query("update " . TABLE_PRODUCTS . " set products_ordered = products_ordered + " . sprintf('%d', $order->products[$i]['qty']) . " where products_id = '" . tep_get_prid($order->products[$i]['id']) . "'");

   $sql_data_array = array('orders_id' => $insert_id, 
                           'products_id' => tep_get_prid($order->products[$i]['id']), 
                           'products_model' => $order->products[$i]['model'], 
                           'products_name' => $order->products[$i]['name'], 
                           'products_price' => $order->products[$i]['price'], 
                           'final_price' => $order->products[$i]['final_price'], 
                           'products_tax' => $order->products[$i]['tax'], 
                           'products_quantity' => $order->products[$i]['qty']);
   tep_db_perform(TABLE_ORDERS_PRODUCTS, $sql_data_array);
   $order_products_id = tep_db_insert_id();

//------insert customer choosen option to order--------
   $attributes_exist = '0';
   $products_ordered_attributes = '';
   if (isset($order->products[$i]['attributes'])) {
     $attributes_exist = '1';
     for ($j=0, $n2=sizeof($order->products[$i]['attributes']); $j<$n2; $j++) {
       if (DOWNLOAD_ENABLED == 'true') {
         $attributes_query = "select popt.products_options_name, poval.products_options_values_name, pa.options_values_price, pa.price_prefix, pad.products_attributes_maxdays, pad.products_attributes_maxcount , pad.products_attributes_filename 
                              from " . TABLE_PRODUCTS_OPTIONS . " popt, " . TABLE_PRODUCTS_OPTIONS_VALUES . " poval, " . TABLE_PRODUCTS_ATTRIBUTES . " pa 
                              left join " . TABLE_PRODUCTS_ATTRIBUTES_DOWNLOAD . " pad
                               on pa.products_attributes_id=pad.products_attributes_id
                              where pa.products_id = '" . $order->products[$i]['id'] . "' 
                               and pa.options_id = '" . $order->products[$i]['attributes'][$j]['option_id'] . "' 
                               and pa.options_id = popt.products_options_id 
                               and pa.options_values_id = '" . $order->products[$i]['attributes'][$j]['value_id'] . "' 
                               and pa.options_values_id = poval.products_options_values_id 
                               and popt.language_id = '" . $languages_id . "' 
                               and poval.language_id = '" . $languages_id . "'";
         $attributes = tep_db_query($attributes_query);
       } else {
         $attributes = tep_db_query("select popt.products_options_name, poval.products_options_values_name, pa.options_values_price, pa.price_prefix from " . TABLE_PRODUCTS_OPTIONS . " popt, " . TABLE_PRODUCTS_OPTIONS_VALUES . " poval, " . TABLE_PRODUCTS_ATTRIBUTES . " pa where pa.products_id = '" . $order->products[$i]['id'] . "' and pa.options_id = '" . $order->products[$i]['attributes'][$j]['option_id'] . "' and pa.options_id = popt.products_options_id and pa.options_values_id = '" . $order->products[$i]['attributes'][$j]['value_id'] . "' and pa.options_values_id = poval.products_options_values_id and popt.language_id = '" . $languages_id . "' and poval.language_id = '" . $languages_id . "'");
       }
       $attributes_values = tep_db_fetch_array($attributes);

       $sql_data_array = array('orders_id' => $insert_id, 
                               'orders_products_id' => $order_products_id, 
                               'products_options' => $attributes_values['products_options_name'],
                               'products_options_values' => $attributes_values['products_options_values_name'], 
                               'options_values_price' => $attributes_values['options_values_price'], 
                               'price_prefix' => $attributes_values['price_prefix']);
       tep_db_perform(TABLE_ORDERS_PRODUCTS_ATTRIBUTES, $sql_data_array);

       if ((DOWNLOAD_ENABLED == 'true') && isset($attributes_values['products_attributes_filename']) && tep_not_null($attributes_values['products_attributes_filename'])) {
         $sql_data_array = array('orders_id' => $insert_id, 
                                 'orders_products_id' => $order_products_id, 
                                 'orders_products_filename' => $attributes_values['products_attributes_filename'], 
                                 'download_maxdays' => $attributes_values['products_attributes_maxdays'], 
                                 'download_count' => $attributes_values['products_attributes_maxcount']);
         tep_db_perform(TABLE_ORDERS_PRODUCTS_DOWNLOAD, $sql_data_array);
       }
       $products_ordered_attributes .= "\n\t" . $attributes_values['products_options_name'] . ' ' . $attributes_values['products_options_values_name'];
     }
   }
//------insert customer choosen option eof ----
//BEGIN SEND HTML MAIL//

   $products_ordered .= $order->products[$i]['qty'] . ' x ' . $order->products[$i]['name'] . ' (' . $order->products[$i]['model'] . ') = ' . $currencies->display_price($order->products[$i]['final_price'], $order->products[$i]['tax'], $order->products[$i]['qty']) . $products_ordered_attributes . "\n";
   $products_quantity .= nl2br($order->products[$i]['qty'] . "\n");
$products_name .= nl2br("" . $order->products[$i]['name'] . $products_ordered_attributes ."\n");

if (!tep_not_null($order->products[$i]['model'])) {
      $products_model .= ''.EMAIL_NO_MODEL.'' ;
        }
   else
      $products_model .= nl2br($order->products[$i]['model'] . "\n");


   $products_price .= nl2br($currencies->format($order->products[$i]['final_price'] * $order->products[$i]['qty']) . "\n");

}




for ($i=0; $i<sizeof($order_totals); $i++) {
   $Vartaxe .= strip_tags($order_totals[$i]['title']) . ' ' . strip_tags($order_totals[$i]['text']) . "\n";
 }


if ($order->content_type != 'virtual') {
   $Varaddress .= tep_address_label($customer_id, $sendto, 0, '', "\n") ;
 }

   if (is_object($$payment)) {
   $Varmodepay .= EMAIL_TEXT_PAYMENT_METHOD . "\n" . 
                   EMAIL_SEPARATOR . "\n";
   $payment_class = $$payment;
   $Varmodpay .= $payment_class->title . "\n";
   if ($payment_class->email_footer) { 
     $Varmodpay .= $payment_class->email_footer . "\n\n";
   }
 }

$Varlogo = ''.VARLOGO.'' ;
$Vartable1 = ''.VARTABLE1.'' ;
$Vartable2 = ''.VARTABLE2.'' ;

$Vartext1 = ' <b>' . EMAIL_TEXT_DEAR . ' ' . $order->customer['firstname'] . ' ' . $order->customer['lastname'] .' </b><br>' . EMAIL_MESSAGE_GREETING ;
$Vartext2 = '    ' . EMAIL_TEXT_ORDER_NUMBER . ' <STRONG> ' . $insert_id . '</STRONG><br>' . EMAIL_TEXT_DATE_ORDERED . ': <strong>' . strftime(DATE_FORMAT_LONG) . '</strong><br><a href="' . HTTP_SERVER . DIR_WS_CATALOG . 'account_history_info.php?order_id=' . $insert_id .'">' . EMAIL_TEXT_INVOICE_URL . '</a>' ; 

$Varmailfooter = ''.VARMAILFOOTER.'' ;
$VarArticles= ''.EMAIL_TEXT_PRODUCTS_ARTICLES.'' ;
$VarModele= ''.EMAIL_TEXT_PRODUCTS_MODELE.'' ;
$VarQte= ''.EMAIL_TEXT_PRODUCTS_QTY .'' ;
$VarTotal= ''.EMAIL_TEXT_TOTAL.'' ;
$VarAddresship = ''.EMAIL_TEXT_DELIVERY_ADDRESS.'' ;
$VarAddressbill = ''.EMAIL_TEXT_BILLING_ADDRESS.'' ;
$Varmetodpaye = ''.EMAIL_TEXT_PAYMENT_METHOD.'' ;
$Vardetail = ''.DETAIL .'' ;
$Varhttp = ''.VARHTTP.'';
$Varstyle = ''.VARSTYLE.'';
$Varshipaddress =''.tep_address_format($order->customer['format_id'], $order->customer, 1, '', '<br>').'';
$Varadpay =''.tep_address_format($order->delivery['format_id'], $order->delivery, 1, '', '<br>').'';



require(DIR_WS_MODULES . 'email/html_checkout_process.php');
$email_order = $html_email_order ;

// lets start with the email confirmation
if (EMAIL_USE_HTML == 'true') {

$email_order;

} 
else

{

$email_order = STORE_NAME . "\n" . 
                EMAIL_SEPARATOR . "\n" . 
                EMAIL_TEXT_ORDER_NUMBER . ' ' . $insert_id . "\n" .
                EMAIL_TEXT_INVOICE_URL . ' ' . tep_href_link(FILENAME_ACCOUNT_HISTORY_INFO, 'order_id=' . $insert_id, 'SSL', false) . "\n" .
                EMAIL_TEXT_DATE_ORDERED . ' ' . strftime(DATE_FORMAT_LONG) . "\n\n";
 if ($order->info['comments']) {
+    $email_order .= tep_db_output($order->info['comments']) . "\n\n";
 }
 $email_order .= EMAIL_TEXT_PRODUCTS . "\n" . 
                 EMAIL_SEPARATOR . "\n" . 
                 $products_ordered . 
                 EMAIL_SEPARATOR . "\n";

 for ($i=0; $i<sizeof($order_totals); $i++) {
   $email_order .= strip_tags($order_totals[$i]['title']) . ' ' . strip_tags($order_totals[$i]['text']) . "\n";
 }
/* One Page Checkout - BEGIN */
 $sendToFormatted = tep_address_label($customer_id, $sendto, 0, '', "\n");
 if (ONEPAGE_CHECKOUT_ENABLED == 'True'){
     $sendToFormatted = $onePageCheckout->getAddressFormatted('sendto');
 }

 $billToFormatted = tep_address_label($customer_id, $billto, 0, '', "\n");
 if (ONEPAGE_CHECKOUT_ENABLED == 'True'){
     $billToFormatted = $onePageCheckout->getAddressFormatted('billto');
 }
/* One Page Checkout - END */
if ($order->content_type != 'virtual') {
   $email_order .= "\n" . EMAIL_TEXT_DELIVERY_ADDRESS . "\n" . 
                   EMAIL_SEPARATOR . "\n" .
                   tep_address_label($customer_id, $sendto, 0, '', "\n") . "\n";
 }

 $email_order .= "\n" . EMAIL_TEXT_BILLING_ADDRESS . "\n" .

                 EMAIL_SEPARATOR . "\n" .
                 tep_address_label($customer_id, $billto, 0, '', "\n") . "\n\n";
 if (is_object($$payment)) {
   $email_order .= EMAIL_TEXT_PAYMENT_METHOD . "\n" . 
                   EMAIL_SEPARATOR . "\n";
   $payment_class = $$payment;
   $email_order .= $payment_class->title . "\n\n\n\n\n";
   if ($payment_class->email_footer) { 
     $email_order .= $payment_class->email_footer . "\n\n";
   }
 }

 $email_order .= "\n" . EMAIL_TEXT_FOOTER . "\n" .
                       HTTP_SERVER . DIR_WS_CATALOG . "\n" . 
                       EMAIL_TEXT_FOOTERR . "\n" ;

}


 tep_mail($order->customer['firstname'] . ' ' . $order->customer['lastname'], $order->customer['email_address'], EMAIL_TEXT_SUBJECT, nl2br($email_order), STORE_OWNER, STORE_OWNER_EMAIL_ADDRESS, '');
 $email_order=ereg_replace("[[:alpha:]]+://[^<>[:space:]]+[[:alnum:]/]","<a href=\"\\0\">\\0</a>", $email_order);

// send emails to other people
 if (SEND_EXTRA_ORDER_EMAILS_TO != '') {
$email_order = $html_email_order ;
if (EMAIL_USE_HTML == 'true') {

$email_order;

} 
else

{

$email_order = STORE_NAME . "\n" . 
                EMAIL_SEPARATOR . "\n" . 
                EMAIL_TEXT_ORDER_NUMBER . ' ' . $insert_id . "\n" .
                EMAIL_TEXT_INVOICE_URL . ' ' . tep_href_link(FILENAME_ACCOUNT_HISTORY_INFO, 'order_id=' . $insert_id, 'SSL', false) . "\n" .
                EMAIL_TEXT_DATE_ORDERED . ' ' . strftime(DATE_FORMAT_LONG) . "\n\n";
 if ($order->info['comments']) {
+    $email_order .= tep_db_output($order->info['comments']) . "\n\n";
 }
 $email_order .= EMAIL_TEXT_PRODUCTS . "\n" . 
                 EMAIL_SEPARATOR . "\n" . 
                 $products_ordered . 
                 EMAIL_SEPARATOR . "\n";

 for ($i=0; $i<sizeof($order_totals); $i++) {
   $email_order .= strip_tags($order_totals[$i]['title']) . ' ' . strip_tags($order_totals[$i]['text']) . "\n";
 }

 if ($order->content_type != 'virtual') {
   $email_order .= "\n" . EMAIL_TEXT_DELIVERY_ADDRESS . "\n" . 
                   EMAIL_SEPARATOR . "\n" .
                   tep_address_label($customer_id, $sendto, 0, '', "\n") . "\n";
 }

 $email_order .= "\n" . EMAIL_TEXT_BILLING_ADDRESS . "\n" .

                 EMAIL_SEPARATOR . "\n" .
                 tep_address_label($customer_id, $billto, 0, '', "\n") . "\n\n";
 if (is_object($$payment)) {
   $email_order .= EMAIL_TEXT_PAYMENT_METHOD . "\n" . 
                   EMAIL_SEPARATOR . "\n";
   $payment_class = $$payment;
   $email_order .= $payment_class->title . "\n\n\n\n\n";
   if ($payment_class->email_footer) { 
     $email_order .= $payment_class->email_footer . "\n\n";
   }
 }

 $email_order .= "\n" . EMAIL_TEXT_FOOTER . "\n" .
                       HTTP_SERVER . DIR_WS_CATALOG . "\n" . 
                       EMAIL_TEXT_FOOTERR . "\n" ;

}
   tep_mail('', SEND_EXTRA_ORDER_EMAILS_TO, EMAIL_TEXT_SUBJECT, nl2br($email_order), STORE_OWNER, STORE_OWNER_EMAIL_ADDRESS, '');
   $email_order=ereg_replace("[[:alpha:]]+://[^<>[:space:]]+[[:alnum:]/]","<a href=\"\\0\">\\0</a>", $email_order);
 } 

//END SEND HTML MAIL//


// load the after_process function from the payment modules

 $cart->reset(true);

/* One Page Checkout - BEGIN */
 if (ONEPAGE_CHECKOUT_ENABLED == 'True'){
     $onepage['info']['order_id'] = $insert_id;
 }
/* One Page Checkout - END */

// unregister session variables used during checkout
 tep_session_unregister('sendto');
 tep_session_unregister('billto');
 tep_session_unregister('shipping');
 tep_session_unregister('payment');
 tep_session_unregister('comments');

 tep_redirect(tep_href_link(FILENAME_CHECKOUT_SUCCESS, '', 'SSL'));

 require(DIR_WS_INCLUDES . 'application_bottom.php');

?>

Link to comment
Share on other sites

  • 2 weeks later...
  • 3 months later...

After hours of trying to figure this out.. I need some advice

 

My e-mails from shop comes back as follows

VARHTTP VARSTYLE VARTABLE1

VARLOGO

 

VARTABLE2

EMAIL_TEXT_DEAR Xxxxx Xxxxxxx

EMAIL_MESSAGE_GREETING

 

Order Number:

Date Ordered:: Thursday 16 September, 2010

Detailed Invoice: (link for pdf invoice)

 

EMAIL_TEXT_COMMENTS_UPDATE_HTML

 

Thank you so much for your order with us!

 

The status of your order has been updated.

 

New status:

 

VARMAILFOOTER

 

 

It would appear to be a simple define text problem but I cannot seem to find the solution to the problem

My shop is modified a lot

Getting the Phoenix off the ground

Link to comment
Share on other sites

Forget about the previous post - now working somehow - edited edit_orders.php file and added the defines

 

Now I get an all color full e-mail but is missing the order id and updated status set at admin edit orders

 

Any help

Getting the Phoenix off the ground

Link to comment
Share on other sites

Hello,

I have installed this module sucessfully and it is working well, I'd like to thank to developers for putting it together.

What I'd like help with is the layout of the email sent too customers.

I've had a bit of a play and have managed to modify a few things however I'm not a coding expert and I'm starting to go round the bend trying to nut it out.

I have included this image that explains what I am trying to do. Can someone help please?

Cheers Chad

EmailLayout.jpg

Link to comment
Share on other sites

Hello,

I have installed this module sucessfully and it is working well, I'd like to thank to developers for putting it together.

What I'd like help with is the layout of the email sent too customers.

I've had a bit of a play and have managed to modify a few things however I'm not a coding expert and I'm starting to go round the bend trying to nut it out.

I have included this image that explains what I am trying to do. Can someone help please?

Cheers Chad

EmailLayout.jpg

 

I don't know about the first 2 questions, but to eliminate the extra spaces in the address, there's a file in the contribution called address_optimization.txt.

 

The order mail in this great contribution did not display the payment address with me.
The address format was not to my liking. It looked like:

---------------------

Firstname Lastname

Streetname 0

Postalcode

Country

---------------------

With this little mod it now looks like:

---------------------

Firstname Lastname
Streetname 0
Postalcode
Country

---------------------
---------------------

To change it open catalog/checkout_process.php

Find:

$Varshipaddress =''.tep_address_label($customer_id, $sendto).'';

Change to:

$Varshipaddress =''.tep_address_format($order->customer['format_id'], $order->customer, 1, '', '<br>').'';
$Varadpay =''.tep_address_format($order->delivery['format_id'], $order->delivery, 1, '', '<br>').'';


(if you allready have $Varadpay defined, delete it)

---------------------
Many thanks to the makers of this great contribution!!

 

This worked for me...

Link to comment
Share on other sites

  • 1 month later...

I'm trying to follow the steps for "row mod"

 

First, I can not get the stylesheet affects the email sent, I'd like to put it to my taste totally, but could be worth so

 

But when I do, I lose the font face

 

Does anyone know why?

 

 

Modifications made in the /includes/modules/email/html_checkout_process_php

find (line 43-48)

$html_email_order .= "        	<tr> ";
$html_email_order .= "          	<td width=\"300\" valign=\"top\" align=\"left\" class=\"boxmailgris\">$products_name</td>";
$html_email_order .= "          	<td width=\"160\" valign=\"top\" align=\"left\" class=\"boxmailgris\">$products_model</td>";
$html_email_order .= "          	<td width=\"40\"  valign=\"top\" align=\"center\" class=\"boxmailgris\">$products_quantity</td>";
$html_email_order .= "          	<td width=\"100\" valign=\"top\" align=\"right\" class=\"boxmailgris\">$products_price</td>";
$html_email_order .= "        	</tr>";

_____________________
replace with

$m=0;
foreach ($orderarray as $Orderpos){
$modmodel = $Orderpos['Model'];
$modpart = $Orderpos['Modelnr'];
$modqty = $Orderpos['Qty'];
$modtotal = $Orderpos['Price'];
$html_email_order .= "  		<tr><td width=\"300\" valign=\"top\" align=\"left\" class=\"boxmailgris".$m."\">$modmodel</td>";
$html_email_order .= "			<td width=\"160\" valign=\"top\" align=\"left\"  class=\"boxmailgris".$m."\">$modpart</td>";
$html_email_order .= "			<td width=\"40\"  valign=\"top\" align=\"center\" class=\"boxmailgris".$m."\">$modqty</td>";
$html_email_order .= "			<td width=\"100\" valign=\"top\" align=\"right\" class=\"boxmailgris".$m."\">$modtotal</td></tr>";
$m = $m+1;
if ($m == 2)$m=0;
};	

 

Thanks

Link to comment
Share on other sites

I'm trying to follow the steps for "row mod"

 

First, I can not get the stylesheet affects the email sent, I'd like to put it to my taste totally, but could be worth so

 

But when I do, I lose the font face

 

Does anyone know why?

 

 

Modifications made in the /includes/modules/email/html_checkout_process_php

find (line 43-48)

$html_email_order .= "        	<tr> ";
$html_email_order .= "          	<td width=\"300\" valign=\"top\" align=\"left\" class=\"boxmailgris\">$products_name</td>";
$html_email_order .= "          	<td width=\"160\" valign=\"top\" align=\"left\" class=\"boxmailgris\">$products_model</td>";
$html_email_order .= "          	<td width=\"40\"  valign=\"top\" align=\"center\" class=\"boxmailgris\">$products_quantity</td>";
$html_email_order .= "          	<td width=\"100\" valign=\"top\" align=\"right\" class=\"boxmailgris\">$products_price</td>";
$html_email_order .= "        	</tr>";

_____________________
replace with

$m=0;
foreach ($orderarray as $Orderpos){
$modmodel = $Orderpos['Model'];
$modpart = $Orderpos['Modelnr'];
$modqty = $Orderpos['Qty'];
$modtotal = $Orderpos['Price'];
$html_email_order .= "  		<tr><td width=\"300\" valign=\"top\" align=\"left\" class=\"boxmailgris".$m."\">$modmodel</td>";
$html_email_order .= "			<td width=\"160\" valign=\"top\" align=\"left\"  class=\"boxmailgris".$m."\">$modpart</td>";
$html_email_order .= "			<td width=\"40\"  valign=\"top\" align=\"center\" class=\"boxmailgris".$m."\">$modqty</td>";
$html_email_order .= "			<td width=\"100\" valign=\"top\" align=\"right\" class=\"boxmailgris".$m."\">$modtotal</td></tr>";
$m = $m+1;
if ($m == 2)$m=0;
};	

 

Thanks

 

I have to say that the mistake was mine, not the contribution.

 

I was looking at the results in the preview emails without opening the email in full, so do not refresh properly.

 

After opening the email completely, perfectly showed the changes made, as well as the style sheet, which previously seemed to not work

Link to comment
Share on other sites

  • 4 weeks later...

The instructions state:

 

In: catalog/includes/languages/english/create_account.php Put this before ?>

 

blah blah blah blah blah blah blah 
blah blah blah blah blah 

define('EMAIL_TEXT_FOOTER', '');     //Footer Text 

blah blah blah blah blah blah 

 

 

My changed the code to:

 

define('EMAIL_TEXT_FOOTER', 'The information contained in this message is confidential and intended solely for the
use of the individual or entity named. If the reader of this message is not the intended recipient or the employee 
or agent responsible for delivering it to the intended recipient, you are hereby notified that any dissemination,
distribution, copying or unauthorized use of this communication is strictly prohibited. If you have received this by 
error, please notify the sender immediately.');     //Footer Text 

 

This appears in the welcome email. I would like to add this to the order and order update emails as well. How would I do this?

Edited by Zachary
Link to comment
Share on other sites

  • 4 months later...

Hi,

 

I'm installed the last contributions of send_order_html_email_v1 (24. jul 2008). Everything work perfect, only the order status updates won't work. I receive mesage like this on picture:

 

Zajetaslika.JPG

 

The part of ../catalog/admin/orders.php with html code is:

 

 

            //BEGIN SEND HTML MAIL//

//Prepare variables for html email//
$Varlogo = ''.VARLOGO.'' ;
$Vartable1 = ''.VARTABLE1.'' ;
$Vartable2 = ''.VARTABLE2.'' ;

$Vartext1 = ' <b>' . EMAIL_TEXT_DEAR . ' ' . $check_status['customers_name'] .' </b><br>' . EMAIL_MESSAGE_GREETING ;
$Vartext2 = '    ' . EMAIL_TEXT_ORDER_NUMBER . ' <STRONG> ' . $oID . '</STRONG><br>' . EMAIL_TEXT_DATE_ORDERED . ': <strong>' . strftime(DATE_FORMAT_LONG) . '</strong><br><a href="' . HTTP_SERVER . DIR_WS_CATALOG . 'account_history_info.php?order_id=' . $insert_id .'">' . EMAIL_TEXT_INVOICE_URL . '</a>' ; 

$Varbody = EMAIL_TEXT_COMMENTS_UPDATE . ' ' . $comments . "\n\n" . sprintf(EMAIL_TEXT_STATUS_UPDATE, $orders_status_array[$status]);

$Varmailfooter = ''.VARMAILFOOTER.'' ;

$Varhttp = ''.VARHTTP.'';
$Varstyle = ''.VARSTYLE.'';

//Check if HTML emails is set to true
if (EMAIL_USE_HTML == 'true') {	

//Prepare HTML email
require(DIR_WS_MODULES . 'email/html_orders.php');
$email = $html_email_orders;
} else {		

//Send text email
           $email = STORE_NAME . "\n" . EMAIL_SEPARATOR . "\n" . EMAIL_TEXT_ORDER_NUMBER . ' ' . $oID . "\n" . EMAIL_TEXT_INVOICE_URL . ' ' . tep_catalog_href_link(FILENAME_CATALOG_ACCOUNT_HISTORY_INFO, 'order_id=' . $oID, 'SSL') . "\n" . EMAIL_TEXT_DATE_ORDERED . ' ' . tep_date_long($check_status['date_purchased']) . "\n\n" . EMAIL_TEXT_COMMENTS_UPDATE . ' ' . $comments . "\n\n" . sprintf(EMAIL_TEXT_STATUS_UPDATE, $orders_status_array[$status]);
}

//END SEND HTML MAIL//

 

 

Any sugestion about this?

 

Thanks!

Link to comment
Share on other sites

Problem solved!

 

i've just add:

 

define('VARHTTP', '<base href="' . HTTP_SERVER . DIR_WS_CATALOG . '">');   //Do not change
define('VARMAILFOOTER', '' . EMAIL_TEXT_FOOTER . '<a href="mailto:' . STORE_OWNER_EMAIL_ADDRESS . '">' . STORE_OWNER_EMAIL_ADDRESS . '</a><br>' . EMAIL_TEXT_COPYRIGHT . '<a href="' . HTTP_SERVER . DIR_WS_CATALOG . '">'. STORE_NAME .'</a> ');  //footer

 

into the catalog\admin\includes\languages\english\orders.php

Link to comment
Share on other sites

  • 2 months later...

The instructions state:

 

In: catalog/includes/languages/english/create_account.php Put this before ?>

 

blah blah blah blah blah blah blah 
blah blah blah blah blah 

define('EMAIL_TEXT_FOOTER', '');     //Footer Text 

blah blah blah blah blah blah 

 

 

My changed the code to:

 

define('EMAIL_TEXT_FOOTER', 'The information contained in this message is confidential and intended solely for the
use of the individual or entity named. If the reader of this message is not the intended recipient or the employee 
or agent responsible for delivering it to the intended recipient, you are hereby notified that any dissemination,
distribution, copying or unauthorized use of this communication is strictly prohibited. If you have received this by 
error, please notify the sender immediately.');     //Footer Text 

 

This appears in the welcome email. I would like to add this to the order and order update emails as well. How would I do this?

 

 

Still looking for an answer to this. But in looking at all the code for the email I noticed that there are 2 different calls for footer. 1. one call is for EMAIL_TEXT_FOOTER, the 2. another call is for EMAIL_TEXT_FOOTERR. Also in the coding I see $Varmailfooter and then a call for $Varmailfooter2. But $Varmailfooter2 is not defined anywhere.

 

Just trying to understand the code. Is the above codes the same thing or should I define the footerr and varmailfooter2 as something. Would these pieces of code be used to add the text I want to the order and update order emails.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...