Budując sklepy internetowe, wiele razy napotykamy konieczność dodania nowego pola w zamówieniu, gdzie klient może podać NIP do faktury. Coraz częściej spotykamy się z sytuacja, kiedy klient chce otrzymać fakturę za towar, a zapomni dodać w wiadomości do sprzedającego swojego NIP’u. W tym artykule pokażę jak dodać pole NIP w formularzu zamówienia, w mailach potwierdzających zamówienie oraz w panelu zamówień.
Na początek otwieramy do edycji plik function.php, który znajduje się na naszym serwerze w katalogu /public_html/wp-content/temes/nasz-temat-graficzny
Pierwszym krokiem będzie dodanie akcji z funkcją tworzącą nowe pole o nazwie vat_number.
add_action( 'woocommerce_after_order_notes', 'pisak_vat_field' ); /** * VAT Number in WooCommerce Checkout */ function pisak_vat_field( $checkout ) { echo '<div id="pisak_vat_field"><h2>' . __('Numer NIP') . '</h2>'; woocommerce_form_field( 'vat_number', array( 'type' => 'text', 'class' => array( 'vat-number-field form-row-wide') , 'label' => __( 'Numer NIP' ), 'placeholder' => __( 'Podaj numer NIP' ), ), $checkout->get_value( 'vat_number' )); echo '</div>'; }
Kolejnym krokiem jest zapisanie podanego numeru NIP do bazy danych.
add_action( 'woocommerce_checkout_update_order_meta', 'pisak_checkout_vat_number_update_order_meta' ); /** * Save VAT Number in the order meta */ function pisak_checkout_vat_number_update_order_meta( $order_id ) { if ( ! empty( $_POST['vat_number'] ) ) { update_post_meta( $order_id, '_vat_number', sanitize_text_field( $_POST['vat_number'] ) ); } }
Następnie poniższy kod pozwala na wyświetlenie numeru NIP w zamówieniach WooCommerce’a.
add_action( 'woocommerce_admin_order_data_after_billing_address', 'pisak_vat_number_display_admin_order_meta', 10, 1 ); /** * Display VAT Number in order edit screen */ function pisak_vat_number_display_admin_order_meta( $order ) { echo '<p><strong>' . __( 'Numer NIP', 'woocommerce' ) . ':</strong> ' . get_post_meta( $order->id, '_vat_number', true ) . '</p>'; }
Ostatnim krokiem jest dodanie numeru NIP do maili z zamówieniem.
add_filter( 'woocommerce_email_order_meta_keys', 'pisak_vat_number_display_email' ); /** * VAT Number in emails */ function pisak_vat_number_display_email( $keys ) { $keys['Numer NIP'] = '_vat_number'; return $keys; }
Powyższy kod wklejamy w naszym pliku function.php, jeden pod drugim, zapisujemy plik i wysyłamy na serwer.