rafaelcmgt
10/12/2017 - 10:53 AM

Añadir campo dni/cif

Añade campo dni/cif al checkout, lo envía en el correo y lo hace aparecer en los datos del pedido.

/*
* AÑADIR CAMPO NIF/CIF EN EL FORMULARIO DE PAGO
*/
function woo_custom_field_checkout($checkout) {
  echo '<div id="additional_checkout_field">';
  woocommerce_form_field( 'nif', array( // Identificador del campo
    'type'          => 'text',
    'class'         => array('my-field-class form-row-wide'),
    'required'      => true,            // ¿El campo es obligatorio 'true' o 'false'?
    'label'       => __('NIF / CIF'),   // Nombre del campo
    'placeholder'   => __('Ej: 12345678X'), // Texto de apoyo que se muestra dentro del campo
  ), $checkout->get_value( 'nif' ));    // Identificador del campo
  echo '</div>';
}
add_action( 'woocommerce_after_checkout_billing_form', 'woo_custom_field_checkout' );
/*
* INCLUYE NIF/CIF EN LOS DETALLES DEL PEDIDO CON EL NUEVO CAMPO
*/
function woo_custom_field_checkout_update_order($order_id) {
  if ( ! empty( $_POST['nif'] ) ) {
    update_post_meta( $order_id, 'NIF', sanitize_text_field( $_POST['nif'] ) );
  }
}
add_action( 'woocommerce_checkout_update_order_meta', 'woo_custom_field_checkout_update_order' );
  /*
  * LANZAR ERROR SI EL CAMPO NO ESTÁ RELLENO. SÓLO APLICABLE SI ES OBLIGATORIO. BORRAR EN CASO DE NO SERLO.
  */
add_action('woocommerce_checkout_process', 'mg_error_cif_nif');

function mg_error_cif_nif() {
    if ( ! $_POST['nif'] )
        wc_add_notice( __( 'El campo NIF / CIF es obligatorio.' ), 'error' );
}
/*
* MUESTRA EL VALOR DEL CAMPO NIF/CIF LA PÁGINA DE MODIFICACIÓN DEL PEDIDO
*/
function woo_custom_field_checkout_edit_order($order){
  echo '<p><strong>'.__('NIF').':</strong> ' . get_post_meta( $order->id, 'NIF', true ) . '</p>';
}
add_action( 'woocommerce_admin_order_data_after_billing_address', 'woo_custom_field_checkout_edit_order', 10, 1 );
/*
* INCLUYE EL CAMPO NIF/CIF EN EL CORREO ELECTRÓNICO DE AVISO A TU CLIENTE
*/
function woo_custom_field_checkout_email($keys) {
  $keys[] = 'NIF';
  return $keys;
}
add_filter('woocommerce_email_order_meta_keys', 'woo_custom_field_checkout_email');

/*
* INCLUYE EL NIF EN LA FACTURA DE WooCommerce PDF Invoices & Packing Slips
*/

add_filter( 'wpo_wcpdf_billing_address', 'mg_incluir_nif_en_factura' );

function mg_incluir_nif_en_factura( $address ){
  global $wpo_wcpdf;
  echo $address . '<p>';
  $wpo_wcpdf->custom_field( 'NIF', 'NIF: ' );
  echo '</p>';
}