Loading

Woo pole faktura VAT


// Dodaj checkbox "Chcę dostać FV"
add_filter( 'woocommerce_checkout_fields', 'custom_add_invoice_checkbox' );
function custom_add_invoice_checkbox( $fields ) {

    $fields['billing']['want_invoice'] = array(
        'type'     => 'checkbox',
        'label'    => 'Chcę dostać FV',
        'required' => false,
        'class'    => array( 'form-row-wide' ),
        'priority' => 120,
    );

    // Pole NIP
    $fields['billing']['billing_nip'] = array(
        'type'        => 'text',
        'label'       => 'NIP',
        'required'    => false,
        'class'       => array( 'form-row-first', 'invoice-field' ),
        'priority'    => 121,
    );

    // Pole nazwy firmy
    $fields['billing']['billing_company_custom'] = array(
        'type'        => 'text',
        'label'       => 'Nazwa firmy',
        'required'    => false,
        'class'       => array( 'form-row-last', 'invoice-field' ),
        'priority'    => 122,
    );

    return $fields;
}

// Zapisz pola w zamówieniu
add_action( 'woocommerce_checkout_update_order_meta', 'custom_save_invoice_fields' );
function custom_save_invoice_fields( $order_id ) {
    if ( isset( $_POST['want_invoice'] ) ) {
        update_post_meta( $order_id, '_want_invoice', 'yes' );
    } else {
        update_post_meta( $order_id, '_want_invoice', 'no' );
    }

    if ( ! empty( $_POST['billing_nip'] ) ) {
        update_post_meta( $order_id, '_billing_nip', sanitize_text_field( $_POST['billing_nip'] ) );
    }
    if ( ! empty( $_POST['billing_company_custom'] ) ) {
        update_post_meta( $order_id, '_billing_company_custom', sanitize_text_field( $_POST['billing_company_custom'] ) );
    }
}

// Pokaż pola w edycji zamówienia w panelu admina
add_action( 'woocommerce_admin_order_data_after_billing_address', 'custom_display_invoice_fields_admin', 10, 1 );
function custom_display_invoice_fields_admin( $order ) {
    $want_invoice = get_post_meta( $order->get_id(), '_want_invoice', true );
    $nip          = get_post_meta( $order->get_id(), '_billing_nip', true );
    $company      = get_post_meta( $order->get_id(), '_billing_company_custom', true );

    echo '<p><strong>Faktura VAT:</strong> ' . ( $want_invoice === 'yes' ? 'Tak' : 'Nie' ) . '</p>';
    if ( $nip ) {
        echo '<p><strong>NIP:</strong> ' . esc_html( $nip ) . '</p>';
    }
    if ( $company ) {
        echo '<p><strong>Nazwa firmy:</strong> ' . esc_html( $company ) . '</p>';
    }
}

// Ukryj pola do momentu zaznaczenia checkboxa (JS)
add_action( 'wp_footer', 'custom_invoice_fields_script' );
function custom_invoice_fields_script() {
    if ( is_checkout() && ! is_wc_endpoint_url() ) :
    ?>
    <script type="text/javascript">
        (function($){
            function toggleInvoiceFields() {
                if ( $('#want_invoice').is(':checked') ) {
                    $('.invoice-field').closest('.form-row').show();
                } else {
                    $('.invoice-field').closest('.form-row').hide();
                }
            }
            $(document).ready(function(){
                toggleInvoiceFields();
                $('#want_invoice').change(function(){
                    toggleInvoiceFields();
                });
            });
        })(jQuery);
    </script>
    <?php
    endif;
}

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *