Jump to content



Latest News: (loading..)

* * * - - 2 votes

[Contribution] U HTML Emails


  • Please log in to reply
238 replies to this topic

#41   adam777

adam777
  • Members
  • 101 posts
  • Real Name:Adam
  • Gender:Male
  • Location:Sydney

Posted 16 April 2008 - 05:18 AM

Hi

Great idea!

Unfortunately it doesn't work with Fast Easy Checkout 3.2 v5.1 for RC2a.

I get the following error:

Quote

Warning: main(includes/modules/UHtmlEmails/checkout_process_Basic.php) [function.main]: failed to open stream: No such file or directory in xxxxxxxxxxxxxxxxxxxxxxxxx/checkout_process.php on line 256

Warning: main(includes/modules/UHtmlEmails/checkout_process_Basic.php) [function.main]: failed to open stream: No such file or directory in xxxxxxxxxxxxxxxxxxxxxxxx/checkout_process.php on line 256

Fatal error: main() [function.require]: Failed opening required 'includes/modules/UHtmlEmails/checkout_process_Basic.php' (include_path='.:/usr/lib/php:/usr/local/lib/php') in /xxxxxxxxxxxxxxxxxxxxxxxxxxxxx/checkout_process.php on line 256

...and my code for checkout_process.php is:

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

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

  Copyright (c) 2007 osCommerce

  Released under the GNU General Public License
*/

////fec configuration
$allow_second_chance_account_in_email=0;// set to 1 to  allow create an account in email 
include('includes/application_top.php');
require(DIR_WS_LANGUAGES . $language . '/' . 'fast_account.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();

  $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);
  }

  $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 ----
	$total_weight += ($order->products[$i]['qty'] * $order->products[$i]['weight']);
	$total_tax += tep_calculate_tax($total_products_price, $products_tax) * $order->products[$i]['qty'];
	$total_cost += $total_products_price;

	$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";
  }

//fec start
// lets start with the email confirmation
  $email_order = STORE_NAME . "\n" . 
				 EMAIL_SEPARATOR . "\n" . 
				 EMAIL_TEXT_ORDER_NUMBER . ' ' . $insert_id . "\n";
			   if (!tep_session_is_registered('createaccount'))
{ $email_order .= EMAIL_TEXT_INVOICE_URL . ' ' . tep_href_link(FILENAME_ACCOUNT_HISTORY_INFO, 'order_id=' . $insert_id, 'SSL', false) . "\n";}
			  $email_order .=   EMAIL_TEXT_DATE_ORDERED . ' ' . strftime(DATE_FORMAT_LONG) . "\n\n";
/////////////
$check_customer_query = tep_db_query("select customers_firstname, customers_lastname, customers_password, customers_id ,confirmation_key from " . TABLE_CUSTOMERS . " where customers_email_address = '" . $order->customer['email_address'] . "' AND createaccount='N'");

$check_customer = tep_db_fetch_array($check_customer_query);

$new_password = $check_customer['confirmation_key'];
///IMPORTANT YOU ADD THE NEXT FEW LINES IF YOU WANT TO OFFER SECOND CHANCE CREATE
//ACCOUNT IN EMAIL YOU CAN ALSO USE THIS VALUE TO INFORM THE CUSTOMER OF HIS
// AUTO GENERATED PASSWORD
if((tep_session_is_registered('createaccount'))&&($allow_second_chance_account_in_email == 1))
{
$email_order .= EMAIL_TEXT_INVOICE_PASSWORD . ' ' . tep_href_link('account_password_new.php', 'confirmation_password=' . $new_password.'&customers_id='.$check_customer['customers_id'], 'SSL', true) . "\n";
$email_order .= EMAIL_TEXT_INVOICE_PASSWORD_NOLINK. "\n";
}
//END OPTIONAL
////////////
  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";
//fast easy checkout end

  for ($i=0, $n=sizeof($order_totals); $i<$n; $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 .= $order->info['payment_method'] . "\n\n";
	if ($payment_class->email_footer) { 
	  $email_order .= $payment_class->email_footer . "\n\n";
	}
  }
  tep_mail($order->customer['firstname'] . ' ' . $order->customer['lastname'], $order->customer['email_address'], EMAIL_TEXT_SUBJECT, $email_order, STORE_OWNER, STORE_OWNER_EMAIL_ADDRESS);

