Support » Plugin: WooCommerce PDF Invoices & Packing Slips » Credit Card Type and Last Four Digits

  • Resolved jayPEG

    (@jaypeg)


    Is it possible to have the template output the type of Credit Card (Visa, MC, Amex, etc) and the lat four digits of said card?

Viewing 8 replies - 1 through 8 (of 8 total)
  • Plugin Author Ewout

    (@pomegranate)

    Hi! Technically, that’s certainly possible, but it depends on a few things:

    • If your credit card gateway plugin stores this data in the order itself, you can retrieve this as a custom field: Displaying a custom field. If you’re not sure about this, you could inspect the order data first, more about that here: Finding WooCommerce Custom Fields
    • If that data is not stored in the order, you may still be able to retrieve it using the API of your payment gateway. This is much more advanced though and will require sufficient programming experience.

    Unfortunately neither of these options are super simple, but perhaps the developers of your payment gateway plugin can also help with this.

    Good luck!

    Thank you Ewout! That did the trick. Using the WooCommerce – Store Toolkit Plugin, I was able to easily find the custom fields needed to output them into the template.
    Your help was exactly what I was in need of.

    Hello – I’m wanting to add the last 4 digits of the customer’s credit card to the PDF invoice as well, and I was able to find the meta tag for this information using The WooCommerce – Store Toolkit plugin you suggested, but none of the action hooks code I’ve been trying to add to my functions.php file is working. Can either of you please help? I don’t care where it outputs on the PDF invoice (I just only want it to be visible if a credit card is actually used on the order)

    Here is the meta data from my specific credit card gateway for the last 4 digits output: _wc_first_data_payeezy_gateway_credit_card_account_four

    Not sure if this order meta data is important as well, but thought I’d include it:
    _payment_method: first_data_payeezy_gateway_credit_card
    _payment_method_title: Credit Card

    Thank you so much!!

    Plugin Author Ewout

    (@pomegranate)

    Hi!
    Could you share the action hook you tried to your functions.php? Here’s an example that should add the custom field to your invoice, slightly more advanced than the documentation with an extra check that only shows this line when the data is available:

    
    add_action( 'wpo_wcpdf_after_order_data', 'wpo_wcpdf_cc_last_four', 10, 2 );
    function wpo_wcpdf_cc_last_four ($template_type, $order) {
        if ($template_type == 'invoice') {
            $digits = $order->get_meta('_wc_first_data_payeezy_gateway_credit_card_account_four');
            if (!empty($digits)) {
                ?>
                <tr class="cc-four-digits">
                    <th>Last Four Digits:</th>
                    <td><?php echo $digits; ?></td>
                </tr>
                <?php
            }
        }
    }
    

    That action hook you just provided worked!! 🙂 I was using something along those lines based on similar hooks that were provided in the links you shared, but I was not using all of the correct information. Really appreciate your prompt response and help, thank you!

    Plugin Author Ewout

    (@pomegranate)

    You’re welcome! If you can spare a minute, we are always happy if you can leave us a review here on wordpress.org: https://wordpress.org/support/plugin/woocommerce-pdf-invoices-packing-slips/reviews/#new-post

    Thanks in advance and have a fantastic day 🙂

    Hi there – me again 🙂 My client wants the credit card type (Visa, Mastercard, etc) added to the PDF Invoice/Packing List now too, and I seem to be having issues figuring out the exact action hook code for this one as well – so sorry! The meta data for credit card type on my client’s site is: _wc_first_data_payeezy_gateway_credit_card_card_type

    Can you please help with this inquiry as well? I’ll be sure to leave a review this time! Thanks in advance!

    Plugin Support kluver

    (@kluver)

    Hi @abgross1,

    You could extend the code snippet like this:

    add_action( 'wpo_wcpdf_after_order_data', 'wpo_wcpdf_cc_last_four', 10, 2 );
    function wpo_wcpdf_cc_last_four ($template_type, $order) {
    	if ($template_type == 'invoice') {
    		$digits = $order->get_meta('_wc_first_data_payeezy_gateway_credit_card_account_four');
    		$card_type = $order->get_meta('_wc_first_data_payeezy_gateway_credit_card_card_type');
    		if (!empty($digits)) {
    			?>
    			<tr class="cc-four-digits">
    				<th>Last Four Digits:</th>
    				<td><?php echo $digits; ?></td>
    			</tr>
    			<?php
    		}
    		if (!empty($card_type)) {
    			?>
    			<tr class="cc-type">
    				<th>Credit card:</th>
    				<td><?php echo $card_type; ?></td>
    			</tr>
    			<?php
    		}
    	}
    }

    Thank you in advance for the review. 🙂

Viewing 8 replies - 1 through 8 (of 8 total)
  • You must be logged in to reply to this topic.