Picto Posted February 26, 2011 Share Posted February 26, 2011 Hi Olaf, i have been busy with this contrib and it is working great with images, links, backgrounds. At the moment i want to add html email to other mails that are provided from other modules. Now i am busy with tho admin/customers.php file with the contrib control login (http://addons.oscommerce.com/info/1154). Here an email will be send when customer account is approved by admin. I added UHtmlEmails/customers.php and the language file as needed. I also added the lines needed on admin/customers.php. The email can be send and received. But i only see hardcore html in the mail. No images or backgrounds! I have seen this problem ones before but i can't find the solution again how i solved it at that time. Hope you can give that little advice i need. Thanks, Gerard p.s. in order editor it works fine where i installed uhtml emails to. Here is a piece of the lines from admin/customers.php // BOF Control Login case 'setflag': if ( ($HTTP_GET_VARS['flag'] == '0') || ($HTTP_GET_VARS['flag'] == '1') ) { if ($HTTP_GET_VARS['cID']) { tep_set_customers_status($HTTP_GET_VARS['cID'], $HTTP_GET_VARS['flag']); } if(CONTROL_LOGIN == 'true') { // BOF Control Login email mod to notify customers when their account has been activated - by Martin Mills March 05 if ($HTTP_GET_VARS['flag'] == '1') { //selects user's profile based on the URL parameter used to reset status $query = 'SELECT * from customers where customers_id='.$HTTP_GET_VARS['cID']; $result = mysql_query($query); if (!$result) { //this will show you any errors in the query - for testing purposes $message = 'Invalid query: ' . mysql_error() . "\n"; $message .= 'Whole query: ' . $query; die($message); } $row = mysql_fetch_assoc($result); //define recipient's email address $email=$row{'customers_email_address'}; //define recipient's first name $firstname=$row{'customers_firstname'}; //define return address $headers = EMAIL_ACTIVATE_FROM; mail; //define your message //--- Beginning of addition: Ultimate HTML Emails ---// if (EMAIL_USE_HTML == 'true') { require(DIR_FS_CATALOG_MODULES . 'html_mail/'. HTML_EMAIL_LAYOUT .'/control_login.php'); $message = $html_email; }else{ //--- End of addition: Ultimate HTML Emails ---// $message = EMAIL_ACTIVATE_GREETING. ' ' .$firstname. ",\n\n".EMAIL_ACTIVATE_MESSAGE."\n\n".STORE_OWNER_EMAIL_ADDRESS."\n\n".STORE_NAME_ADDRESS."\n\n".EMAIL_ACTIVATE_SIGNOFF."\n\n".STORE_OWNER.", ".STORE_NAME; //--- Beginning of addition: Ultimate HTML Emails ---// } if(HTML_EMAIL_DEVELOPMENT_MODE === 'true'){ //Save the contents of the generated html email to the harddrive in .htm file. This can be practical when developing a new layout. $TheFileName = 'Last_mail_from_control_login.php.htm'; $TheFileHandle = fopen($TheFileName, 'w') or die("can't open error log file"); fwrite($TheFileHandle, $message); fclose($TheFileHandle); } //--- End of addition: Ultimate HTML Emails ---// mail ($email, EMAIL_ACTIVATE_SUBJECT, $message, $headers); } } // EOF Control Login email mod } tep_redirect(tep_href_link(FILENAME_CUSTOMERS, '', 'NONSSL')); break; // EOF Control Login Quote Link to comment Share on other sites More sharing options...
martinsnestor@hotmail.com Posted May 10, 2011 Share Posted May 10, 2011 hi there: Well it looks like I am the only one with this question. The files I need to modify like checkout_process.php are a bunch of define statements, Where do I insert the code? Help please Quote Link to comment Share on other sites More sharing options...
Guest Posted July 6, 2011 Share Posted July 6, 2011 (edited) Hello, I'm using this mod without any problems in my 2.3.1 shop exept for the newsletter. This one isn't send in HTML. Can you please tell what I have to change to also send the newsletter in HTML? Thx Edited July 7, 2011 by Swingy Quote Link to comment Share on other sites More sharing options...
OSC-Sevilla Posted July 14, 2011 Share Posted July 14, 2011 Has anyone had trouble with this once the google the capatcha mod is added??? - Quote Link to comment Share on other sites More sharing options...
OSC-Sevilla Posted July 15, 2011 Share Posted July 15, 2011 Has anyone had trouble with this once the google the capatcha mod is added??? - ISSUE SOLVED - Was an error in my databsase Quote Link to comment Share on other sites More sharing options...
OSC-Sevilla Posted July 19, 2011 Share Posted July 19, 2011 Is there a CONTACT US - html version floating around? Quote Link to comment Share on other sites More sharing options...
Guest Posted July 27, 2011 Share Posted July 27, 2011 Is there nobody who can help with the newsletter? (see 3 posts above) Quote Link to comment Share on other sites More sharing options...
OSC-Sevilla Posted July 28, 2011 Share Posted July 28, 2011 the newsletter is easy, just paste html code into the newletter area in the Admin - Quote Link to comment Share on other sites More sharing options...
Guest Posted July 28, 2011 Share Posted July 28, 2011 Yes for someone who knows html. But the person who have to send the newsletter doesn't know html so it has to be a template for sending de newsletter. Quote Link to comment Share on other sites More sharing options...
Tom172 Posted August 6, 2011 Share Posted August 6, 2011 (edited) [update text/plain has no linefeeds] .. alternative 2. Solution is relative simple without any heavy modifications (as far I can see). Modification IN ADDITION to U HTML v2.1 (2008/08/02): --- step 1 modify admin/includes/functions/general.php AND catalog/includes/functions/general.php --- Find: function tep_mail($to_name, $to_email_address, $email_subject, $email_text, $from_email_name, $from_email_address) { if (SEND_EMAILS != 'true') return false; // Instantiate a new mail object $message = new email(array('X-Mailer: osCommerce')); // Build the text version $text = strip_tags($email_text); if (EMAIL_USE_HTML == 'true') { $message->add_html($email_text, $text); Add after: //--- Beginning of addition: Ultimate HTML Emails ---// global $UHTML_html_text; if (tep_not_null($UHTML_html_text) ){ $message->html_text = $UHTML_html_text; } //--- End of addition: Ultimate HTML Emails ---// --- step 2 add text/plain --- For the e-mail you want to modify the text/plain go to: catalog/includes/modules/UHtmlEmails/LAYOUT_NAME/FILENAME.php At the end of the file, before '?>' insert: $UHTML_html_text = "This is the text/plain code\nwith linefeeds.\n\nYou can also use the variables used in the $html_email."; That's all... This code is also added to the ADDONS-page. Kind regards, Patrick I also had the problem with text displaying as one block without any linefeeds for users that allow emails as text only. So I tried the above fix on a 2.2rca - without ANY result actually although I am sure that I have applied the above fix as directed. So I was wondering if anyone ever figured out another way of displaying the email correctly for those users accepting only text emails? Regards tom Edited August 6, 2011 by Tom172 Quote Link to comment Share on other sites More sharing options...
sakkiotto Posted August 8, 2011 Share Posted August 8, 2011 (edited) Hi. it possible change subject email like "OUR STORE: YOUR ORDER Nr:" + 'The Order Number' + 'The Status of the order with oID'... update orders and when a customer confir order Edited August 8, 2011 by sakkiotto Quote Link to comment Share on other sites More sharing options...
kalkal Posted September 4, 2011 Share Posted September 4, 2011 There is only one thing I cant get to work with this contrib. The order totals dont show up in the order confirmation email. Ive had to change the variables to work with Paypal IPN but cant get the order totals variable to work. Anyone resolved this? Any help would be greatly appreciated! Quote Link to comment Share on other sites More sharing options...
spiralspiral Posted September 22, 2011 Share Posted September 22, 2011 hi on oscommerce 2.3.1 everything works great except for the orders status update, there is no instruction for that. any help please? Quote Link to comment Share on other sites More sharing options...
OSC-Sevilla Posted September 26, 2011 Share Posted September 26, 2011 hi on oscommerce 2.3.1 everything works great except for the orders status update, there is no instruction for that. any help please? edit ADMIN/ORDERS.php at : $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" . $notify_comments . sprintf(EMAIL_TEXT_STATUS_UPDATE, $orders_status_array[$status]); add above: //--- Beginning of addition: Ultimate HTML Emails ---// if (EMAIL_USE_HTML == 'true') { require(DIR_FS_CATALOG . DIR_WS_MODULES . 'UHtmlEmails/Green/orders_update.php'); $email = $html_email; }else{//Send text email //--- End of addition: Ultimate HTML Emails ---// add below: } ---------------------------------- NOW - in UTHML EMIALS---- includes/modules/uhtml emails/orders.php, copy and and save as orders_update.php ------------------------------ Now edit orders_update.php accordingly!! ---------------------------- WORKS FINE! Quote Link to comment Share on other sites More sharing options...
MolnárZoltán Posted October 28, 2011 Share Posted October 28, 2011 Hi! I followed the install.txt from line-by-line. It works fine. My only problem is, that i cant change the layout. This green background isnt good for my shop. How can it be changed? Please help me! I have 2.3.1 version. Quote Link to comment Share on other sites More sharing options...
OSC-Sevilla Posted October 29, 2011 Share Posted October 29, 2011 (edited) simply go online and find a nice loking html email template you like- copy and paste this code into the relevant $html = i have attached a sample, copy and paste his into the green folder - you will need to do your own langaue bits but this my help. test and see. populate as you wish with the php strongs that pull db info. etc etc... Edited October 29, 2011 by gfasal Quote Link to comment Share on other sites More sharing options...
Peper Posted January 4, 2012 Share Posted January 4, 2012 Hope to fix the following if someone can please give me advice to correct it When customer orders something with attributes the description and models gets all mixed up. I narrowed it down to the line 303 - $products_ordered_attributes .= "\n\t" . $attributes_values['products_options_name'] . ' ' . $attributes_values['products_options_values_name']; I think it's in the wrong place or not even sure Any help will be very much appreciated. My checkout_process.php file. <?php /* $Id: checkout_process.php 1750 2007-12-21 05:20:28Z hpdl $ adapted for Separate Pricing Per Customer 2006/09/09 (attribute prices for groups, hide attributes from groups osCommerce, Open Source E-Commerce Solutions http://www.oscommerce.com Copyright (c) 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)); } } $any_bundle_only = false; $products = $cart->get_products(); for ($i=0, $n=sizeof($products); $i<$n; $i++) { if ($products[$i]['sold_in_bundle_only'] == 'yes') $any_bundle_only = true; } if ($any_bundle_only) 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'], '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()', 'last_modified' => '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); //kgt - discount coupons if( tep_session_is_registered( 'coupon' ) && is_object( $order->coupon ) ) { $sql_data_array = array( 'coupons_id' => $order->coupon->coupon['coupons_id'], 'orders_id' => $insert_id ); tep_db_perform( TABLE_DISCOUNT_COUPONS_TO_ORDERS, $sql_data_array ); } //end kgt - discount coupons // initialized for the email confirmation $products_ordered = ''; $subtotal = 0; $total_tax = 0; // begin product bundles function reduce_bundle_stock($bundle_id, $qty_sold) { $bundle_query = tep_db_query('select pb.subproduct_id, pb.subproduct_qty, p.products_bundle, p.products_quantity from ' . TABLE_PRODUCTS_BUNDLES . ' pb, ' . TABLE_PRODUCTS . ' p where p.products_id = pb.subproduct_id and bundle_id = ' . (int)tep_get_prid($bundle_id)); while ($bundle_info = tep_db_fetch_array($bundle_query)) { if ($bundle_info['products_bundle'] == 'yes') { reduce_bundle_stock($bundle_info['subproduct_id'], ($qty_sold * $bundle_info['subproduct_qty'])); // update quantity of nested bundle sold tep_db_query("update " . TABLE_PRODUCTS . " set products_ordered = products_ordered + " . sprintf('%d', ($qty_sold * $bundle_info['subproduct_qty'])) . " where products_id = " . (int)$bundle_info['subproduct_id']); } else { $bundle_stock_left = $bundle_info['products_quantity'] - ($qty_sold * $bundle_info['subproduct_qty']); tep_db_query("update " . TABLE_PRODUCTS . " set products_quantity = " . (int)$bundle_stock_left . ", products_ordered = products_ordered + " . (int)($qty_sold * $bundle_info['subproduct_qty']) . " where products_id = " . (int)$bundle_info['subproduct_id']); if ( ($bundle_stock_left < 1) && (STOCK_ALLOW_CHECKOUT == 'false') ) { tep_db_query("update " . TABLE_PRODUCTS . " set products_status = '0' where products_id = " . (int)$bundle_info['subproduct_id']); } } } } 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, products_bundle 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, products_bundle 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'])) { if ($stock_values['products_bundle'] == 'yes') { reduce_bundle_stock($order->products[$i]['id'], $order->products[$i]['qty']); $stock_left = 1; // products_quantity has no meaning for bundles but must be at least one for bundle to sell, bundle quantity check is done by other means } else { $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']) . "'"); } } } // end product bundles // 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); // BOF Separate Pricing Per Customer attribute_groups mod if (isset($_SESSION['sppc_customer_group_id']) && $_SESSION['sppc_customer_group_id'] != '0') { $attributes_group_query = tep_db_query("select pag.options_values_price, pag.price_prefix from " . TABLE_PRODUCTS_ATTRIBUTES . " pa left join " . TABLE_PRODUCTS_ATTRIBUTES_GROUPS . " pag using(products_attributes_id) where pa.products_id = '" . tep_get_prid($order->products[$i]['id']) . "' and pa.options_id = '" . $order->products[$i]['attributes'][$j]['option_id'] . "' and pa.options_values_id = '" . $order->products[$i]['attributes'][$j]['value_id'] . "' and pag.customers_group_id = '" . (int)$_SESSION['sppc_customer_group_id'] . "'"); if ($attributes_group = tep_db_fetch_array($attributes_group_query)) { $attributes_values['options_values_price'] = $attributes_group['options_values_price']; $attributes_values['price_prefix'] = $attributes_group['price_prefix']; } } // EOF Separate Pricing Per Customer attribute_groups mod $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'])) { // BOF Super Download Shop v1.0 mod if (DOWNLOADS_CONTROLLER_FILEGROUP_STATUS != 'Yes' || !strstr($attributes_values['products_attributes_filename'], 'Group_Files-')) { $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); } else { $filegroup_array = explode('Group_Files-', $attributes_values['products_attributes_filename']); $filegroup_id = $filegroup_array[1]; $groupfiles_query = tep_db_query("select download_group_filename from " . TABLE_PRODUCTS_ATTRIBUTES_DOWNLOAD_GROUPS_FILES . " where download_group_id = '" . (int)$filegroup_id . "'"); while ($groupfile_array = tep_db_fetch_array($groupfiles_query)) { $sql_data_array = array('orders_id' => $insert_id, 'orders_products_id' => $order_products_id, 'orders_products_filename' => $groupfile_array['download_group_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); } } // EOF Super Download Shop v1.0 mod } $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_label($customer_id, $sendto).''; 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"; } 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=preg_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=preg_replace("/[[:alpha:]]+:\/\/[^<>[:space:]]+[[:alnum:]\/]/","<a href=\"\\0\">\\0</a>", $email_order); } //END SEND HTML MAIL// // 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'); //kgt - discount coupons tep_session_unregister('coupon'); //end kgt - discount coupons tep_redirect(tep_href_link(FILENAME_CHECKOUT_SUCCESS, '', 'SSL')); require(DIR_WS_INCLUDES . 'application_bottom.php'); ?> Quote Getting the Phoenix off the ground Link to comment Share on other sites More sharing options...
Mystefyer Posted February 2, 2012 Share Posted February 2, 2012 Hi all, Love the contrib. But has anyone succesfully integrated it with sending newsletters in HTML, as in the version for 2.3.1 newsletters still get send in plain text. I would like to send newsletters in html using a uhtml template but can't figure out how to do it. So if anyone knows, thanks in advance for the help. Regards Quote Link to comment Share on other sites More sharing options...
mamegaga Posted February 6, 2012 Share Posted February 6, 2012 Hello All ! How to encode mail order? my website is in UTF-8, I get the mail order with symbols like this: € = ≠¬ é = é etc... How to convert emails to UTF-8? that this change in general.php ..??? : // Instantiate a new mail object $message = new email(array('X-Mailer: osCommerce')); // Build the text version $text = strip_tags($email_text); if (EMAIL_USE_HTML == 'true') { $message->add_html($email_text, $text); } else { $message->add_text($text); } Thank you ! :thumbsup: Quote Link to comment Share on other sites More sharing options...
mamegaga Posted February 6, 2012 Share Posted February 6, 2012 (edited) I of course placed in: module/UHtmlEmails/Forest Green/checkout_process.php <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> But this does not solved my problem :'( Edited February 6, 2012 by mamegaga Quote Link to comment Share on other sites More sharing options...
Guest Posted March 12, 2012 Share Posted March 12, 2012 Hi I'm using 2.3.1 and this seems to work apart from two issues: a) Existing users - if they ask to reset their password - no password is sent an email. this only works of HTML is turned OFF B) New customers signing up Don't get an initial email. Again, all works if HTML is turned off. Any ideas?? Quote Link to comment Share on other sites More sharing options...
Guest Posted March 12, 2012 Share Posted March 12, 2012 Doh; looks like my spam filter grabbed them!!! Quote Link to comment Share on other sites More sharing options...
Guest Posted March 20, 2012 Share Posted March 20, 2012 Hi Olof, I just downloaded your contribution but I cannot find the install text, there is only a small text in Portuguese and 5 php files, is that okey? Quote Link to comment Share on other sites More sharing options...
nielss Posted May 5, 2012 Share Posted May 5, 2012 (edited) I am completly stuck on this one.... for some odd reason I really can't find it isn't sending welcome emails in HTML. Here is the create account.php snippet: if (EMAIL_USE_HTML == 'true') { require(DIR_WS_MODULES . 'UHtmlEmails/'. ULTIMATE_HTML_EMAIL_LAYOUT .'/create_account.php'); $email_text = $html_email; }else{ bla bla bla No I have no idea why but EMAIL_USE_HTML content is ALWAYS false. No mather what it selected. in the DB: it is 'true' but for some odd reason it isn't getting selected! i'm on 2.2RC2 heavy modified Anyone knows why? Edited May 5, 2012 by nielss Quote Link to comment Share on other sites More sharing options...
OSC-Sevilla Posted May 7, 2012 Share Posted May 7, 2012 ok check this: create account.php tep_db_perform(TABLE_ADDRESS_BOOK, $sql_data_array); $address_id = tep_db_insert_id(); tep_db_query("update " . TABLE_CUSTOMERS . " set customers_default_address_id = '" . (int)$address_id . "' where customers_id = '" . (int)$customer_id . "'"); tep_db_query("insert into " . TABLE_CUSTOMERS_INFO . " (customers_info_id, customers_info_number_of_logons, customers_info_date_account_created) values ('" . (int)$customer_id . "', '0', now())"); if (SESSION_RECREATE == 'True') { tep_session_recreate(); } $customer_first_name = $firstname; $customer_default_address_id = $address_id; $customer_country_id = $country; $customer_zone_id = $zone_id; tep_session_register('customer_id'); tep_session_register('customer_first_name'); tep_session_register('customer_default_address_id'); tep_session_register('customer_country_id'); tep_session_register('customer_zone_id'); // reset session token $sessiontoken = md5(tep_rand() . tep_rand() . tep_rand() . tep_rand()); // restore cart contents $cart->restore_contents(); // build the message content //--- Beginning of addition: Ultimate HTML Emails ---// if (EMAIL_USE_HTML == 'true') { require(DIR_WS_MODULES . 'UHtmlEmails/'. ULTIMATE_HTML_EMAIL_LAYOUT .'/create_account.php'); $email_text = $html_email; }else{ //--- End of addition: Ultimate HTML Emails ---// $name = $firstname . ' ' . $lastname; if (ACCOUNT_GENDER == 'true') { if ($gender == 'm') { $email_text = sprintf(EMAIL_GREET_MR, $lastname); } else { $email_text = sprintf(EMAIL_GREET_MS, $lastname); } } else { $email_text = sprintf(EMAIL_GREET_NONE, $firstname); } $email_text .= EMAIL_WELCOME . EMAIL_TEXT . EMAIL_CONTACT . EMAIL_WARNING; //--- Beginning of addition: Ultimate HTML Emails ---// } if(ULTIMATE_HTML_EMAIL_DEVELOPMENT_MODE === 'true'){ //Save the contents of the generated html email to the harddrive in .htm file. This can be practical when developing a new layout. $TheFileName = 'Last_mail_from_create_account.php.htm'; $TheFileHandle = fopen($TheFileName, 'w') or die("can't open error log file"); fwrite($TheFileHandle, $email_text); fclose($TheFileHandle); } //--- End of addition: Ultimate HTML Emails ---// tep_mail($name, $email_address, EMAIL_SUBJECT, $email_text, STORE_OWNER, STORE_OWNER_EMAIL_ADDRESS); tep_redirect(tep_href_link(FILENAME_CREATE_ACCOUNT_SUCCESS, '', 'SSL')); } } $breadcrumb->add(NAVBAR_TITLE, tep_href_link(FILENAME_CREATE_ACCOUNT, '', 'SSL')); require(DIR_WS_INCLUDES . 'template_top.php'); require('includes/form_check.js.php'); ?> Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.