- Posts: 6
- Thank you received: 0
Adding attachments to order status email messages
- DenisLeemkuil
-
Topic Author
- Offline
Less
More
13 years 9 months ago #83141
by DenisLeemkuil
Adding attachments to order status email messages was created by DenisLeemkuil
We would like to add an attachment to one of the order status email messages.
I would go to System -> Emails and then click the message I want to change. When I browse for the file and save the changes everything seems to be working just fine. Then when I open the message again I can see the attachment listed. The problem is when I save my changes to the contents of the message for a second time. The attachment will then no longer be shown. I've recorded a short video to demonstrate:
dl.dropbox.com/u/11952877/Web%20Images/h..._com/attachments.zip
Also, deleting an attachment with the recycle bin icon will not delete the file from the uploads folder on the web server.
Is there anything we can do to fix these two issues?
From the PHP error log:
I would go to System -> Emails and then click the message I want to change. When I browse for the file and save the changes everything seems to be working just fine. Then when I open the message again I can see the attachment listed. The problem is when I save my changes to the contents of the message for a second time. The attachment will then no longer be shown. I've recorded a short video to demonstrate:
dl.dropbox.com/u/11952877/Web%20Images/h..._com/attachments.zip
Also, deleting an attachment with the recycle bin icon will not delete the file from the uploads folder on the web server.
Is there anything we can do to fix these two issues?
From the PHP error log:
Code:
[21-Dec-2012 13:35:33 Europe/Amsterdam] PHP Notice: Undefined property: stdClass::$mail in /home/bamict.micpoint.nl/web/administrator/components/com_hikashop/views/email/tmpl/form_param.php on line 48
[21-Dec-2012 13:36:14 Europe/Amsterdam] PHP Notice: Undefined offset: 1 in /home/bamict.micpoint.nl/web/administrator/components/com_hikashop/controllers/toggle.php on line 142
[21-Dec-2012 13:36:14 Europe/Amsterdam] PHP Warning: include_once(/home/bamict.micpoint.nl/web/administrator/components/com_hikashop/controllers/mail.php): failed to open stream: No such file or directory in /home/bamict.micpoint.nl/web/administrator/components/com_hikashop/helpers/helper.php on line 852
[21-Dec-2012 13:36:14 Europe/Amsterdam] PHP Warning: include_once(): Failed opening '/home/bamict.micpoint.nl/web/administrator/components/com_hikashop/controllers/mail.php' for inclusion (include_path='.:/usr/share/php:/usr/share/pear') in /home/bamict.micpoint.nl/web/administrator/components/com_hikashop/helpers/helper.php on line 852
[21-Dec-2012 13:38:07 Europe/Amsterdam] PHP Notice: Undefined property: stdClass::$mail in /home/bamict.micpoint.nl/web/administrator/components/com_hikashop/views/email/tmpl/form_param.php on line 48
Please Log in or Create an account to join the conversation.
Less
More
- Posts: 12953
- Thank you received: 1778
13 years 9 months ago #83355
by Mohamed Thelji
Replied by Mohamed Thelji on topic Adding attachments to order status email messages
Hi,
Can you show me what did you changed in your mail message ?
Can you show me what did you changed in your mail message ?
Please Log in or Create an account to join the conversation.
- DenisLeemkuil
-
Topic Author
- Offline
Less
More
- Posts: 6
- Thank you received: 0
13 years 9 months ago - 13 years 9 months ago #83427
by DenisLeemkuil
Replied by DenisLeemkuil on topic Adding attachments to order status email messages
Full contents of the message follow. I've changed two parts of the script. Starting at lines 168 and 300 surrounded by double slash comments (//). This issue with attachments was already present before we made any changes.
Code:
<?php
/**
* @package HikaShop for Joomla!
* @version 2.0.0
* @author hikashop.com
* @copyright (C) 2010-2012 HIKARI SOFTWARE. All rights reserved.
* @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
*/
defined('_JEXEC') or die('Restricted access');
?><div style="background-color: #ffffff; font-family: Verdana, Arial, Helvetica, sans-serif;font-size:12px; color: #000000; width: 100%;">
<table style="margin: auto;font-family: Verdana, Arial, Helvetica, sans-serif;font-size:12px;" border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td height="10">
</td>
</tr>
<tr>
<td>
<?php echo JText::sprintf('HI_CUSTOMER',@$data->customer->name);?>
<br/>
<br/>
<?php
$colspan = 4;
$url = $data->order_number;
$config =& hikashop_config();
if($config->get('simplified_registration',0)!=2){
$url = '<a href="'.$data->order_url.'">'. $url.'</a>';
}
echo JText::sprintf('ORDER_CREATION_SUCCESS_ON_WEBSITE_AT_DATE',$url,HIKASHOP_LIVE, hikashop_getDate(time(),'%d %B %Y'), hikashop_getDate(time(),'%H:%M'));?>
</td>
</tr>
<tr>
<td height="10">
</td>
</tr>
<tr>
<td>
<h1 style="background-color:#DDDDDD;font-size:14px;width:100%;padding:5px;"><?php echo JText::_('SUMMARY_OF_YOUR_ORDER');?></h1>
<br/>
<table width="100%" style="font-family: Verdana, Arial, Helvetica, sans-serif;font-size:12px;">
<tr>
<td style="font-weight:bold;"><?php
echo JText::_('CART_PRODUCT_NAME');
?></td>
<?php if ($config->get('show_code')) { $colspan++; ?>
<td style="font-weight:bold;"><?php echo JText::_('CART_PRODUCT_CODE'); ?></td>
<?php } ?>
<td style="font-weight: bold;"><?php
echo JText::_('CART_PRODUCT_UNIT_PRICE');
?></td>
<td style="font-weight: bold;"><?php
echo JText::_('CART_PRODUCT_QUANTITY');
?></td>
<td style="font-weight: bold; text-align: right;"><?php echo JText::_('HIKASHOP_TOTAL'); ?>
</td>
</tr>
<?php
if(hikashop_level(2)){
$fieldsClass = hikashop_get('class.field');
$null = null;
$itemFields = $fieldsClass->getFields('frontcomp',$null,'item');
}
$group = $config->get('group_options',0);
foreach($data->cart->products as $item){
if($group && $item->cart_product_option_parent_id) continue;
?>
<tr>
<td>
<p>
<?php echo $item->order_product_name;
if($group){
$display_item_price=false;
foreach($data->cart->products as $j => $optionElement){
if($optionElement->cart_product_option_parent_id != $item->cart_product_id) continue;
if($optionElement->order_product_price>0){
$display_item_price = true;
}
}
if($display_item_price){
if($config->get('price_with_tax')){
echo ' '.$currencyHelper->format($item->order_product_price+$item->order_product_tax,$data->order_currency_id);
}else{
echo ' '.$currencyHelper->format($item->order_product_price,$data->order_currency_id);
}
}
}
?>
</p><?php
if(!empty($itemFields)){
foreach($itemFields as $field){
$namekey = $field->field_namekey;
if(empty($item->$namekey)) continue;
echo '<p>'.$fieldsClass->getFieldName($field).': '.$fieldsClass->show($field,$item->$namekey).'</p>';
}
}
$optionsPrices = new stdClass();
$optionsPrices->order_product_price=0;
$optionsPrices->order_product_tax=0;
$optionsPrices->order_product_total_price=0;
$optionsPrices->order_product_total_price_no_vat=0;
if($group){
foreach($data->cart->products as $j => $optionElement){
if($optionElement->cart_product_option_parent_id == 0 || $optionElement->cart_product_option_parent_id != $item->cart_product_id) continue;
$optionsPrices->order_product_price +=$optionElement->order_product_price;
$optionsPrices->order_product_tax +=$optionElement->order_product_tax;
$optionsPrices->order_product_total_price+=$optionElement->order_product_total_price;
$optionsPrices->order_product_total_price_no_vat+=$optionElement->order_product_total_price_no_vat;
?>
<p class="hikashop_order_option_name">
<?php
echo $optionElement->order_product_name;
if($optionElement->order_product_price>0){
if($config->get('price_with_tax')){
echo ' ( + '.$currencyHelper->format($optionElement->order_product_price+$optionElement->order_product_tax,$data->order_currency_id).' )';
}else{
echo ' ( + '.$currencyHelper->format($optionElement->order_product_price,$data->order_currency_id).' )';
}
}
?>
</p>
<?php
}
}
$statusDownload = explode(',',$config->get('order_status_for_download','confirmed,shipped'));
if(in_array($data->order_status,$statusDownload)){
if(!empty($item->files)){
global $Itemid;
$url_itemid = '';
if(!empty($Itemid)){
$url_itemid='&Itemid='.$Itemid;
}
echo '<p>';
foreach($item->files as $file){
$fileName = empty($file->file_name) ? $file->file_path : $file->file_name;
echo '<a href="'.hikashop_frontendLink('index.php?option=com_hikashop&ctrl=order&task=download&file_id='.$file->file_id.'&order_id='.$data->order_id.$url_itemid).'">'.$fileName.'</a><br/>';
}
echo '</p>';
}
} ?>
</td>
<?php if ($config->get('show_code')) { ?>
<td><p class="hikashop_product_code_mail"><?php echo $item->order_product_code; ?></p></td>
<?php } ?>
<td>
<?php
if($config->get('price_with_tax')){
echo $currencyHelper->format($item->order_product_price+$optionsPrices->order_product_price+$item->order_product_tax+$optionsPrices->order_product_tax,$data->order_currency_id);
}else{
echo $currencyHelper->format($item->order_product_price+$optionsPrices->order_product_price,$data->order_currency_id);
} ?>
</td>
<td><?php echo $item->order_product_quantity; ?></td>
<td style="text-align: right">
<?php
if($config->get('price_with_tax')){
echo $currencyHelper->format($item->order_product_total_price+$optionsPrices->order_product_total_price,$data->order_currency_id);
}else{
echo $currencyHelper->format($item->order_product_total_price_no_vat+$optionsPrices->order_product_total_price_no_vat,$data->order_currency_id);
} ?>
</td>
</tr>
<?php
}
// Start custom sub total
echo '<tr><td colspan="'.$colspan.'" style="text-align:right">'.JText::_('SUBTOTAL').': ';
if($config->get('price_with_tax')){
echo $currencyHelper->format($data->cart->total->prices[0]->price_value_with_tax,$data->order_currency_id);
}else{
echo $currencyHelper->format($data->cart->total->prices[0]->price_value,$data->order_currency_id);
}
echo '</td></tr>';
// End sub total
if(bccomp($data->order_discount_price,0,5)){
echo '<tr><td colspan="'.$colspan.'" style="text-align:right">'.JText::_('HIKASHOP_COUPON').': ';
if($config->get('price_with_tax')){
echo $currencyHelper->format($data->order_discount_price*-1,$data->order_currency_id);
}else{
echo $currencyHelper->format(($data->order_discount_price-@$data->order_discount_tax)*-1,$data->order_currency_id);
}
echo '</td></tr>';
}
if(bccomp($data->order_shipping_price,0,5)){
echo '<tr><td colspan="'.$colspan.'" style="text-align:right">'.JText::_('HIKASHOP_SHIPPING_METHOD').': ';
if($config->get('price_with_tax')){
echo $currencyHelper->format($data->order_shipping_price,$data->order_currency_id);
}else{
echo $currencyHelper->format($data->order_shipping_price-@$data->order_shipping_tax,$data->order_currency_id);
}
echo '</td></tr>';
}
if(bccomp($data->order_payment_price,0,5)){
echo '<tr><td colspan="'.$colspan.'" style="text-align:right">'.JText::_('HIKASHOP_PAYMENT_METHOD').': '.$currencyHelper->format($data->order_payment_price,$data->order_currency_id).'</td></tr>';
}
if(!empty($data->cart->additional)) {
$exclude_additionnal = explode(',', $config->get('order_additional_hide', ''));
foreach($data->cart->additional as $additional) {
if(in_array($additional->name, $exclude_additionnal)) continue;
echo '<tr><td colspan="'.$colspan.'" style="text-align:right">'. JText::_($additional->name).': ';
if(!empty($additional->price_value) || empty($additional->value)) {
if($config->get('price_with_tax')){
echo $currencyHelper->format($additional->price_value_with_tax, $data->order_currency_id);
}else{
echo $currencyHelper->format($additional->price_value, $data->order_currency_id);
}
} else {
echo $additional->value;
}
echo '</td></tr>';
}
}
if($data->cart->full_total->prices[0]->price_value!=$data->cart->full_total->prices[0]->price_value_with_tax){
if($config->get('detailed_tax_display') && !empty($data->order_tax_info)){
foreach($data->order_tax_info as $tax){
echo '<tr><td colspan="'.$colspan.'" style="text-align:right">'.$tax->tax_namekey. ': '.$currencyHelper->format($tax->tax_amount,$data->order_currency_id).'</td></tr>';
}
}else{
echo '<tr><td colspan="'.$colspan.'" style="text-align:right">'.JText::sprintf('TOTAL_WITHOUT_VAT',$currencyHelper->format($data->cart->full_total->prices[0]->price_value,$data->order_currency_id)).'</td></tr>';
}
$text=JText::sprintf('TOTAL_WITH_VAT',$currencyHelper->format($data->cart->full_total->prices[0]->price_value_with_tax,$data->order_currency_id));
}else{
$text=JText::_('HIKASHOP_FINAL_TOTAL'). ': '.$currencyHelper->format($data->cart->full_total->prices[0]->price_value_with_tax,$data->order_currency_id);
}
echo '<tr><td colspan="'.$colspan.'" style="text-align:right;font-weight:bold;">'.$text.'</td></tr>';
?>
</table>
</td>
</tr>
<tr>
<td height="10">
</td>
</tr>
<tr>
<td>
<table width="100%" style="border: 1px solid #DDDDDD;font-family: Verdana, Arial, Helvetica, sans-serif;font-size:12px;">
<?php
$params = null;
$js = '';
$fieldsClass = hikashop_get('class.field');
$app =& JFactory::getApplication();
if($app->isAdmin()){
$view = 'order';
}else{
$view = 'address';
}
$template = trim(hikashop_getLayout($view,'address_template',$params,$js));
if(!empty($data->cart->billing_address)){
$billing = $template;
foreach($data->order_addresses_fields as $field){
$fieldname = $field->field_namekey;
$address =& $data->order_addresses[$data->cart->billing_address->address_id];
$billing=str_replace('{'.$fieldname.'}',$fieldsClass->show($field,$address->$fieldname),$billing);
}
echo '<tr><td style="font-weight:bold;background-color:#DDDDDD">'.JText::_('HIKASHOP_BILLING_ADDRESS').'</td></tr><tr><td>';
echo str_replace(array("\r\n","\r","\n"),'<br/>',preg_replace('#{(?:(?!}).)*}#i','',$billing)).'<br/></td></tr>';
}
if(!empty($data->order_shipping_method)) {
$currentShipping = hikashop_import('hikashopshipping',$data->order_shipping_method);
if(method_exists($currentShipping, 'getShippingAddress')) {
$override = $currentShipping->getShippingAddress($data->order_shipping_id);
if($override !== false) {
$data->override_shipping_address = $override;
}
}
}
if(!empty($data->override_shipping_address) || (!empty($data->cart->has_shipping) && !empty($data->cart->shipping_address))) echo '<tr><td style="font-weight:bold;background-color:#DDDDDD">'.JText::_('HIKASHOP_SHIPPING_ADDRESS').'</td></tr><tr><td>';
if(!empty($data->override_shipping_address)) {
echo $data->override_shipping_address.'<br/></td></tr>';
} else if(!empty($data->cart->has_shipping) && !empty($data->cart->shipping_address)){
$shipping = $template;
foreach($data->order_addresses_fields as $field){
$fieldname = $field->field_namekey;
$address =& $data->order_addresses[$data->cart->shipping_address->address_id];
$shipping=str_replace('{'.$fieldname.'}',$fieldsClass->show($field,$address->$fieldname),$shipping);
}
echo str_replace(array("\r\n","\r","\n"),'<br/>',preg_replace('#{(?:(?!}).)*}#i','',$shipping)).'<br/></td></tr>';
}?>
</table>
</td>
</tr>
<tr>
<td><?php
$fields = $fieldsClass->getFields('frontcomp',$data,'order','');
foreach($fields as $fieldName => $oneExtraField) {
if(empty($data->$fieldName)) continue;
echo "<br/>".$fieldsClass->trans($oneExtraField->field_realname).': '.$fieldsClass->show($oneExtraField,$data->$fieldName);
} ?></td>
</tr>
<tr>
<td height="10">
</td>
</tr>
<tr>
<td><?php
// Start payment method
$class = hikashop_get('class.payment');
$payment = $class->get($data->order_payment_id);
echo JText::_('HIKASHOP_CHECKOUT_PAYMENT').': '.$payment->payment_name;
// End payment method
?>.</td>
</tr>
<tr>
<td height="10">
</td>
</tr>
<?php
JPluginHelper::importPlugin('hikashop');
$dispatcher = JDispatcher::getInstance();
$dispatcher->trigger('onAfterOrderProductsListingDisplay', array(&$data->cart, 'email_notification_html'));
?>
<tr>
<td>
<?php
if(!$app->isAdmin()){
if($data->cart->full_total->prices[0]->price_value_with_tax>0) echo JText::_('ORDER_VALID_AFTER_PAYMENT');
$config =& hikashop_config();
if($data->cart->full_total->prices[0]->price_value_with_tax>0 && hikashop_level(1) && $config->get('allow_payment_button',1)){
global $Itemid;
$url = '';
if(!empty($Itemid)){
$url='&Itemid='.$Itemid;
}
$pay_url = hikashop_frontendLink('index.php?option=com_hikashop&ctrl=order&task=pay&order_id='.$data->order_id.$url);
if($config->get('force_ssl',0) && strpos('https://',$pay_url) === false) {
$pay_url = str_replace('http://','https://',$pay_url);
} ?>
<a href="$pay_url"><?php JText::_('PAY_NOW'); ?></a>
<?php } ?>
<br/>
<br/>
<?php echo JText::sprintf('THANK_YOU_FOR_YOUR_ORDER',HIKASHOP_LIVE);
}?>
<br/>
<br/>
<?php echo JText::sprintf('BEST_REGARDS_CUSTOMER',$mail->from_name);?>
</td>
</tr>
<tr>
<td height="10">
</td>
</tr>
<tr>
<td height="10">
</td>
</tr>
</tbody>
</table>
</div>
Last edit: 13 years 9 months ago by DenisLeemkuil.
Please Log in or Create an account to join the conversation.
Less
More
- Posts: 12953
- Thank you received: 1778
13 years 9 months ago #83526
by Mohamed Thelji
Replied by Mohamed Thelji on topic Adding attachments to order status email messages
Hi,
I would recommend you to :
1.
Turn on the debug mode and the error reporting options of the joomla configuration.
2.
- Go to "Hikashop->Orders"
- Select a random order
- Change the order status to "confirmed" (a popup will display)
- Change the "Notify customer" option to YES without pressing "OK"
Then you'll have the result of your mail and some error reports that will help you to solve your problem.
I would recommend you to :
1.
Turn on the debug mode and the error reporting options of the joomla configuration.
2.
- Go to "Hikashop->Orders"
- Select a random order
- Change the order status to "confirmed" (a popup will display)
- Change the "Notify customer" option to YES without pressing "OK"
Then you'll have the result of your mail and some error reports that will help you to solve your problem.
Please Log in or Create an account to join the conversation.
Time to create page: 0.202 seconds