- Posts: 377
- Thank you received: 7
description not showing in email or pdf variants
12 years 1 month ago #166408
by Dibben
description not showing in email or pdf variants was created by Dibben
-- HikaShop version -- : 2.3.2
-- Joomla version -- : 3.3.0
-- PHP version -- : 5.4
-- Error-message(debug-mod must be tuned on) -- : Product description not showing in email when product has variants
Hi,
I have this code for the emails that shows the product description in the email when the customer buys a product. However when the product has a variant this doesn't show. Do you know why this would be? Do i need to add the description to each variant also?
This is the pdf code i use... this shows but not when the product has a variant...
Kind regards
Alex
-- Joomla version -- : 3.3.0
-- PHP version -- : 5.4
-- Error-message(debug-mod must be tuned on) -- : Product description not showing in email when product has variants
Hi,
I have this code for the emails that shows the product description in the email when the customer buys a product. However when the product has a variant this doesn't show. Do you know why this would be? Do i need to add the description to each variant also?
Code:
<!-- {terms and conditions info} -->
<table width="100%" border="0">
<tr>
<td> <h1 style="background-color:#333;font-size:14px;width:560px;padding:5px; text-align:center; color:#fff; font-family:Arial, Helvetica, sans-serif;">FULL DETAILS / T&C's / HOW TO REDEEM</h1>
<p style="font-size:10px;"><br/>
<?php
$productClass = hikashop_get('class.product');
foreach($data->cart->products as $item){
$product = $productClass->get($item->product_id);
echo $item->order_product_name.'<strong></strong>';
echo $product->product_description.'<br/><hr><br/>';
} ?>
</p>
</td>
</tr>
</table>
<!-- { end terms and conditions info} -->
This is the pdf code i use... this shows but not when the product has a variant...
Code:
<table width="100%" border="0">
<tr>
<td> <h1 style="background-color:#333;font-size:14px;padding:5px; text-align:center; color:#fff; font-family:Arial, Helvetica, sans-serif;">Full Details / T&C's / How to Redeem...</h1>
<p style="font-size:10px;"><br/>
<?php
$productClass = hikashop_get('class.product');
foreach($order->products as $item){
$product = $productClass->get($item->product_id);
echo $item->order_product_name.'<strong></strong>';
echo $product->product_description.'<br/><hr><br/>';
} ?>
</p>
</td>
</tr>
</table>
Kind regards
Alex
Please Log in or Create an account to join the conversation.
12 years 1 month ago #166417
by nicolas
Replied by nicolas on topic description not showing in email or pdf variants
Hi,
That's normal since you entered the description only in the main product, not in each variant.
If you want that code to work with variants too, you'll have to make it more complex. Something like that:
That's normal since you entered the description only in the main product, not in each variant.
If you want that code to work with variants too, you'll have to make it more complex. Something like that:
Code:
<?php
$productClass = hikashop_get('class.product');
foreach($order->products as $item){
$product = $productClass->get($item->product_id);
echo $item->order_product_name.'<strong></strong>';
if($product->product_type=='variant'){
$product = $productClass->get($product->product_parent_id);
}
echo $product->product_description.'<br/><hr><br/>';
} ?>
Please Log in or Create an account to join the conversation.
12 years 1 month ago #166440
by Dibben
Replied by Dibben on topic description not showing in email or pdf variants
Aha i see, I didnt know if the value of the main product was the default if no other was entered in the variant. I have added this to the email and it seems to work really well. The PDF on the other hand still wont generate on products with variants, even if i take out the code I added about the product description. This is the code i am using in the invoice.php file please can you see if it works for you when someone buys a product with a variant?
Kind regards
Alex
Code:
<?php
/**
* @copyright Copyright (C) 2009-2012 ACYBA SARL - All rights reserved.
* @license http://www.gnu.org/licenses/gpl-3.0.html GNU/GPL
*/
defined('_JEXEC') or die('Restricted access');
?>
<style type="text/css">
<!--
.invoicetitle{ text-align:center;font-size:30px; padding-top:40px;padding-bottom:40px}
legend { padding:5px 10px; background-color:#5471B5;color:white;font-weight:bold;border-color:#ccc}
fieldset { padding:10px; border-color:#ccc;}
div.date{text-align:right;color:#333;}
.storeaddress{
color:#333;
}
.addresses{padding-top:50px;}
.addresses td{padding-left:50px;}
.addresses fieldset {float:left;}
table.products{margin:auto;margin-top:60px;width:580px;border-collapse:collapse}
.price{text-align:center;}
.products td, .products th{border:1px solid #ccc;padding:7px 4px;}
.products th{background-color:#5471B5;color:white;}
td.newarea{text-align:right;padding-right:20px;}
tr.total{font-weight:bold;}
.products tr.limitation td{background-color:#ccc;padding:1px 0px;}
.hikashop_order_custom_fields_fieldset{margin-top : 20px;}
.footer{font-size:10px;color:#aaa;text-align:center;}
-->
</style>
<page style="font-size: 12px" backtop="14mm" backbottom="14mm" backleft="10mm" backright="10mm">
<page_footer>
<div class="footer">
<?php echo str_replace(array("\r\n","\n","\r"),array('<br/>','<br/>','<br/>'),$this->params->get('footer')); ?>
</div>
</page_footer>
<div class="storeaddress">
<!--<?php
$store = str_replace(array("\r\n","\n","\r"),array('<br/>','<br/>','<br/>'),$config->get('store_address',''));
if(JText::_($store)!=$store){
$store = JText::_($store);
}
echo $store;
?>-->
</div>
<?php if(empty($order->order_invoice_number)){
$order->order_invoice_number = $order->order_number;
}
if(empty($order->order_invoice_created)){
$order->order_invoice_created = $order->order_created;
} ?>
<div style="margin-left:auto; margin-right:auto; margin-top:-30px;"><p style="text-align:center;"><img class="w600" src="images/voucher-pdf-header.png" border="0" alt="" /></p></div>
<div class="invoicetitle" style="font-size:24px;">Voucher Code: <?php echo $order->order_invoice_number; ?></div>
<div class="date" style="margin-bottom:-20px; margin-top:-20px;"><p style="text-align:center;"><?php echo JText::_('DATE').' Purchased: '.hikashop_getDate($order->order_invoice_created,'%d %B %Y ');?></p>
<p style="text-align:center;">Please quote your voucher code when contacting the venue to redeem. If you have purchased more than one deal the same code will be valid multiple times.</p>
</div>
<!--<table class="addresses">
<tr>
<?php
$addresses = array('billing_address','shipping_address');
foreach($addresses as $oneAddress){
if(empty($order->$oneAddress)) continue;
if ($oneAddress=='shipping_address' && empty($pluginsShipping)) continue; ?>
<td valign="top">
<fieldset>
<legend><?php echo JText::_('HIKASHOP_'.strtoupper($oneAddress)); ?></legend>
<?php
if(!empty($order->$oneAddress->address_company)) echo $order->$oneAddress->address_company.'<br/>';
echo $order->$oneAddress->address_title.' '.$order->$oneAddress->address_firstname.' '.$order->$oneAddress->address_lastname.'<br/>';
echo $order->$oneAddress->address_street.'<br/>';
echo $order->$oneAddress->address_post_code.' '.$order->$oneAddress->address_city.' '.$order->$oneAddress->address_state.'<br/>';
echo $order->$oneAddress->address_country.'<br/>';
if(!empty($order->$oneAddress->address_telephone)) echo JText::sprintf('TELEPHONE_IN_ADDRESS',$order->$oneAddress->address_telephone).'<br/>';
if(!empty($order->$oneAddress->address_vat)) echo JText::_('VAT_NUMBER').' : '.$order->$oneAddress->address_vat.'<br/>';
?>
</fieldset>
</td>
<?php } ?>
</tr>
</table>-->
<table class="products">
<tr class="products_title">
<th style="width:300px; background-color:#FF8811;">
<?php echo JText::_('PRODUCT'); ?>
</th>
<th style="width:100px; background-color:#333;" class="price">
<?php echo JText::_('UNIT_PRICE'); ?>
</th>
<th style="width:80px; background-color:#333;" class="price">
<?php echo JText::_('PRODUCT_QUANTITY'); ?>
</th>
<th style="width:100px; background-color:#333;" class="price">
<?php echo JText::_('PRICE'); ?>
</th>
</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($order->products as $product){
if($group && $product->order_product_option_parent_id) continue;
?>
<tr>
<td>
<?php echo implode('<br/>',$this->str_split_unicode($product->order_product_name,50));
if($group){
$display_item_price=false;
foreach($order->products as $j => $optionElement){
if($optionElement->order_product_option_parent_id != $product->order_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($product->order_product_price+$product->order_product_tax,$order->order_currency_id);
}else{
echo ' '.$currencyHelper->format($product->order_product_price,$order->order_currency_id);
}
}
}
if(!empty($fields['item'])){
foreach($fields['item'] as $field){
$namekey = $field->field_namekey;
if(empty($product->$namekey)) continue;
echo '<p>'.$fieldsClass->getFieldName($field).': '.$fieldsClass->show($field,$product->$namekey).'</p>';
}
}
if($group){
foreach($order->products as $j => $optionElement){
if($optionElement->order_product_option_parent_id != $product->order_product_id) continue;
$product->order_product_price +=$optionElement->order_product_price;
$product->order_product_tax +=$optionElement->order_product_tax;
$product->order_product_total_price+=$optionElement->order_product_total_price;
$product->order_product_total_price_no_vat+=$optionElement->order_product_total_price_no_vat;
?><br/><?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,$order->order_currency_id).' )';
}else{
echo ' ( + '.$currencyHelper->format($optionElement->order_product_price,$order->order_currency_id).' )';
}
}
}
} ?>
</td>
<td class="price">
<?php
if($config->get('price_with_tax')){
echo $currencyHelper->format($product->order_product_price+$product->order_product_tax,$order->order_currency_id);
}else{
echo $currencyHelper->format($product->order_product_price,$order->order_currency_id);
} ?>
</td>
<td class="price">
<?php echo $product->order_product_quantity;?>
</td>
<td class="price">
<?php
if($config->get('price_with_tax')){
echo $currencyHelper->format($product->order_product_total_price,$order->order_currency_id);
}else{
echo $currencyHelper->format($product->order_product_total_price_no_vat,$order->order_currency_id);
} ?>
</td>
</tr>
<?php
}
?>
<tr class="limitation"><td colspan="4"></td></tr>
<tr>
<td colspan="3" class="newarea">
<?php echo JText::_( 'SUBTOTAL' ); ?>
</td>
<td class="price">
<?php
if($config->get('price_with_tax')){
echo $currencyHelper->format($order->order_subtotal,$order->order_currency_id);
}else{
echo $currencyHelper->format($order->order_subtotal_no_vat,$order->order_currency_id);
} ?>
</td>
</tr>
<?php $taxes = $order->order_subtotal - $order->order_subtotal_no_vat - $order->order_discount_tax + $order->order_shipping_tax;;
if(!empty($order->order_discount_code)){ ?>
<tr>
<td colspan="3" class="newarea">
<?php echo JText::_( 'HIKASHOP_COUPON' ); ?>
</td>
<td class="price">
<?php
if($config->get('price_with_tax')){
echo $currencyHelper->format($order->order_discount_price*-1,$order->order_currency_id);
}else{
echo $currencyHelper->format(($order->order_discount_price-@$order->order_discount_tax)*-1,$order->order_currency_id);
}
?>
</td>
</tr>
<?php }
if(!empty($order->order_shipping_method)){ ?>
<tr>
<td colspan="3" class="newarea">
<?php echo JText::_( 'SHIPPING' ); ?>
</td>
<td class="price" >
<?php
if($config->get('price_with_tax')){
echo $currencyHelper->format($order->order_shipping_price,$order->order_currency_id);
}else{
echo $currencyHelper->format($order->order_shipping_price-@$order->order_shipping_tax,$order->order_currency_id);
} ?>
</td>
</tr>
<?php }
if(!empty($order->additional)) {
$exclude_additionnal = explode(',', $config->get('order_additional_hide', ''));
foreach($order->additional as $additional) {
if(in_array($additional->name, $exclude_additionnal)) continue;
echo '<tr><td colspan="3" class="newarea">'. JText::_($additional->order_product_name).'</td><td class="price">';
if(!empty($additional->order_product_price) || empty($additionaltionnal->order_product_options)) {
if($config->get('price_with_tax')){
echo $currencyHelper->format($additional->order_product_price+@$additional->order_product_tax, $order->order_currency_id);
}else{
echo $currencyHelper->format($additional->order_product_price, $order->order_currency_id);
}
} else {
echo $additional->order_product_options;
}
echo '</td></tr>';
}
}
if($taxes != 0){
if($config->get('detailed_tax_display') && !empty($order->order_tax_info)){
foreach($order->order_tax_info as $tax){ ?>
<tr>
<td colspan="3" class="newarea">
<?php echo $tax->tax_namekey; ?>
</td>
<td class="price">
<?php echo $currencyHelper->format($tax->tax_amount,$order->order_currency_id); ?>
</td>
</tr>
<?php
}
}else{ ?>
<tr>
<td colspan="3" class="newarea">
<?php echo JText::_( 'VAT' ); ?>
</td>
<td class="price">
<?php echo $currencyHelper->format($taxes,$order->order_currency_id); ?>
</td>
</tr>
<?php }
} ?>
<?php
if(!empty($order->order_payment_method) && $order->order_payment_price != 0){ ?>
<tr>
<td colspan="3" class="newarea">
<?php echo JText::_( 'HIKASHOP_PAYMENT' ); ?>
</td>
<td class="price" >
<?php echo $currencyHelper->format($order->order_payment_price,$order->order_currency_id); ?>
</td>
</tr>
<?php } ?>
<tr class="total">
<td colspan="3" class="newarea">
<?php echo JText::_( 'HIKASHOP_TOTAL' ); ?>
</td>
<td class="price" >
<?php echo $currencyHelper->format($order->order_full_price,$order->order_currency_id); ?>
</td>
</tr>
</table>
<table width="100%" border="0">
<tr>
<td> <h1 style="background-color:#333;font-size:14px;padding:5px; text-align:center; color:#fff; font-family:Arial, Helvetica, sans-serif;">Full Details / T&C's / How to Redeem...</h1>
<p style="font-size:10px;"><br/>
<?php
$productClass = hikashop_get('class.product');
foreach($order->products as $item){
$product = $productClass->get($item->product_id);
echo $item->order_product_name.'<strong></strong>';
if($product->product_type=='variant'){
$product = $productClass->get($product->product_parent_id);
}
echo $product->product_description.'<br/><hr><br/>';
} ?>
</p>
</td>
</tr>
</table>
<p>
<?php
if (!empty($pluginsShipping))
echo JText::_('HIKASHOP_SHIPPING_METHOD').' : '.$pluginsShipping->getName($order->order_shipping_method, $order->order_shipping_id).'<br/>' ;
if(!empty($pluginsPayment))
echo JText::_('HIKASHOP_PAYMENT_METHOD').' : '.$pluginsPayment->getName($order->order_payment_method, $order->order_payment_id).'<br/>';
?>
</p>
<br/>
<?php if(hikashop_level(2) && !empty($fields['order'])){?>
<fieldset class="hikashop_order_custom_fields_fieldset">
<legend><?php echo JText::_('ADDITIONAL_INFORMATION'); ?></legend>
<table class="hikashop_order_custom_fields_table adminlist" cellpadding="1" width="100%">
<?php foreach($fields['order'] as $fieldName => $oneExtraField) {
if(!@$oneExtraField->field_frontcomp || empty($order->$fieldName)) continue;
?>
<tr class="hikashop_order_custom_field_<?php echo $fieldName;?>_line">
<td class="key">
<?php echo $fieldsClass->getFieldName($oneExtraField);?>
</td>
<td>
<?php echo $fieldsClass->show($oneExtraField,$order->$fieldName); ?>
</td>
</tr>
<?php } ?>
</table>
</fieldset>
<br/>
<?php } ?>
<div style="margin-left:auto; margin-right:auto; margin-top:0px;"><p style="text-align:center;"><img class="w600" src="images/voucher-footer-pdf.png" border="0" alt="" /></p></div>
</page>
Kind regards
Alex
Please Log in or Create an account to join the conversation.
12 years 1 month ago #166450
by nicolas
Replied by nicolas on topic description not showing in email or pdf variants
Hi,
Maybe it's because of the <hr> tag as it should be <hr/> ?
The best is to go back to the default code of the plugin (that you have in the package of the plugin and try again with it. It should work. If not, then there is an issue with the HTML of the products with variants on your website.
In that case, try to remove the line:
echo implode('<br/>',$this->str_split_unicode($product->order_product_name,50));
That's what displays the product name. If it works without it, then the problem is with the product names of variants.
In that case, try like that instead:
echo implode('<br/>',$this->str_split_unicode(strip_tags($product->order_product_name),50));
Maybe it's because of the <hr> tag as it should be <hr/> ?
The best is to go back to the default code of the plugin (that you have in the package of the plugin and try again with it. It should work. If not, then there is an issue with the HTML of the products with variants on your website.
In that case, try to remove the line:
echo implode('<br/>',$this->str_split_unicode($product->order_product_name,50));
That's what displays the product name. If it works without it, then the problem is with the product names of variants.
In that case, try like that instead:
echo implode('<br/>',$this->str_split_unicode(strip_tags($product->order_product_name),50));
Please Log in or Create an account to join the conversation.
12 years 1 month ago #166555
by Dibben
Replied by Dibben on topic description not showing in email or pdf variants
Hi Nicolas,
The default code didn't work however when i replace the line you mentioned it now works so thanks for your help. I guess that this would apply to anyone who uses this plugin.
Kind regards
Alex
The default code didn't work however when i replace the line you mentioned it now works so thanks for your help. I guess that this would apply to anyone who uses this plugin.
Kind regards
Alex
Please Log in or Create an account to join the conversation.
12 years 1 month ago #166571
by nicolas
Replied by nicolas on topic description not showing in email or pdf variants
Hi,
Yes, we'll publish a new version of the plugin with the change.
Yes, we'll publish a new version of the plugin with the change.
The following user(s) said Thank You: Dibben
Please Log in or Create an account to join the conversation.
12 years 1 month ago #166919
by Dibben
Replied by Dibben on topic description not showing in email or pdf variants
Hi Nicolas,
I am pretty certain i have not changed the PDF php in anyway but now i cannot send confirmation email and get the message:
TCPDF ERROR: Could not include font definition file: 'arial'
The customer also gets this when trying to download their PDF do you have any ideas?
I am pretty certain i have not changed the PDF php in anyway but now i cannot send confirmation email and get the message:
TCPDF ERROR: Could not include font definition file: 'arial'
The customer also gets this when trying to download their PDF do you have any ideas?
Please Log in or Create an account to join the conversation.
12 years 1 month ago #166920
by Dibben
Replied by Dibben on topic description not showing in email or pdf variants
I know what is happening here, it looks like where we used some styling in the product description it was trying to pull this into the PDF so that seemed to be throwing up the error so i guess we need to use no custom css styling on the product descriptions.
Please Log in or Create an account to join the conversation.
12 years 1 month ago #166951
by nicolas
Replied by nicolas on topic description not showing in email or pdf variants
Yes, if you include extra fonts with inline CSS, the font need to be registered with the TCPD library. So it's better not to do that and only define onts via CSS code in your template/hikashop frontend CSS file, not directly inline in the descriptions.
Please Log in or Create an account to join the conversation.
12 years 1 month ago #166993
by Dibben
Replied by Dibben on topic description not showing in email or pdf variants
I see what i have done is updated jce editor to strip out span styles by default to prevent customers in hikamarket pasting content from word.
Kind regards
Kind regards
Please Log in or Create an account to join the conversation.
Time to create page: 0.192 seconds