Přeskočit na obsah

Pro vývojáře

[wpify_woo_render_qr_code]

Shortcode automaticky detekuje objednávku v tomto pořadí:

  1. Parametr order_id v shortcode
  2. Parametr key v URL (děkovná stránka)
  3. Globální proměnná $email (v e-mailu)
  4. Globální proměnná $order
  5. Query variable order-pay nebo view-order
ParametrTypPopis
order_idintID objednávky (volitelné)
[wpify_woo_render_qr_code order_id="12345"]
do_action( 'wpify_woo_render_qr_code', $order );
ParametrTypPopis
$orderint|WC_OrderID objednávky nebo objekt WC_Order

Příklad: QR kód na stránce „Můj účet”

Section titled “Příklad: QR kód na stránce „Můj účet””
add_action( 'woocommerce_view_order', function( $order_id ) {
$order = wc_get_order( $order_id );
if ( $order->get_status() === 'on-hold' ) {
do_action( 'wpify_woo_render_qr_code', $order );
}
}, 1, 1 );

Upraví data platby před vygenerováním QR kódu.

apply_filters( 'wpify_woo_qr_payment_details', array $payment_details, WC_Order $order );
ParametrTypPopis
$payment_detailsarrayData platby (viz níže)
$orderWC_OrderObjekt objednávky
KlíčTypPopis
orderstringČíslo objednávky
totalfloatCelková částka
vsstringVariabilní symbol (číslo objednávky bez nečíselných znaků)
currencystringMěna (CZK, EUR, HUF)
due_datestringDatum splatnosti (Y-m-d)
account_numberstringČíslo účtu (CZ)
bank_codestringKód banky (CZ)
ibanstringIBAN
bicstringBIC/SWIFT
notestringZpráva pro příjemce
recipient_namestringJméno příjemce
add_filter( 'wpify_woo_qr_payment_details', function( $details, $order ) {
// Použít vlastní meta jako variabilní symbol
$custom_vs = $order->get_meta( '_custom_variable_symbol' );
if ( $custom_vs ) {
$details['vs'] = $custom_vs;
}
return $details;
}, 10, 2 );
add_filter( 'wpify_woo_qr_payment_details', function( $details, $order ) {
// Splatnost 14 dní od vytvoření objednávky
$due_date = new DateTime( $order->get_date_created()->format( 'Y-m-d' ) );
$due_date->modify( '+14 days' );
$details['due_date'] = $due_date->format( 'Y-m-d' );
return $details;
}, 10, 2 );

Přeskočí vykreslení QR kódu pro konkrétní objednávku/účet.

apply_filters( 'wpify_woo_skip_qr_payment', bool $skip, WC_Order $order, array $account );
ParametrTypPopis
$skipboolPřeskočit vykreslení (výchozí: false)
$orderWC_OrderObjekt objednávky
$accountarrayData bankovního účtu

Příklad: Nezobrazovat pro zaplacené objednávky

Section titled “Příklad: Nezobrazovat pro zaplacené objednávky”
add_filter( 'wpify_woo_skip_qr_payment', function( $skip, $order, $account ) {
if ( $order->is_paid() ) {
return true;
}
return $skip;
}, 10, 3 );

Příklad: Nezobrazovat pro malé objednávky

Section titled “Příklad: Nezobrazovat pro malé objednávky”
add_filter( 'wpify_woo_skip_qr_payment', function( $skip, $order, $account ) {
if ( $order->get_total() < 100 ) {
return true;
}
return $skip;
}, 10, 3 );

Upraví data bankovního účtu po načtení z BACS a před validací.

apply_filters( 'wpify_woo_qr_account_data', array $account, WC_Order $order );
ParametrTypPopis
$accountarrayData účtu (viz níže)
$orderWC_OrderObjekt objednávky
KlíčTypPopis
sourcestringZdroj dat (index BACS účtu nebo prázdný)
ibanstringIBAN
numberstringČíslo účtu
bank_codestringKód banky
bicstringBIC/SWIFT
recipient_namestringJméno příjemce
typestringTyp QR (cz, sk, hu, epc)
enabled_currenciesarrayPovolené měny
enabled_countriesarrayPovolené země
labelstringInfo label

Příklad: Dynamický účet podle částky

Section titled “Příklad: Dynamický účet podle částky”
add_filter( 'wpify_woo_qr_account_data', function( $account, $order ) {
// Pro objednávky nad 10000 Kč použít jiný účet
if ( $order->get_total() > 10000 && $order->get_currency() === 'CZK' ) {
$account['number'] = '123456789';
$account['bank_code'] = '0100';
}
return $account;
}, 10, 2 );

Modul loguje chyby při generování QR kódu do logu dostupného v administraci:

WPify Woo → WPify Logs

UdálostPopis
Chyba generování QRSelhání při vytváření QR kódu (neplatná data, výjimka knihovny)
Nepodporovaná měnaMěna objednávky neodpovídá QR standardu
[2024-01-15 10:30:45] ERROR: QR payment: error create QR code.
{
"data": {
"order_id": 1234,
"message": "Invalid IBAN format",
"payment_details": { ... }
}
}
SouborCesta
QR obrázkywp-content/uploads/qr-payment/
Logywp-content/uploads/logs/