// send emails to other people
  if (SEND_EXTRA_ORDER_EMAILS_TO != '') {
	tep_mail('', SEND_EXTRA_ORDER_EMAILS_TO, EMAIL_TEXT_SUBJECT, $email_order, STORE_OWNER, STORE_OWNER_EMAIL_ADDRESS);
  }

// load the after_process function from the payment modules
  $payment_modules->after_process();

  $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');

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

  require(DIR_WS_INCLUDES . 'application_bottom.php');
?>

I like the html option but not sure where to go from here?

Edited by adam777, 16 April 2008 - 05:22 AM.


#42   moziambic

moziambic
  • Members
  • 45 posts
  • Real Name:Joseph Shadap

Posted 22 April 2008 - 05:09 AM

does this contribution allow customers the choice to select email type as html or text during registration and also does it work with product attributes?
Contributions I'm using:
Updated Spiders.txt | Country State Selector

To add more life to your site. Follow this link:
http://addons.oscommerce.com/


#43   Olof Larsson

Olof Larsson
  • Members
  • 91 posts
  • Real Name:Olof Larsson
  • Gender:Male
  • Location:Sweden

Posted 27 April 2008 - 07:22 AM

View Postmoziambic, on Apr 22 2008, 05:09 AM, said:

does this contribution allow customers the choice to select email type as html or text during registration and also does it work with product attributes?

It does not allow customers the choice to select email type as html or text during registration.
It works with product attributes.

#44   ski2bbad

ski2bbad
  • Members
  • 154 posts
  • Real Name:Michael Douglas
  • Gender:Male

Posted 13 May 2008 - 02:11 PM

Hello all.

This is a great contribution and I want to thank Olof for sharing it with us.

I have a simple question . . . . I'm using the Forest Green email and I was wondering if there is a way to make the Store Name, that appears on the green portion (header) of the email, to show as an image?  (I'd like to use my store logo image instead of just the name of the store)

Any help would be greatly appreciated.

Thank you!   :thumbsup:

ski

#45   ski2bbad

ski2bbad
  • Members
  • 154 posts
  • Real Name:Michael Douglas
  • Gender:Male

Posted 13 May 2008 - 03:55 PM

View Postski2bbad, on May 13 2008, 07:11 AM, said:

I have a simple question . . . . I'm using the Forest Green email and I was wondering if there is a way to make the Store Name, that appears on the green portion (header) of the email, to show as an image?  (I'd like to use my store logo image instead of just the name of the store)

Never mind . . . . I figured it out on my own. ;)


Thanks again for this great contribution.

ski

#46   mme

mme
  • Members
  • 115 posts
  • Real Name:mme
  • Location:Netherlands / New - Zealand

Posted 17 May 2008 - 05:32 AM

hi

I am trying to make it so that when the order status is updated a email is also sent to a person that packs my products and sends them to the customer. So I added the code in orders.php it sends the email but half of the varibles dont work like the customers address ect..

Here is the html code for the email:
<html>
<head>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html;charset=iso-8859-1">
<style type="text/css">
TD{FONT-FAMILY:Verdana,Tahoma,Arial,"Sans Serif";FONT-SIZE:10pt}
BODY{FONT-FAMILY:Verdana,Tahoma,Arial,"Sans Serif";FONT-SIZE:10pt}
.style2 {
	font-size: 8pt;
	font-style: italic;
}
.style3 {font-size: 8pt}
.style4 {color: #FFFFFF}
.style5 {color: #000000}
</style>
</head>
<body bgColor="#eeeeee">
<table cellSpacing="1" cellPadding="0" width="700" bgColor="#cccccc" border="0" align="center"><tr>
<td bgcolor="white">
<table cellSpacing="0" cellPadding="15" width="100%"><tr><td>
<table cellSpacing="0" cellPadding="0" width="100%" border="0"><tr>
<td><img src="' . HTTP_SERVER . '/site/shop/includes/modules/UHtmlEmails/files/header.gif" alt="Header" border="0"></td>
<td align="center"><div align="right"><img src="' . HTTP_SERVER . '/site/shop/includes/modules/UHtmlEmails/files/logo_shop.gif" alt="Logo" border="0"></div></td>
</tr></table>
<hr size="0" color="#CCCCCC">
<table cellspacing="0" cellpadding="10" width="100%"><tr><td><table cellspacing="0" cellpadding="10" width="100%">
<tr>
  <td>
	<p><span class="style2"><small>This is an automated email regarding order: '.$oID.'</small></span><br>
	</p>
	<p>Order Details:</p>
	<p><strong>Customer Name:</strong> '. $check_status['customers_name'] .'<br>
	<table width="86%" border="0">
	  <tr>
		<td width="79%" bgcolor="#333333"><strong><span class="style4">Customer Address: </span><br>
		</strong></td>
		<td width="3%" rowspan="2">&nbsp;</td>
		<td width="18%" rowspan="2">Print Address</td>
	  </tr>
	  <tr>
		<td bgcolor="#CCCCCC">'. $check_status['delivery_street_address']. '<br>
'. $check_status['street_address']. '<br>
'. $check_status['suburb']. '<br>
'. $check_status['city']. '<br>
'. $check_status['postcode']. '<br>
'. $check_status['state']. '<br>
'. $check_status['country']. '</td>
	  </tr>
	</table>
	<p>&nbsp;</p>
	<table width="550" border="0">
	  <tr bgcolor="#333333">
		<td width="43%"><div align="center" class="style1 style4"><strong>Product</strong></div></td>
		<td width="18%"><div align="center" class="style1 style4"><strong>Quantity</strong></div></td>
		</tr>';
			for ($i=0, $n=sizeof($order->products); $i<$n; $i++) {
			$html_ship_email .='
			<tr bgcolor="#CCCCCC">
		<td><div align="center" class="style1">' . $check_status[$i]["name"] . $html_ship_email_product_attributes[$i]. '</div></td>
		<td><div align="center" class="style1">' . $check_status[$i]["qty"].'</div></td>
		</tr>';
		}
		$html_ship_email .='
	</table>
	<p><br>
	  <br>
	  <br>
	  </td>
</tr></table></td></tr></table>
<hr size="0" color="#CCCCCC">
<center>
  <br><small>&copy; ' .$y. ' <a href="' . HTTP_SERVER . '" class="style5">' . STORE_NAME . '</a></small><br>
</center></td></tr></table></td></tr></table>
</body></html>


#47   Olof Larsson

Olof Larsson
  • Members
  • 91 posts
  • Real Name:Olof Larsson
  • Gender:Male
  • Location:Sweden

Posted 23 May 2008 - 08:20 AM

Hi Mme,
I do not know if I'm answering your question realy, cause I'm not sure I understand your problem completely. One thing I saw however is that you use CSS code in the header of the file. This will not work.

If you would like to create a html email you should first make sure you know a bit about html emails.
Here are some liks that might be interesting for you:

http://www.xavierfrenette.com/articles/css...ort-in-webmail/
http://www.alistapart.com/articles/cssemail/
http://www.campaignmonitor.com/blog/archiv...e_to_css_1.html
http://www.reachcustomersonline.com/conten...27.00/index.php

As for the other problems with your email I do not know in wich file you include this file. I'm sure you can figure this problem out yourself. Good luck :)

#48   Benjjj6

Benjjj6
  • Members
  • 471 posts
  • Real Name:Ben
  • Gender:Male

Posted 05 July 2008 - 02:52 PM

Hi Olof,

Would it be possible for you to modify this contribution so that when I click 'Invoice' from the Orders section on the Admin side of my site it would show one of these HTML email templates instead of the boring standard OsCommerce invoice?

Thanks!

#49   rcall

rcall
  • Members
  • 302 posts
  • Real Name:Rebecca Call
  • Gender:Female

Posted 08 July 2008 - 03:16 PM

Thanks for the contrib Olof...  I have yet to install it but it appears to be just what one of our customer's needs.  Question for you though, is the uhtml newsletter contribution able to have emails throttled?  We have some customers with tens of thousands of email subscribers who would get black listed by their ISP's if they sent out that many newsletters at the same time.

Any insight is appreciated.
-Rebecca

If at first you don't succeed, try, try again.

#50   smokey988

smokey988
  • Members
  • 1 posts
  • Real Name:Dale Biko

Posted 14 July 2008 - 07:23 PM

Has anyone got this to work with paypal for the newer version of ipn? I have it working on everything except on paypal orders. It still shows up as normal text on them.

#51   jhande

jhande
  • Members
  • 2,112 posts
  • Real Name:Jim Hande
  • Gender:Male
  • Location:White Mountains, NH USA

Posted 20 July 2008 - 09:34 AM

Fantastic contribution, thanks Olof! :)

I was starting to have fun creating my own slightly altered version of the Stripes - checkout_process.php until I ran into a snag.
Actually it's a lack of knowledge on my part. :blush:

What I am trying to do is align-right the following text output:

Sub-Total: $47.95
United States Postal Service (1 x 4lbs) (Parcel): $10.13
Total: $58.08

No matter how I try editing this bit of code, it makes a mess or returns error messages:
</table>
<font face="Verdana, Arial, Helvetica, sans-serif" style="font-size:12px;">
  <br />
  '.str_replace($ArrayLNTargets, '<br />', $HTMLEmailOrderTotals).'
  <br />';

I'm sure I am missing something simple, but I haven't figured it out in 3 hours. :(
- :: Jim :: -
- My Toolbox ~ Adobe Web Bundle & WinMerge | Install ~ osCommerce v2.2 MS2 060817 -
- Not 4 Hire ~ Please DO NOT PM me for help. I really do not have a clue what I am doing! -
- Working on a new 2.3.3 install -

#52   hoschibo

hoschibo
  • Members
  • 1 posts
  • Real Name:Holger
  • Gender:Male
  • Location:Germany

Posted 30 July 2008 - 10:06 AM

Hello,

i have just installed u-html email. It works fine.
But i still have one prob.
Can it be, that the check for the gender doesn´t work.
I had a male customer, but when i send a new password by password forgotten, so the greeting in the mail is Dear Ms.
Where´s the Problem?. :huh:

Kind Regards

hoschibo - Germany

#53   Teamjr

Teamjr
  • Members
  • 177 posts
  • Real Name:Dominic Bregante
  • Gender:Male
  • Location:California

Posted 31 July 2008 - 02:35 AM

Hello,

Will this contribution work for MS2.2 RC1?

Thanks Jr

#54   jhande

jhande
  • Members
  • 2,112 posts
  • Real Name:Jim Hande
  • Gender:Male
  • Location:White Mountains, NH USA

Posted 31 July 2008 - 05:17 AM

Having another slight problem.

U Html Emails - Development Mode = True

I do NOT get any - "catalog/Last_mail_from_checkout_process.php.htm".

Any ideas?  :huh:
- :: Jim :: -
- My Toolbox ~ Adobe Web Bundle & WinMerge | Install ~ osCommerce v2.2 MS2 060817 -
- Not 4 Hire ~ Please DO NOT PM me for help. I really do not have a clue what I am doing! -
- Working on a new 2.3.3 install -

#55   Olof Larsson

Olof Larsson
  • Members
  • 91 posts
  • Real Name:Olof Larsson
  • Gender:Male
  • Location:Sweden

Posted 31 July 2008 - 06:16 PM

Yes of course :)
Everything is possible and that does not seem to hard, however I do myself use a pdf invoice contribution so I won't fix that... not right now anyway :) but it could be a good idea.

View PostBenjjj6, on Jul 5 2008, 02:52 PM, said:

Hi Olof,

Would it be possible for you to modify this contribution so that when I click 'Invoice' from the Orders section on the Admin side of my site it would show one of these HTML email templates instead of the boring standard OsCommerce invoice?

Thanks!


#56   Olof Larsson

Olof Larsson
  • Members
  • 91 posts
  • Real Name:Olof Larsson
  • Gender:Male
  • Location:Sweden

Posted 31 July 2008 - 06:20 PM

Hello :) You're welcome,

