Platba bankovým prevodom na účet nepatrí k často využívaným spôsobom platby za tovar na e-shopoch, avšak stále sa nájdu zákazníci, ktorí tento spôsob platby využívajú. Okrem toho, tento spôsob platby je už štandardom, ktorý by nemal chýbať v žiadnom e-shope. V princípe ide o jednoduchý spôsob úhrady, avšak pri manuálnom zadávaní platobného príkazu môže dôjsť ku chybnému vyplneniu dôležitých údajov, ako sú IBAN, suma alebo variabilný symbol. Mýliť sa je predsa ľudské. A tak je celkom na mieste, aby sme tento spôsob platby zákazníkom zjednodušili, napr. pridaním QR kódu PAY by square.

Vytvorenie QR kódu

Pre generovanie QR kódu existuje hneď niekoľko spôsobov. My si ukážeme ten najjednoduchší, a to vyuzižitím šikovnej a bezplatnej služby QRgenerator.sk. Vytvorením jednoduchej funkcie s jediným parametrom options, ktoré predstavuje pole s parametrami, zabezpečíme jednoduché a rýchle vygenerovanie QR kódu.

function px_render_qr_code($options)
{
    if (!isset($options["iban"]) || !isset($options["amount"])) {
        return false;
    }

    $url = "https://api.QRGenerator.sk/by-square/pay/qr.png?";

    $url .= http_build_query($options);

    echo '<img style="display:inline-block" src="' . $url . '" alt="QR kod" />';

}

Parameter iban a amount (suma) sú povinné. Ďalšie parametre, ktoré nie sú povinné avšak je dobré ich použiť sú:

  • currencymena transakcie. default: EUR
  • due_date – dátum splatnosti transakcie, formát yyyy-MM-dd, napr. 2020-12-31
  • vs – variabilný symbol
  • ss – špecifický symbol
  • cs – konštantný symbol
  • payment_note – poznámka k platbe
  • mode – možnosti:
    • full – branding rám okolo QR kódu
    • bottom – branding logo pod QR kódom
    • none – bez brandingu
  • size – veľkost výsledného obrázka, možnosti:
    • 128 – veľkost 128px, default
    • 256 – veľkost 256px
    • 512 – veľkost 512px
  • transparent – priehľadnoť výsledného QR kódu. Možnosti
    • true – priehľadný
    • false – biele pozadie

Výstupom funkcie je QR kód vo formáte png.

Vloženie QR kódu do e-mailu

QR kód pridáme do emailu jednoducho pomocou ďalšej funkcie „px_add_qr_code_to_email“, ktorú spustíme počas action „woocommerce_email_order_details“.

function px_add_qr_code_to_email($order, $sent_to_admin, $plain_text, $email)
{

    $payment_method = $order->get_payment_method();

    if ($email->id === 'customer_on_hold_order' && $payment_method === 'bacs') {

        $bacs_accounts_info = get_option('woocommerce_bacs_accounts');

        if (!empty($bacs_accounts_info)) {

            $iban = $bacs_accounts_info[0]['iban'];

            $optionsQR = [
                'iban' => $iban,
                'amount' => $order->get_total(),
                'currency' => $order->get_currency(),
                'vs' => $order->get_id(),
                'cs' => '0008',
                'ss' => '5',
                'due_date' => date("Y-m-d"),
                'size' => '128',
                'transparent' => 'false',
            ];

            px_render_qr_code($optionsQR);
        }

    }

}

add_action('woocommerce_email_order_details', 'px_add_qr_code_to_email', 9, 4);

Prvou podmienkou funkcie je, aby sa QR kód vygeneroval a zobrazil iba v emaily pre zákazníka s potvrdením objednávky (customer_on_hold_order) a so spôsobom platby bankový prevod (bacs). Ak je tento spôsob platby k dispozíciií, v administrácii Woocommerce by nemal chýbať minimálne jeden bankový účet. Pomocou option „woocommerce_bacs_accounts“ získame údaje o bankových účtoch. Overíme či tieto údaje nie sú prázdne a vyberieme z nich prvý účet. Z tohto účtu použijeme IBAN ako jeden z povinných parametrov našej funkcie. Sumu, menu a variabilný symbol získame z údajov objednávky. Splatnosť platby môžeme ponechať na deň vytvorenia objednávky.

A tu je výsledok:

Záver

Na záver by som chcel ešte dodať, že podobne jednoducho vieme pridať QR kód aj do faktúry, napr. pri použítí pluginu WooCommerce PDF Invoices & Packing Slips. Ale o tom až nabudúce.

Roman Kraiger

Zakladateľ pixeler.sk, vášnivý cyklista, programátor a občasný bloger.


Páčil sa ti tento článok?

Podpor ho lajkom alebo ho zdieľaj medzi priateľmi.

Pridaj komentár

Vaša e-mailová adresa nebude zverejnená. Vyžadované polia sú označené *

Ďalšie články

arrow_back_ios
arrow_forward_ios