// 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;
}