Skip to content

Zakázání automatického generování faktur

Pokud potřebujete za určitých podmínek zakázat automatické generování faktur (např. pro určité produkty, zákazníky nebo stavy), můžete využít filtr wpify_woo_fakturoid_disable_auto_invoicing.

Filtr pro zakázání automatického generování

Section titled “Filtr pro zakázání automatického generování”
apply_filters( 'wpify_woo_fakturoid_disable_auto_invoicing', $disabled, $order, $wc_order, $document_type );
ParametrTypPopis
$disabledboolVýchozí hodnota je false (generování povoleno)
$orderOrderModelModel objednávky s Fakturoid daty
$wc_orderWC_OrderWooCommerce objednávka
$document_typestringTyp dokumentu: proforma, invoice, correction

Zakázání pro určitou kategorii produktů

Section titled “Zakázání pro určitou kategorii produktů”

Toto nastavení nelze provést v administraci - použijte filtr.

/**
* Disable auto invoicing for specific product category
*
* @param bool $disabled Whether auto invoicing is disabled
* @param OrderModel $order Order model
* @param WC_Order $wc_order WC order
* @param string $document_type Document type
*
* @return bool
*/
function disable_invoicing_for_category( $disabled, $order, $wc_order, $document_type ): bool {
foreach ( $wc_order->get_items() as $item ) {
$product = $item->get_product();
if ( $product && has_term( 'sluzby', 'product_cat', $product->get_id() ) ) {
return true; // Zakázat generování pro kategorii "sluzby"
}
}
return $disabled;
}
add_filter( 'wpify_woo_fakturoid_disable_auto_invoicing', 'disable_invoicing_for_category', 10, 4 );

Zakázání pro konkrétní platební metodu

Section titled “Zakázání pro konkrétní platební metodu”

Toto lze nastavit i v administraci - stačí u dané platební metody nevybrat žádný stav pro generování. Filtr použijte pokud potřebujete složitější logiku.

/**
* Disable auto invoicing for specific payment method
*
* @param bool $disabled Whether auto invoicing is disabled
* @param OrderModel $order Order model
* @param WC_Order $wc_order WC order
* @param string $document_type Document type
*
* @return bool
*/
function disable_invoicing_for_payment_method( $disabled, $order, $wc_order, $document_type ): bool {
// Zakázat automatické generování pro platby na dobírku
if ( $wc_order->get_payment_method() === 'cod' ) {
return true;
}
return $disabled;
}
add_filter( 'wpify_woo_fakturoid_disable_auto_invoicing', 'disable_invoicing_for_payment_method', 10, 4 );

Toto lze nastavit i v administraci - stačí u platebních metod nevybrat žádný stav pro generování proform. Filtr použijte pro globální zakázání bez ohledu na nastavení.

/**
* Disable auto proforma generation
*
* @param bool $disabled Whether auto invoicing is disabled
* @param OrderModel $order Order model
* @param WC_Order $wc_order WC order
* @param string $document_type Document type
*
* @return bool
*/
function disable_auto_proforma( $disabled, $order, $wc_order, $document_type ): bool {
// Zakázat pouze automatické generování proform
if ( $document_type === 'proforma' ) {
return true;
}
return $disabled;
}
add_filter( 'wpify_woo_fakturoid_disable_auto_invoicing', 'disable_auto_proforma', 10, 4 );

Toto nastavení nelze provést v administraci - použijte filtr.

/**
* Disable auto invoicing for B2B customers (with company/VAT)
*
* @param bool $disabled Whether auto invoicing is disabled
* @param OrderModel $order Order model
* @param WC_Order $wc_order WC order
* @param string $document_type Document type
*
* @return bool
*/
function disable_invoicing_for_b2b( $disabled, $order, $wc_order, $document_type ): bool {
// Zakázat pro zákazníky s IČO nebo DIČ (B2B)
if ( $wc_order->get_billing_company() || $wc_order->get_meta( '_billing_ic' ) ) {
return true;
}
return $disabled;
}
add_filter( 'wpify_woo_fakturoid_disable_auto_invoicing', 'disable_invoicing_for_b2b', 10, 4 );

Vlastní funkci můžete vložit buď do tzv. child šablony nebo pomocí pluginu Code Snippets.