Q: Question for you though, is the uhtml newsletter contribution able to have emails throttled?
A: No not right now.

I don't know what will make you banned actually... it is the server most truly that could get blacklisted for sending many emails at once. But I'm not familliar with this.



View Postrcall, on Jul 8 2008, 03:16 PM, said:

Thanks for the contrib Olof...  I have yet to install it but it appears to be just what one of our customer's needs.  Question for you though, is the uhtml newsletter contribution able to have emails throttled? We have some customers with tens of thousands of email subscribers who would get black listed by their ISP's if they sent out that many newsletters at the same time.

Any insight is appreciated.


#57   Olof Larsson

Olof Larsson
  • Members
  • 91 posts
  • Real Name:Olof Larsson
  • Gender:Male
  • Location:Sweden

Posted 31 July 2008 - 06:24 PM

Basic html. Please take a basic html course  ;)

Change:
<font face="Verdana, Arial, Helvetica, sans-serif" style="font-size:12px;">
  <br />
  '.str_replace($ArrayLNTargets, '<br />', $HTMLEmailOrderTotals).'
  <br />';



To:
<font face="Verdana, Arial, Helvetica, sans-serif" align="right" style="font-size:12px;">
  <br />
  '.str_replace($ArrayLNTargets, '<br />', $HTMLEmailOrderTotals).'
  <br />';


