• Resolved vantagedigital

    (@vantagedigital)


    Incorrect price is being sent to invoice as well as other fields which are either incorrect or missing. Please see the template we have been using for over a year with no problems until recently: https://pastebin.com/gy49uZsP

    <?php global $wpo_wcpdf; ?>
    <table class="head container">
    	<tr>
    		<td class="header">
    		<?php
    		if( $wpo_wcpdf->get_header_logo_id() ) {
    			$wpo_wcpdf->header_logo();
    		} else {
    			echo apply_filters( 'wpo_wcpdf_invoice_title', __( 'Invoice', 'wpo_wcpdf' ) );
    		}
    		?>
    		</td>
    		<td class="shop-info">
    			<div class="shop-name"><h3><?php $wpo_wcpdf->shop_name(); ?></h3></div>
    			<div class="shop-address"><?php $wpo_wcpdf->shop_address(); ?></div>
    		</td>
    	</tr>
    </table>
    
    <h1 class="document-type-label">
    <?php if( $wpo_wcpdf->get_header_logo_id() ) echo apply_filters( 'wpo_wcpdf_invoice_title', __( 'Invoice', 'wpo_wcpdf' ) ); ?>
    </h1>
    
    <?php do_action( 'wpo_wcpdf_after_document_label', $wpo_wcpdf->export->template_type, $wpo_wcpdf->export->order ); ?>
    
    <table class="order-data-addresses">
    	<tr>
    		<td class="address billing-address">
    			<!-- <h3><?php _e( 'Billing Address:', 'wpo_wcpdf' ); ?></h3> -->
    			<?php $wpo_wcpdf->billing_address(); ?>
    			<?php if ( isset($wpo_wcpdf->settings->template_settings['invoice_email']) ) { ?>
    			<div class="billing-email"><?php $wpo_wcpdf->billing_email(); ?></div>
    			<?php } ?>
    			<?php if ( isset($wpo_wcpdf->settings->template_settings['invoice_phone']) ) { ?>
    			<div class="billing-phone"><?php $wpo_wcpdf->billing_phone(); ?></div>
    			<?php } ?>
    		</td>
    		<td class="address shipping-address">
    			<?php if ( isset($wpo_wcpdf->settings->template_settings['invoice_shipping_address']) && $wpo_wcpdf->ships_to_different_address()) { ?>
    			<h3><?php _e( 'Ship To:', 'wpo_wcpdf' ); ?></h3>
    			<?php $wpo_wcpdf->shipping_address(); ?>
    			<?php } ?>
    		</td>
    		<td class="order-data">
    			<table>
    				<?php do_action( 'wpo_wcpdf_before_order_data', $wpo_wcpdf->export->template_type, $wpo_wcpdf->export->order ); ?>
    				<?php if ( isset($wpo_wcpdf->settings->template_settings['display_number']) && $wpo_wcpdf->settings->template_settings['display_number'] == 'invoice_number') { ?>
    				<tr class="invoice-number">
    					<th><?php _e( 'Invoice Number:', 'wpo_wcpdf' ); ?></th>
    					<td><?php $wpo_wcpdf->invoice_number(); ?></td>
    				</tr>
    				<?php } ?>
    				<?php if ( isset($wpo_wcpdf->settings->template_settings['display_date']) && $wpo_wcpdf->settings->template_settings['display_date'] == 'invoice_date') { ?>
    				<tr class="invoice-date">
    					<th><?php _e( 'Invoice Date:', 'wpo_wcpdf' ); ?></th>
    					<td><?php $wpo_wcpdf->invoice_date(); ?></td>
    				</tr>
    				<?php } ?>
    				<tr class="order-number">
    					<th><?php _e( 'Order Number:', 'wpo_wcpdf' ); ?></th>
    					<td><?php $wpo_wcpdf->order_number(); ?></td>
    				</tr>
    				<tr class="order-date">
    					<th><?php _e( 'Order Date:', 'wpo_wcpdf' ); ?></th>
    					<td><?php $wpo_wcpdf->order_date(); ?></td>
    				</tr>
    				<tr class="payment-method">
    					<th><?php _e( 'Payment Method:', 'wpo_wcpdf' ); ?></th>
    					<td><?php $wpo_wcpdf->payment_method(); ?></td>
    				</tr>
    				<?php do_action( 'wpo_wcpdf_after_order_data', $wpo_wcpdf->export->template_type, $wpo_wcpdf->export->order ); ?>
    			</table>			
    		</td>
    	</tr>
    </table>
    
    <?php do_action( 'wpo_wcpdf_before_order_details', $wpo_wcpdf->export->template_type, $wpo_wcpdf->export->order ); ?>
    
    <table class="order-details">
    	<thead>
    		<tr>
    			<th class="product"><?php _e('Product', 'wpo_wcpdf'); ?></th>
    			<th class="quantity"><?php _e('Quantity', 'wpo_wcpdf'); ?></th>
    			<th class="price"><?php _e('Price', 'wpo_wcpdf'); ?></th>
    		</tr>
    	</thead>
    	<tbody>
    		<?php $items = $wpo_wcpdf->get_order_items(); if( sizeof( $items ) > 0 ) : foreach( $items as $item_id => $item ) : ?>
           
            
            
            <?php //echo $item['item']['item_meta']['_line_total'][0]; //die; ?>
            <?php //echo "<pre>"; print_r(getProductPriceWithoutAddons($item)); echo "</pre>"; die; ?>  
            
            
            
    		<tr class="<?php echo apply_filters( 'wpo_wcpdf_item_row_class', $item_id, $wpo_wcpdf->export->template_type, $wpo_wcpdf->export->order, $item_id ); ?>">
    			<td class="product">
    				<?php $description_label = __( 'Description', 'wpo_wcpdf' ); // registering alternate label translation ?>
    				<span class="item-name"><?php echo $item['name']; ?></span>
    				<?php do_action( 'wpo_wcpdf_before_item_meta', $wpo_wcpdf->export->template_type, $item, $wpo_wcpdf->export->order  ); ?>
    				<span class="item-meta"><?php echo $item['meta']; ?></span>
                    
                    
                    <?php /* Get Addon Products */ ?>
                    <?php //echo getProductAddonsView($item); ?>
                    
                    <dl class="meta">
                        <?php foreach( getAddonLabels($item) as $productAddonLabel ) : ?>
                        <br>
                            <dt class="sku">
                                <?php echo $productAddonLabel; ?>
                            </dt>
                        <?php endforeach; ?>
                    </dl>
    				<dl class="meta">
    					<?php $description_label = __( 'SKU', 'wpo_wcpdf' ); // registering alternate label translation ?>
    					<?php if( !empty( $item['sku'] ) ) : ?><dt class="sku"><?php _e( 'SKU:', 'wpo_wcpdf' ); ?></dt><dd class="sku"><?php echo $item['sku']; ?></dd><?php endif; ?>
    					<?php if( !empty( $item['weight'] ) ) : ?><dt class="weight"><?php _e( 'Weight:', 'wpo_wcpdf' ); ?></dt><dd class="weight"><?php echo $item['weight']; ?><?php echo get_option('woocommerce_weight_unit'); ?></dd><?php endif; ?>
    				</dl>
    				<?php do_action( 'wpo_wcpdf_after_item_meta', $wpo_wcpdf->export->template_type, $item, $wpo_wcpdf->export->order  ); ?>
    			</td>
    			<td class="quantity"><?php echo $item['quantity']; ?></td>
    			<td class="price">
                    $<?php echo getProductPriceWithoutAddons($item); //echo $item['order_price']; ?>
                    <dl class="meta">
                        <?php foreach( getAddonPrices($item) as $productAddonPrice ) : ?>
                             <br>
                            <dt class="sku">
                                $<?php echo $productAddonPrice; ?>
                            </dt>
                        <?php endforeach; ?>
                    </dl>
                </td>
    		</tr>
    		<?php endforeach; endif; ?>
    	</tbody>
    	<tfoot>
    		<tr class="no-borders">
    			<td class="no-borders">
    				<div class="customer-notes">
    					<?php if ( $wpo_wcpdf->get_shipping_notes() ) : ?>
    						<h3><?php _e( 'Customer Notes', 'wpo_wcpdf' ); ?></h3>
    						<?php $wpo_wcpdf->shipping_notes(); ?>
    					<?php endif; ?>
    				</div>				
    			</td>
    			<td class="no-borders" colspan="2">
    				<table class="totals">
    					<tfoot>
    						<?php foreach( $wpo_wcpdf->get_woocommerce_totals() as $key => $total ) : ?>
    						<tr class="<?php echo $key; ?>">
    							<td class="no-borders"></td>
    							<th class="description"><?php echo $total['label']; ?></th>
    							<td class="price"><span class="totals-price"><?php echo $total['value']; ?></span></td>
    						</tr>
    						<?php endforeach; ?>
    					</tfoot>
    				</table>
    			</td>
    		</tr>
    	</tfoot>
    </table>
    
    <?php do_action( 'wpo_wcpdf_after_order_details', $wpo_wcpdf->export->template_type, $wpo_wcpdf->export->order ); ?>
    
    <?php if ( $wpo_wcpdf->get_footer() ): ?>
    <div id="footer">
    	<?php $wpo_wcpdf->footer(); ?>
    </div><!-- #letter-footer -->
    <?php endif; ?>
Viewing 2 replies - 1 through 2 (of 2 total)
  • Thread Starter vantagedigital

    (@vantagedigital)

    Would like to add that product addons from Booster plugin were being sent fine until now.

    Plugin Contributor Ewout

    (@pomegranate)

    Hi!
    Your template contains several calls to custom functions (getAddonLabels(), getAddonPrices), which may need updating for WooCommerce 3.0+.
    If these functions are generic and supposed to work with the WooCommerce $item rather than the PDF Invoice $item, you will want to pass $item['item'] instead, which holds the WC item object. I also recommend that you update the template to match the one bundled with the plugin, as the $wpo_wcpdf global has been deprecated and will throw notices in your error log.

    Hope that helps!
    Ewout

Viewing 2 replies - 1 through 2 (of 2 total)
  • The topic ‘Incorrect data being sent to PDF Invoice’ is closed to new replies.