WooCommerce Cart PDF

Description

Adds ability for users and guests to download their WooCommerce cart as PDF. Useful for many cases such as if a user needs a quote before completing purchase.

Features

  • Full PDF template customization
  • Send copy of each generated cart PDF to admin
  • Capture customer / guest information from checkout and display on generated PDF

Screenshots

  • Preview of an example PDF generated from the WooCommerce Cart
  • Customizer settings

Installation

  1. Upload plugin and then activate
  2. Ensure WooCommerce is installed and activated as well

FAQ

How to view or open PDF instead of download?

Add the following code snippet to your themes functions.php:

function child_theme_wc_cart_pdf_destination( $dest ) {
    if ( class_exists( '\Mpdf\Output\Destination' ) ) {
        $dest = \Mpdf\Output\Destination::INLINE;
    }

    return $dest;
}
add_filter( 'wc_cart_pdf_destination', 'child_theme_wc_cart_pdf_destination' );

How to require user to be logged in to download cart as PDF?

Add the following code snippet to your themes functions.php:

/**
* Remove the default download cart button
*/
remove_action( 'woocommerce_proceed_to_checkout', 'wc_cart_pdf_button', 21 );


/**
* Replace the default download cart button with our own logic to display a login notice for guests
*/
function child_theme_wc_cart_pdf_button() {
    if( ! is_cart() || WC()->cart->is_empty() ) {
        return;
    }

    if ( is_user_logged_in() ) :
    ?>

    <a href="<?php echo esc_url( wp_nonce_url( add_query_arg( array( 'cart-pdf' => '1' ), wc_get_cart_url() ), 'cart-pdf' ) );?>" class="cart-pdf-button button" target="_blank">
        <?php esc_html_e( 'Download Cart as PDF', 'wc-cart-pdf' ); ?>
    </a>

    <?php else : ?>

    <p><a href="<?php echo get_permalink( get_option( 'woocommerce_myaccount_page_id' ) ); ?>" class="cart-pdf-login"><?php esc_html_e( 'Please login to download your cart as a PDF', 'wc-cart-pdf' ); ?></a></p>

    <?php 
    endif;
}
add_action( 'woocommerce_proceed_to_checkout', 'child_theme_wc_cart_pdf_button', 21 );

Product images are not showing on PDF

Try adding the following to your wp-config.php file:

define( 'WC_CART_PDF_THUMBNAIL_COMPATIBILITY', true );

How can I customize the PDF template?

Copy the PDF template from the plugin folder wc-cart-pdf/templates/cart-table.php into your child theme folder child-theme/woocommerce/wc-cart-pdf/cart-table.php.

From there you can modify the PDF template in your child theme.

Reviews

September 11, 2021
This plugin does what it says without any hassle and I got the quick and best support from the plugin author, so thanks for that.
July 29, 2021
Works out-of-the-box, but is easy to configure and customize trough various hooks and filters one can change it's behavior, add data into the pdf file (such as customer ID and Name, special instructions to customer, email settings and more). There are many suggestions in the FAQ's and in the support forum to achieve this kind of things. Outstanding work!
July 22, 2020
Quick to install and do exactly what is proposed! Perfect. Also, excellent support!
Read all 16 reviews

Contributors & Developers

“WooCommerce Cart PDF” is open source software. The following people have contributed to this plugin.

Contributors

“WooCommerce Cart PDF” has been translated into 4 locales. Thank you to the translators for their contributions.

Translate “WooCommerce Cart PDF” into your language.

Interested in development?

Browse the code, check out the SVN repository, or subscribe to the development log by RSS.

Changelog

2.2.0
* Add customizer option to display unique generated PDF number on PDF

2.1.7
* Disable lazy loading product thumbnails by default
* Add define( 'WC_CART_PDF_THUMBNAIL_COMPATIBILITY', true ); to wp-config.php in an attempt to fix product thumbnails not loading

2.1.6
* Fix logo rendering on cart table PDF template

2.1.5
* Fix capture customer feature to only capture certain checkout fields

2.1.4
* Customizer option to show Download Cart as PDF button on checkout
* Ability to capture customer and guest information from checkout and display on PDF

2.1.3
* Add language translation file
* Stylesheet changes

2.1.2
* Add compatibility with Gravity PDF plugin

2.1.1
* Send admin email as HTML

2.1.0
* Ability to send an emailed copy of generated PDF to admin
* Add date to PDF
* Add customer details to PDF

2.0.6
* Update compatibility tag
* Two new hooks to modify PDF output

2.0.5
* WordPress 5.4 compatibility
* Add support for coupons displaying on PDF
* Add minimum PHP requirements admin notice and prevent loading if not satisfied
* Minor styling update to PDF

2.0.4
* Added compatibility with Visual Products Configurator
* Perform WC cart calculate_totals() method prior to generating PDF
* Added customizer setting to modify download cart as PDF button label

2.0.3
* Fix composer dependencies

2.0.2
* Update compatibility

2.0.1
* Fix product thumbnails too large

2.0.0
* Change PDF library from Dompdf to mPDF
* Add support for RTL languages

1.0.5
* Fix CSS for language support
* Default font to Noto Sans for language support
* Update Dompdf

1.0.4
* Add PDF template actions hooks wc_cart_pdf_before_template and wc_cart_pdf_after_template

1.0.3
* Add customizer option to change PDF header logo, width and alignment
* Adjustments to default widths and styling of PDF cart table
* Bug fix: Expand {site_title} variable placeholder in PDF footer text

1.0.2
* Tested up to WordPress 5.1
* Add wc_cart_pdf_stream_options filter for stream options

1.0.1
* Add compatibility with TM Extra Product Options
* Add ability to override PDF template and CSS through the theme folder woocommerce/wc-cart-pdf/
* Add filter to change PDF filename
* Add shipping and taxes to PDF
* Add WooCommerce error notice if nonce is invalid
* Add action hook before PDF is generated

1.0.0
* Initial plugin release