I only added align="right"
That should do it.

View Postjhande, on Jul 20 2008, 09:34 AM, said:

Fantastic contribution, thanks Olof! :)

I was starting to have fun creating my own slightly altered version of the Stripes - checkout_process.php until I ran into a snag.
Actually it's a lack of knowledge on my part. :blush:

What I am trying to do is align-right the following text output:

Sub-Total: $47.95
United States Postal Service (1 x 4lbs) (Parcel): $10.13
Total: $58.08

No matter how I try editing this bit of code, it makes a mess or returns error messages:
</table>
<font face="Verdana, Arial, Helvetica, sans-serif" style="font-size:12px;">
  <br />
  '.str_replace($ArrayLNTargets, '<br />', $HTMLEmailOrderTotals).'
  <br />';

I'm sure I am missing something simple, but I haven't figured it out in 3 hours. :(


#58   Olof Larsson

Olof Larsson
  • Members
  • 91 posts
  • Real Name:Olof Larsson
  • Gender:Male
  • Location:Sweden

Posted 31 July 2008 - 06:32 PM

This is very interesting!
$gender is not defined in the file where the email generating module is included.

This is a bug. Thank you for finding it. This will be fixed in the next release.

The following code can be added somewhere before the $gender variable is used:
$check_customer_query_uhtml = tep_db_query("select customers_gender from " . TABLE_CUSTOMERS . " where customers_email_address = '" . tep_db_input($email_address) . "'");
$check_customer_uhtml = tep_db_fetch_array($check_customer_query_uhtml);
$gender = $check_customer_uhtml['customers_gender'];

I just wrote it and have not tested it so it might contain typos etc.

View Posthoschibo, on Jul 30 2008, 10:06 AM, said:

Hello,

i have just installed u-html email. It works fine.
But i still have one prob.
Can it be, that the check for the gender doesn´t work.
I had a male customer, but when i send a new password by password forgotten, so the greeting in the mail is Dear Ms.
Where´s the Problem?. :huh:

Kind Regards

hoschibo - Germany


#59   Olof Larsson

Olof Larsson
  • Members
  • 91 posts
  • Real Name:Olof Larsson
  • Gender:Male
  • Location:Sweden

Posted 31 July 2008 - 06:34 PM

Yes. But some modification might be needed.
Make sure you know the differences between RC1 and RC2a.

A good idea for you might be to learn how to use the program Beyond Compare ^^
Good Luck!

View PostTeamjr, on Jul 31 2008, 02:35 AM, said:

Hello,

Will this contribution work for MS2.2 RC1?

Thanks Jr


#60   Olof Larsson

Olof Larsson
  • Members
  • 91 posts
  • Real Name:Olof Larsson
  • Gender:Male
  • Location:Sweden

Posted 31 July 2008 - 06:36 PM

I gues you have installed wrong or there is a clash with an other contribution.

Try to install again and be detailed. Use Beyond Compare (a program)

View Postjhande, on Jul 31 2008, 05:17 AM, said:

Having another slight problem.

U Html Emails - Development Mode = True

I do NOT get any - "catalog/Last_mail_from_checkout_process.php.htm".

Any ideas?  :huh: