Custom Fields o campos personalizados en Woocomerce, ejemplo CIF/NIF
////////18-7-2016—–NO FUNCIONA CON LA NUEVA VERSIÓN DE WOOCOMMERCE—– 18-7-2016/////////////
Como no hay manera de añadir el campo CIF/NIF en los datos de pedido de Woocomerce sólo nos quedan dos maneras de hacerlo.
-Pagar los 49 dólares para descargar el plugin woocommerce-checkout-field-editor o bien arriesgarnos a tocar código.
En mi caso me urge crear un campo personalizado CIF/NIF para poder generar después las facturas.
Pasos necesarios, (todo los códigos se añaden al archivo functions.php)
<?php /** * Añadir el campo cuando se hace el pedido. Por defecto lo hará a continuación de los datos actuales **/ add_action('woocommerce_after_order_notes', 'my_custom_checkout_field'); function my_custom_checkout_field( $checkout ) { echo '<div id="my_custom_checkout_field"><h2>'.__('CIF/NIF').'</h2>'; woocommerce_form_field( 'CIF/NIF', array( 'type' => 'text', 'class' => array('my-field-class form-row-wide'), 'placeholder' => __('Introduzca el CIF/NIF'), ), $checkout->get_value( 'CIF/NIF' )); echo '</div>'; } /** * Comprobación de que no se deja en blanco, omitir si es un campo opcional **/ add_action('woocommerce_checkout_process', 'my_custom_checkout_field_process'); function my_custom_checkout_field_process() { global $woocommerce; if (!$_POST['CIF/NIF']) $woocommerce->add_error( __('RELLENE EL CIF/NIF.') ); } /** * Actualizar el campo personalizado en la base de datos **/ add_action('woocommerce_checkout_update_order_meta', 'my_custom_checkout_field_update_order_meta'); function my_custom_checkout_field_update_order_meta( $order_id ) { if ($_POST['CIF/NIF']) update_post_meta( $order_id, 'CIF/NIF', esc_attr($_POST['CIF/NIF'])); } /** * Visualizarlo en la orden del pedido **/ add_action( 'woocommerce_admin_order_data_after_billing_address', 'my_custom_checkout_field_display_admin_order_meta', 10, 1 ); function my_custom_checkout_field_display_admin_order_meta($order){ echo '<p><strong>'.__('CIF/NIF').':</strong> ' . $order->order_custom_fields['CIF/NIF'][0] . '</p>'; }?>
Con todo esto tendremos el campo CIF/NIF para introducir como campo obligatorio, y una vez se haga el pedido, al ir a la orden que se genera, lo tendremos como dato de facturación. Para poder modificarlo desde esta página, en la parte de abajo podremos modificarlo desde el desplegable de campo personalizado.
¿Que más faltaría? Quizás cambiar el lugar donde aparece el campo para rellenar, y que se enviase tambien por Email al cliente…pero eso ya es otra historia.
En que archivo functions.php el de woocomerce, el de la plantilla?
Hola Jesus,
desde el panel de WordPress, apariencia, editor. Allí busca el archivo functions.php. Verá algunas lineas del tipo «Start WooThemes Functions» y más abajo «Load the theme-specific files», más abajo, tras «/* You can add custom functions below */» pon el código de arriba. Por si acaso antes de nada haz una copia de seguridad, o copia el contenido en un archivo de texto, por si acaso.
Espero que te funcione, suerte!
Acabo de probarlo y no funciona, pantalla en blanco..menos mal que hice copia de seguridad como bien indicabas!! ¿alguna solución?
Al parecer con la nueva versión de Woocoomerce no funciona correctamente, gracias por el aviso.
Gracias!! me ha funcionado perfectamente, maravilloso!!
Gracias a ti Carlos, ya ves que Wodpress es maravilloso!