Még nincs semmi a kosárban
Fejlesztőknek
Számla és nyugtakészítés előtt a WordPress rendszerből ismert filterekkel lehet módosítani a számla adatait, amit a számlázz.hu rendszerébe küld a bővítmény. Ezek a filterek érhetők el:
- wc_szamlazz_xml – Végszámla, díjbekérő vagy előlegszámla módosítására
- wc_szamlazz_xml_kifiz – A teljesítettnek jelölés módosítására
- wc_szamlazz_xml_void – A sztornó számla módosítására
- wc_szamlazz_xml_receipt – A nyugta módosítására
- wc_szamlazz_xml_receipt_send – A nyugtaértesítő módosítására
- wc_szamlazz_xml_void_receipt – A nyugta sztornó módosítására
- wc_szamlazz_xml_proform_delete – Díjbekérő törlése
A fent említett filterek mindegyike két paraméterrel rendelkezik, $xml és $order. Előbbi a számlázz.hu felé küldendő XML fájl, utóbbi az éppen aktuális rendelés adatai. A wc_szamlazz_xml filternél egy harmadik típus is elérhető, ami a dokumentum típusát jelöli. Egy példa a számlán megjelenő számlaszám módosítására:
add_filter('wc_szamlazz_xml','wc_szamlazz_xml_bank_account',10,2);
function wc_szamlazz_xml_lang($xml,$order) {
//Change bank account number for EUR
if($order->get_currency() == 'EUR') {
$xml->elado->bank = 'OTPVHUHB';
$xml->elado->bankszamlaszam = 'IBANSZÁM';
}
return $xml;
}
A számlán megjelenő tételeket is lehet módosítani a wc_szamlazz_invoice_line_item filterrel. Ennek négy paramétere van. Az első $tetel, ami a tételre vonatkozó XML objektum(ezt kell módosítva visszaadni). A második eg WC_Order_Item class, a harmadik a rendelés, a negyedik pedig a teljes XML számla. Egy példa a tétel nevének módosítására:
add_filter('wc_szamlazz_invoice_line_item', 'wc_szamlazz_invoice_line_item_rounding', 10, 4);
function wc_szamlazz_invoice_line_item_rounding($tetel, $order_item, $order, $szamla) {
$tetel->megnevezes = 'Új tétel név';
return $tetel;
}
A wc_szamlazz_bulk_generate_defer_limit filterrel módosítható az az érték, hogy csoportos számlakészítésnél hány számlától kezdve generálja a sázmlákat a háttérben. Az alapértelmezett érték 2, tehát ha kettőnél több rendeléshez készítesz számlát a csoportos műveletek segítségével, akkor a háttérben indul el a folyamat. Így módosíthatod az értéket:
add_filter('wc_szamlazz_bulk_generate_defer_limit', function(){
return 5;
});
Ha szeretnél új beállítások mezőt hozzáadni, akkor a wc_szamlazz_settings_fields filtert használhatod. Például:
add_filter('wc_szamlazz_settings_fields' function($settings){
$settings_custom = array(
'egyedi_szamlazz_beallitas' => array(
'title' => 'Egyedi számlázz beállítás szekció',
'type' => 'wc_szamlazz_settings_title', //ez indít egy új szekciót
),
'egyedi_szamlazz_beallitas_ertek_1' => array(
'type' => 'text',
'title' => 'Szövegmező',
),
);
return array_merge($settings, $settings_custom);
});
Az elmentett értéket pedig lekérheted így:
$ertek = WC_Szamlazz()->get_option('egyedi_szamlazz_beallitas_ertek_1', 'alapértelmezett érték');
A wc_szamlazz_need_delivery_note filterrel ellenőrizheted, hogy az adott rendeléshez kell e szállítólevelet készíteni. Például:
add_filter('wc_szamlazz_need_delivery_note', function($need_delivery_note, $order){
if($order->get_currency() == 'EUR') {
$need_delivery_note = false;
}
return $need_delivery_note;
}, 10, 2)
A wc_szamlazz_should_generate_auto_invoice filterrel ellenőrizheted, hogy az adott rendeléshez kell e automatán számlát készíteni, vagy nem. Például:
add_filter('wc_szamlazz_should_generate_auto_invoice', function($should_generate_auto_invoice, $order_id){
$order = wc_get_order($order_id);
if($order && $order->get_currency() == 'EUR') {
$should_generate_auto_invoice = false;
}
return $should_generate_auto_invoice;
}, 10, 2)
A wc_szamlazz_download_link filterrel módosíthatod a számla letöltési linkjét(például ha CDN-t használsz hozzá, vagy valamilyen extra paramétert szeretnél hozzáadni naplózás miatt):
add_filter('wc_szamlazz_download_link', function($pdf_file_url, $order){
return $pdf_file_url.'?param=test';
}, 10, 2);
A wc_szamlazz_document_types filterrel tudod módosítani a dokumentumok nevét(például ha más nyelven kell):
add_filter('wc_szamlazz_document_types', function($document_types){
/*
array(
'deposit' => __('Előlegszámla','wc-szamlazz'),
'proform' => __('Díjbekérő','wc-szamlazz'),
'invoice' => __('Számla','wc-szamlazz'),
'receipt' => __('Nyugta','wc-szamlazz'),
'delivery' => __('Szállítólevél','wc-szamlazz'),
'void' => __('Sztornó számla','wc-szamlazz'),
'void_receipt' => __('Sztornó nyugta','wc-szamlazz'),
'corrected' => __('Helyesbítő számla','wc-szamlazz')
)
*/
$document_types['invoice'] = 'Invoice';
return $document_types;
});
A wc_billingo_plus_pdf_file_name filter segítségével tudod módosítani a generált PDF fájl nevét, amit a wp-content/uploads/wc-billingo-plus mappában tárol. Két paramétere van, a dokumentum típusa és a rendelés azonosító. Egy pdf fájlnevet kell visszaadnod, .pdf kiterjesztéssel. Például:
add_filter('wc_szamlazz_pdf_file_name', function($pdf_file_name, $document_type, $order_id){
$order = wc_get_order($order_id);
if($order) {
$pdf_file_name = sanitize_title(implode('-', array($document_type, $order->get_order_number(), $order->get_billing_last_name(), $order->get_billing_first_name()))).'.pdf';
}
return $pdf_file_name;
}, 10, 3);
Van néhány action is:
do_action('wc_szamlazz_after_invoice_error', $order, $xml_response);
do_action('wc_szamlazz_after_invoice_success', $order, $response);
do_action( 'wc_szamlazz_document_created', array('order_id' => $order->get_id(), 'document_type' => $type));
do_action('wc_szamlazz_after_invoice_complete_success', $order, $response);
do_action('wc_szamlazz_after_invoice_void_error', $order, $response);
do_action('wc_szamlazz_after_invoice_void_success', $order, $response);
do_action('wc_szamlazz_after_proform_delete_error', $order, $response);
do_action('wc_szamlazz_after_proform_delete_success', $order, $response);
do_action('wc_szamlazz_after_receipt_error', $order, $response);
do_action('wc_szamlazz_after_receipt_success', $order, $response);
do_action('wc_szamlazz_after_receipt_void_error', $order, $response);
do_action('wc_szamlazz_after_receipt_void_success', $order, $response);
do_action('wc_szamlazz_after_receipt_send_error', $order, $xml_response);
do_action('wc_szamlazz_after_receipt_send_success', $order, $xml_response);
do_action('wc_szamlazz_before_ipn_process', $order);
do_action('wc_szamlazz_after_ipn_process', $order);
Van egy Számlázz.hu dokumentum létrehozva webhook is. A válaszban az alábbi adatok szerepelnek:
$payload = array(
'order_id' => 123,
'document_type' => 'invoice', //receipt, delivery_note, proform, deposit, receipt, void, void_receipt
'document_url' => 'http://test.com/szamlaz.pdf',
'document_number' => 'Számla sorszáma'
);
Ha REST API-n keresztül lekéred a rendeléseket, akkor a wc_szamlazz paraméterben megtalálod a rendeléshez készült dokumentumok adatait egy tömbben:
'wc_szamlazz' => array(
array(
'document_type' => 'invoice',
'document_url' => 'invoice.pdf',
'document_number' => 'dokumentum neve, sorszáma'
)
)
Bővítmény információk
Verziószám: | 6.0.5 |
Legutóbb frissítve: | 2024. 10. 04. |
Változási napló: | Megtekint |