SEPA QR-Code for Woocommerce (GDPR-compliant)


Adds a SEPA-QR Code for bank transfer payments (bacs) in the WooCommerce Thankyou page and Woocommerce emails. The QR-Code can be hooked into other plugins.

Before you start

The plugin comes as is and free. However a real person has put real work into it. So if you use it please do good. Use your efforts, your time for beneficial projects or whatever!


php GD2 extension must be installed as the QR-Code generator by fellwell15 requires this.

Hooking into other plugins

I use a plugin for PDF-invoices and packaging slips. Refer to this sample to hook the QR-Code into whatever you like:


/* QR-Code in invoices */
add_action( 'wpo_wcpdf_after_order_details', 'wpo_wcpdf_qr_code', 10, 2 );
function wpo_wcpdf_qr_code ($document_type, $order) {
    require_once WP_PLUGIN_DIR . '/mxp-sepa-qr-code-addon-for-woocommerce/muxp-sepaqr.php';
    $muxp_order = wc_get_order( $order);
    $order_id  = $order->get_id();
    if ( !empty($muxp_order->get_total()) && (float)$order->get_total() > 0 ) {
        echo '<h1>QR-Code for your online banking app<h1>';
        echo '<img class="muxp-bacs-qrcode" src="' . esc_attr(muxp_get_qrcode($order->get_total(), $order_id)) . '" alt="qr-code"></p>';

What happens in the backend:

  • the QR code generator creates the QR-code locally. There is no Google-API nor external server in use!
  • the QR code generator is from fellwell15
  • plugin registers a get-parameter (configurable, default mxp_qr) for testing purposes and, if desired, to create links to the cached QR codes.
  • the prefix mxp is used throghout the plugin to avoid collisions with other plugins and functions. mxp stands for (musical experts). Remember where you’ve seen it first! 😉

Testing and troubleshooting

Simple way

Install the plugin and order in your shop using BACS (direct bank transfer).

To test if the QR-Code generator is working = creates a real QR with dummyvalues 11-11
Working example

To find an existing cached QR-Code, query for a valid md5 string == If it does not exist in cache or transients, a sad smiley will appear.
results in a sad smiley. Working example


Storing the QR code in cache or transients is only needed if you want to use a link instead of a picture inside the email. Details in the program code.


The program has been written by a professional programmer – however fully free of charge and without detailed knowledge about WooCommerce. I try to assist you in the support forum or on GitHub the best I can but my knowledge is limited.

Full integration in Woocommerce

I am more then happy if someone integrates the code into the Woocommerce core! The topic is discussed here:


  • the QR-Code gets added to the WooCommerce order email
  • example how the qr-code is hooked into a pdf envoice


Nothing special:
* Click install and activate

Συχνές Ερωτήσεις

I can’t see the QR-Code in a specific email client

This surely is due to the fact that some email clients won’t show Base64-encoded images. Your help is appreciated! Have a look at
Workaround: Hook it into your PDF-invoices! (see above!)

What about privacy / GDPR

The plugin creates the QR-Code on your server and it does not use any external resources.


20 Νοεμβρίου 2023
Worked straight away and I love the offline nature of this tool. But I learned that in my country (Slovenia) we most commonly use a different kind of QR code for local payments, so I can’t use it.
Ανάγνωση 1 κριτικής

Συνεισφέροντες & Προγραμματιστές

“SEPA QR-Code for Woocommerce (GDPR-compliant)” είναι λογισμικό ανοιχτού κώδικα. Οι παρακάτω έχουν συνεισφέρει στη δημιουργία του.


Το “SEPA QR-Code for Woocommerce (GDPR-compliant)” έχει μεταφραστεί σε 1 γλώσσα. Ευχαριστούμε τους μεταφραστές για τις συνεισφορές τους.

Μεταφράστε το “SEPA QR-Code for Woocommerce (GDPR-compliant)” στην γλώσσα σας.

Ενδιαφέρεστε για την ανάπτυξη;

Περιηγηθείτε στον κώδικα, ανατρέξτε στο αποθετήριο SVN ή εγγραφείτε στο αρχείο καταγραφής αλλαγών ανάπτυξης μέσω RSS .

Σύνοψη αλλαγών


  • added loacalization
  • added prefix muxp to the bacs-qrcode css class for the QR code. If you have used .bacs-qrcode you have to change it to muxp-bacs-qrcode


  • initial commit to the wordpress directory