Akce před odesláním požadavku
Tento obsah zatím není dostupný ve vašem jazyce.
Plugin poskytuje několik akcí, které jsou spuštěny těsně před odesláním požadavku do Fakturoid API. Tyto akce umožňují provést dodatečné operace nebo logování.
Dostupné akce
Section titled “Dostupné akce”Před odesláním požadavku na objednávku
Section titled “Před odesláním požadavku na objednávku”do_action( 'wpify_woo_fakturoid_before_order_request', $order, $wc_order );| Parametr | Typ | Popis |
|---|---|---|
$order | OrderModel | Model objednávky s Fakturoid daty |
$wc_order | WC_Order | WooCommerce objednávka |
Před odesláním požadavku na vytvoření kontaktu
Section titled “Před odesláním požadavku na vytvoření kontaktu”do_action( 'wpify_woo_fakturoid_before_subject_request', $data, $order, $wc_order );| Parametr | Typ | Popis |
|---|---|---|
$data | array | Data kontaktu k odeslání |
$order | OrderModel | Model objednávky s Fakturoid daty |
$wc_order | WC_Order | WooCommerce objednávka |
Před odesláním požadavku na vytvoření dokumentu
Section titled “Před odesláním požadavku na vytvoření dokumentu”do_action( 'wpify_woo_fakturoid_before_invoice_request', $data, $order, $wc_order, $document_type );| Parametr | Typ | Popis |
|---|---|---|
$data | array | Data dokumentu k odeslání |
$order | OrderModel | Model objednávky s Fakturoid daty |
$wc_order | WC_Order | WooCommerce objednávka |
$document_type | string | Typ dokumentu: proforma, invoice, correction |
Příklady použití
Section titled “Příklady použití”Logování všech požadavků
Section titled “Logování všech požadavků”Pro debugování komunikace s Fakturoid API.
/** * Log all Fakturoid API requests * * @param OrderModel $order Order model * @param WC_Order $wc_order WC order * * @return void */function log_fakturoid_order_request( $order, $wc_order ): void { error_log( sprintf( 'Fakturoid: Processing order #%s', $wc_order->get_order_number() ) );}add_action( 'wpify_woo_fakturoid_before_order_request', 'log_fakturoid_order_request', 10, 2 );Logování dat kontaktu před odesláním
Section titled “Logování dat kontaktu před odesláním”/** * Log subject data before sending to Fakturoid * * @param array $data Subject data * @param OrderModel $order Order model * @param WC_Order $wc_order WC order * * @return void */function log_subject_request( $data, $order, $wc_order ): void { error_log( sprintf( 'Fakturoid: Creating subject for order #%s: %s', $wc_order->get_order_number(), wp_json_encode( $data ) ) );}add_action( 'wpify_woo_fakturoid_before_subject_request', 'log_subject_request', 10, 3 );Logování dat dokumentu před odesláním
Section titled “Logování dat dokumentu před odesláním”/** * Log invoice data before sending to Fakturoid * * @param array $data Document data * @param OrderModel $order Order model * @param WC_Order $wc_order WC order * @param string $document_type Document type * * @return void */function log_invoice_request( $data, $order, $wc_order, $document_type ): void { error_log( sprintf( 'Fakturoid: Creating %s for order #%s: %s', $document_type, $wc_order->get_order_number(), wp_json_encode( $data ) ) );}add_action( 'wpify_woo_fakturoid_before_invoice_request', 'log_invoice_request', 10, 4 );Validace před odesláním
Section titled “Validace před odesláním”/** * Validate order before Fakturoid request * * @param OrderModel $order Order model * @param WC_Order $wc_order WC order * * @return void * @throws Exception When validation fails */function validate_before_fakturoid( $order, $wc_order ): void { // Zkontrolovat povinná pole if ( empty( $wc_order->get_billing_email() ) ) { throw new Exception( 'Order is missing billing email' ); }
if ( empty( $wc_order->get_billing_first_name() ) ) { throw new Exception( 'Order is missing billing name' ); }}add_action( 'wpify_woo_fakturoid_before_order_request', 'validate_before_fakturoid', 10, 2 );Aktualizace externího systému
Section titled “Aktualizace externího systému”/** * Update external system before invoice creation * * @param array $data Document data * @param OrderModel $order Order model * @param WC_Order $wc_order WC order * @param string $document_type Document type * * @return void */function update_erp_before_invoice( $data, $order, $wc_order, $document_type ): void { // Označit objednávku v ERP jako zpracovávanou wp_remote_post( 'https://api.your-erp.com/orders/' . $wc_order->get_id() . '/processing', array( 'body' => wp_json_encode( array( 'status' => 'invoicing', 'document_type' => $document_type, ) ), 'headers' => array( 'Content-Type' => 'application/json', ), ) );}add_action( 'wpify_woo_fakturoid_before_invoice_request', 'update_erp_before_invoice', 10, 4 );Kde umístit kód
Section titled “Kde umístit kód”Vlastní funkci můžete vložit buď do tzv. child šablony nebo pomocí pluginu Code Snippets.