pro formát A4, 34 otvorů, kapacita děrování až 25 listů (otvor 4x4mm), vázání až 120 listů (12 mm), kovové hřbety průměr 4,8 – 16mm, váha 18,9kg, mechanický
/* Plugin Name: Fio párování objednávek Description: Párování plateb z Fio banky s WooCommerce objednávkami – podporuje částečné platby a zobrazuje seznam transakcí. Author: Tibor Černý Version: 1.1 */ if (!defined('ABSPATH')) exit; function fio_ziskej_transakce() { if (!defined('FIO_API_TOKEN')) return []; $od = date('Y-m-d', strtotime('-30 days')); $do = date('Y-m-d'); $url = "https://www.fio.cz/ib_api/rest/periods/" . FIO_API_TOKEN . "/$od/$do/transactions.json"; $response = wp_remote_get($url); if (is_wp_error($response)) return []; $data = json_decode(wp_remote_retrieve_body($response), true); return $data['accountStatement']['transactionList']['transaction'] ?? []; } function fio_paruj_objednavky($transakce) { $sparovano = 0; $transakce_by_vs = []; foreach ($transakce as $tx) { // 💰 Částka z column1 $castka_raw = $tx['column1']['value'] ?? null; $castka = floatval(str_replace(',', '.', preg_replace('/[^\d.,-]/', '', $castka_raw))); if ($castka === 0.0) continue; // 🔢 VS z column5 $vs_raw = $tx['column5']['value'] ?? ''; preg_match_all('/\d{3,}/', $vs_raw, $matches); $vs = isset($matches[0][0]) ? $matches[0][0] : null; if (!$vs || !ctype_digit($vs)) continue; $vs = intval($vs); $transakce_by_vs[$vs][] = [ 'castka' => $castka, 'datum' => $tx['column0']['value'] ?? '', 'poznamka' => $tx['column25']['value'] ?? '', ]; } foreach ($transakce_by_vs as $vs => $platby) { $order = wc_get_order($vs); if (!$order) continue; $stav = $order->get_status(); if (!in_array($stav, ['on-hold', 'pending', 'failed'])) { continue; // nepřepisujeme jiné stavy } $celkem = floatval($order->get_total()); $suma = array_sum(array_column($platby, 'castka')); if (abs($suma - $celkem) < 0.01 || $suma > $celkem) { $order->update_status('paid', "💰 Platba přes Fio API: {$suma} Kč (VS {$vs})"); $sparovano++; } else { $rozdil = $celkem - $suma; $order->add_order_note("⚠️ Částečná platba přes Fio: {$suma} Kč, zbývá " . number_format($rozdil, 2, ',', ' ') . " Kč"); } } return $sparovano; } // 🖱️ Admin stránka add_action('admin_menu', function () { add_submenu_page( 'woocommerce', 'Fio párování', 'Fio párování', 'manage_woocommerce', 'fio-parovani', 'fio_zobraz_stranku' ); }); function fio_zobraz_stranku() { echo '
✅ Spárováno ' . $sparovano . ' objednávek.
Datum | VS | Částka | Stav | Zaplaceno | Rozdíl | Objednávka | Poznámka |
---|---|---|---|---|---|---|---|
{$datum} | {$vs} | {$objednavka_celkem} | {$stav} | " . number_format($zaplaceno, 2, ',', ' ') . " Kč | {$rozdil_text} | {$objednavka_odkaz} | {$poznamka} |
7 662 Kč
pro formát A4, 34 otvorů, kapacita děrování až 25 listů (otvor 4x4mm), vázání až 120 listů (12 mm), kovové hřbety průměr 4,8 – 16mm, váha 18,9kg, mechanický