Tras la última actualización de ¿Cómo añadir un campo NIF o CIF a WooCommerce 2.1?, código publicado inicialmente en ¿Cómo añadir un campo NIF o CIF a WooCommerce 2.0?, no habíamos tenido que realizar ningún tipo de modificación sobre el mismo hasta que se ha publicado WooCommerce 2.4 y hemos detectado, gracias al aviso de uno de nuestros lectores, un fallo en el orden de los campos que se muestran en el formulario de la página de finalización de la compra.
Tras algunas pruebas, ya hemos dado con la configuración correcta, así que procedemos a publicar el código PHP íntegro que necesitas para que todo vuelva a la normalidad. En esta ocasión le hemos añadido directamente la validación del campo NIF/CIF, que publicamos en Validando el campo NIF o CIF en WooCommerce y que permite la validación de cualquier tipo de número NIF, CIF o NIE. Recuerda que este código PHP debe ser añadido al archivo functions.php del tema hijo o padre que estés utilizando:
//Arreglamos la dirección predeterminada function campos_de_direccion( $campos ) { $campos['nif'] = array( 'label' => __( '<abbr title="Código de Identificación Fiscal" lang="es">CIF</abbr>/<abbr title="Número de Identificación Fiscal" lang="es">NIF</abbr>', 'woocommerce' ), 'placeholder' => _x( 'Introduzca el CIF/NIF', 'placeholder', 'woocommerce' ), 'required' => false, 'class' =>array( 'form-row-last' ), 'clear' => true, ); $campos['email'] =array( 'label' => __( 'Email Address', 'woocommerce' ), 'required' => true, 'class' =>array( 'form-row-last' ), 'validate' =>array( 'email' ), 'clear' => true, ); $campos['phone'] =array( 'label' => __( 'Phone', 'woocommerce' ), 'required' => true, 'class' =>array( 'form-row-first' ), ); $campos['company']['class'][0] = 'form-row-first'; $campos['city']['class'][0] = 'form-row-first'; $campos['state']['class'][0] = 'form-row-last update_totals_on_change'; $campos['postcode']['class'][0] .= ' update_totals_on_change'; //Reordenamos los campos $campos_nuevos['country'] = $campos['country']; $campos_nuevos['first_name'] = $campos['first_name']; $campos_nuevos['last_name'] = $campos['last_name']; $campos_nuevos['company'] = $campos['company']; $campos_nuevos['nif'] = $campos['nif']; $campos_nuevos['address_1'] = $campos['address_1']; $campos_nuevos['address_2'] = $campos['address_2']; $campos_nuevos['postcode'] = $campos['postcode']; $campos_nuevos['city'] = $campos['city']; $campos_nuevos['state'] = $campos['state']; if ( isset( $campos['email'] ) ) { $campos_nuevos['email'] = $campos['email']; } if ( isset( $campos['phone'] ) ) { $campos_nuevos['phone']['required'] = true; $campos_nuevos['phone'] = $campos['phone']; } return $campos_nuevos; } add_filter( 'woocommerce_default_address_fields' , 'campos_de_direccion' ); //Nueva función para hacer compatible el código con WooCommerce 2.1 function dame_campo_personalizado( $campo, $pedido ) { $valor = get_post_meta( $pedido, $campo, false ); if ( isset( $valor[0] ) ){ return $valor[0]; } return NULL; } //Añadimos el NIF y el teléfono a la dirección de facturación y envío function anade_campo_nif_direccion_facturacion( $campos, $pedido ) { $campos['nif'] = dame_campo_personalizado( '_billing_nif', $pedido->id ); $campos['phone'] = dame_campo_personalizado( '_billing_phone', $pedido->id ); return $campos; } add_filter( 'woocommerce_order_formatted_billing_address','anade_campo_nif_direccion_facturacion', 1, 2 ); function anade_campo_nif_direccion_envio( $campos, $pedido ) { $campos['nif'] = dame_campo_personalizado( '_shipping_nif', $pedido->id ); $campos['phone'] = dame_campo_personalizado( '_shipping_phone', $pedido->id ); return $campos; } add_filter( 'woocommerce_order_formatted_shipping_address','anade_campo_nif_direccion_envio', 1, 2 ); function formato_direccion_de_facturacion( $campos, $argumentos ) { $campos['{nif}'] = $argumentos['nif']; $campos['{nif_upper}'] =strtoupper( $argumentos['nif'] ); $campos['{phone}'] = $argumentos['phone']; $campos['{phone_upper}'] =strtoupper( $argumentos['phone'] ); return $campos; } add_filter( 'woocommerce_formatted_address_replacements','formato_direccion_de_facturacion', 1, 2 ); //Reordenamos los campos de la dirección predeterminada function formato_direccion_localizacion( $campos ) { $campos['default'] = "{name}n{company}n{nif}n{address_1}n{address_2}n{city}n{state}n{postcode}n{country}n{phone}"; $campos['ES'] = "{name}n{company}n{nif}n{address_1}n{address_2}n{postcode} {city}n{state}n{country}n{phone}"; return $campos; } add_filter( 'woocommerce_localisation_address_formats','formato_direccion_localizacion' ); //Arreglamos el formulario de envío function formulario_de_envio( $campos ) { $campos['shipping_email'] =array( 'label' => __( 'Email Address', 'woocommerce' ), 'required' => false, 'class' =>array( 'form-row-first' ), 'validate' =>array( 'email' ), ); $campos['shipping_phone'] =array( 'label' => __( 'Phone', 'woocommerce' ), 'required' => true, 'class' =>array( 'form-row-last' ), 'clear' => true, ); $campos['shipping_postcode'] =array( 'label' => __( 'Postcode / Zip', 'woocommerce' ), 'placeholder' => __( 'Postcode / Zip', 'woocommerce' ), 'required' => true, 'class' =>array( 'form-row-wide', 'address-field' ), 'clear' => true, 'custom_attributes' =>array( 'autocomplete' => 'no' ) ); return $campos; } add_filter( 'woocommerce_shipping_fields' , 'formulario_de_envio' ); //Arreglamos el formulario de cobro function formulario_de_cobro( $campos ) { $campos['billing_postcode'] =array( 'label' => __( 'Postcode / Zip', 'woocommerce' ), 'placeholder' => __( 'Postcode / Zip', 'woocommerce' ), 'required' => true, 'class' => array( 'form-row-wide', 'address-field' ), 'clear' => true, 'custom_attributes' => array( 'autocomplete' => 'no' ) ); return $campos; } add_filter( 'woocommerce_billing_fields' , 'formulario_de_cobro' ); //Añade el campo CIF/NIF a usuarios function anade_campos_administracion_usuarios( $campos ) { $campos['billing']['fields']['billing_nif'] = array( 'label' => __( 'CIF/NIF', 'woocommerce' ), 'description' => '' ); $campos['shipping']['fields']['shipping_nif'] = array( 'label' => __( 'CIF/NIF', 'woocommerce' ), 'description' => '' ); $campos['shipping']['fields']['shipping_email'] = array( 'label' => __( 'Email', 'woocommerce' ), 'description' => '', 'class' =>array( 'form-row-last' ), ); $campos['shipping']['fields']['shipping_phone'] = array( 'label' => __( 'Telephone', 'woocommerce' ), 'description' => '', 'class' =>array( 'form-row-first' ), ); //Reordenamos los campos $campos_nuevos['billing']['title'] = $campos['billing']['title']; $campos_nuevos['billing']['fields']['billing_first_name'] = $campos['billing']['fields']['billing_first_name']; $campos_nuevos['billing']['fields']['billing_last_name'] = $campos['billing']['fields']['billing_last_name']; $campos_nuevos['billing']['fields']['billing_company'] = $campos['billing']['fields']['billing_company']; $campos_nuevos['billing']['fields']['billing_nif'] = $campos['billing']['fields']['billing_nif']; $campos_nuevos['billing']['fields']['billing_address_1'] = $campos['billing']['fields']['billing_address_1']; $campos_nuevos['billing']['fields']['billing_address_2'] = $campos['billing']['fields']['billing_address_2']; $campos_nuevos['billing']['fields']['billing_postcode'] = $campos['billing']['fields']['billing_postcode']; $campos_nuevos['billing']['fields']['billing_city'] = $campos['billing']['fields']['billing_city']; $campos_nuevos['billing']['fields']['billing_state'] = $campos['billing']['fields']['billing_state']; $campos_nuevos['billing']['fields']['billing_country'] = $campos['billing']['fields']['billing_country']; $campos_nuevos['billing']['fields']['billing_phone'] = $campos['billing']['fields']['billing_phone']; $campos_nuevos['billing']['fields']['billing_email'] = $campos['billing']['fields']['billing_email']; $campos_nuevos['shipping']['title'] = $campos['shipping']['title']; $campos_nuevos['shipping']['fields']['shipping_first_name'] = $campos['shipping']['fields']['shipping_first_name']; $campos_nuevos['shipping']['fields']['shipping_last_name'] = $campos['shipping']['fields']['shipping_last_name']; $campos_nuevos['shipping']['fields']['shipping_company'] = $campos['shipping']['fields']['shipping_company']; $campos_nuevos['shipping']['fields']['shipping_nif'] = $campos['shipping']['fields']['shipping_nif']; $campos_nuevos['shipping']['fields']['shipping_address_1'] = $campos['shipping']['fields']['shipping_address_1']; $campos_nuevos['shipping']['fields']['shipping_address_2'] = $campos['shipping']['fields']['shipping_address_2']; $campos_nuevos['shipping']['fields']['shipping_postcode'] = $campos['shipping']['fields']['shipping_postcode']; $campos_nuevos['shipping']['fields']['shipping_city'] = $campos['shipping']['fields']['shipping_city']; $campos_nuevos['shipping']['fields']['shipping_state'] = $campos['shipping']['fields']['shipping_state']; $campos_nuevos['shipping']['fields']['shipping_country'] = $campos['shipping']['fields']['shipping_country']; $campos_nuevos['shipping']['fields']['shipping_phone'] = $campos['shipping']['fields']['shipping_phone']; $campos_nuevos['shipping']['fields']['shipping_email'] = $campos['shipping']['fields']['shipping_email']; $campos_nuevos = apply_filters( 'wcbcf_customer_meta_fields', $campos_nuevos ); return $campos_nuevos; } add_filter( 'woocommerce_customer_meta_fields', 'anade_campos_administracion_usuarios' ); //Añadimos el NIF a la dirección de facturación y envío function anade_campo_nif_usuario_direccion_facturacion( $campos, $usuario ) { $campos['nif'] = get_user_meta( $usuario, 'billing_nif', true ); $campos['phone'] = get_user_meta( $usuario, 'billing_phone', true );return $campos; } add_filter( 'woocommerce_user_column_billing_address','anade_campo_nif_usuario_direccion_facturacion', 1, 2 ); function anade_campo_nif_usuario_direccion_envio( $campos, $usuario ) { $campos['nif'] = get_user_meta( $usuario, 'shipping_nif', true ); $campos['phone'] = get_user_meta( $usuario, 'shipping_phone', true );return $campos; } add_filter( 'woocommerce_user_column_shipping_address','anade_campo_nif_usuario_direccion_envio', 1, 2 ); //Añade el campo NIF a Editar mi dirección function anade_campo_nif_editar_direccion( $campos, $usuario, $nombre ) { $campos['nif'] = get_user_meta( $usuario, $nombre . '_nif', true ); $campos['phone'] = get_user_meta( $usuario, $nombre . '_phone', true ); //Ordena los campos $campos_nuevos['first_name'] = $campos['first_name']; $campos_nuevos['last_name'] = $campos['last_name']; $campos_nuevos['company'] = $campos['company']; $campos_nuevos['nif'] = $campos['nif']; $campos_nuevos['address_1'] = $campos['address_1']; $campos_nuevos['address_2'] = $campos['address_2']; $campos_nuevos['postcode'] = $campos['postcode']; $campos_nuevos['city'] = $campos['city']; $campos_nuevos['state'] = $campos['state']; $campos_nuevos['country'] = $campos['country']; $campos_nuevos['phone'] = $campos['phone']; return $campos_nuevos; } add_filter( 'woocommerce_my_account_my_address_formatted_address', 'anade_campo_nif_editar_direccion', 10, 3 ); //Añade el campo NIF a Detalles del pedido function anade_campo_nif_editar_direccion_pedido( $campos ) { $campos['nif'] = array( 'label' => __( 'CIF/NIF', 'woocommerce' ), 'show' => false ); $campos['phone'] = array( 'label' => __( 'Telephone', 'woocommerce' ), 'show' => false ); //Ordena los campos $campos_nuevos['first_name'] = $campos['first_name']; $campos_nuevos['last_name'] = $campos['last_name']; $campos_nuevos['company'] = $campos['company']; $campos_nuevos['nif'] = $campos['nif']; $campos_nuevos['address_1'] = $campos['address_1']; $campos_nuevos['address_2'] = $campos['address_2']; $campos_nuevos['postcode'] = $campos['postcode']; $campos_nuevos['city'] = $campos['city']; $campos_nuevos['state'] = $campos['state']; $campos_nuevos['country'] = $campos['country']; $campos_nuevos['phone'] = $campos['phone']; return $campos_nuevos; } add_filter( 'woocommerce_admin_billing_fields', 'anade_campo_nif_editar_direccion_pedido' ); add_filter( 'woocommerce_admin_shipping_fields', 'anade_campo_nif_editar_direccion_pedido' ); function carga_hoja_de_estilo_editar_direccion_pedido() { echo '</pre> <style type="text/css"><!-- #order_data .order_data_column ._billing_company_field, #order_data .order_data_column ._shipping_company_field { float: left; margin: 9px 0 0; padding: 0; width: 48%; } #order_data .order_data_column ._billing_nif_field, #order_data .order_data_column ._shipping_nif_field { float: right; margin: 9px 0 0; padding: 0; width: 48%; } --></style> <pre>'; } add_action( 'woocommerce_admin_order_data_after_billing_address', 'carga_hoja_de_estilo_editar_direccion_pedido' ); //Validando el campo NIF/CIF function validando_campo() { $falso = true; if ( isset( $_POST['billing_nif'] ) && strlen( $_POST['billing_nif'] ) == 9 ) { $nif = strtoupper( $_POST['billing_nif'] ); for ( $i = 0; $i < 9; $i ++ ) { $num[$i] = substr( $nif, $i, 1 ); } if ( !preg_match( '/((^[A-Z]{1}[0-9]{7}[A-Z0-9]{1}$|^[T]{1}[A-Z0-9]{8}$)|^[0-9]{8}[A-Z]{1}$)/', $nif ) ) { //No tiene formato válido $falso = true; } if ( preg_match( '/(^[0-9]{8}[A-Z]{1}$)/', $nif ) ) { if ( $num[8] == substr( 'TRWAGMYFPDXBNJZSQVHLCKE', substr( $nif, 0, 8 ) % 23, 1 ) ) { //NIF válido $falso = false; } } $suma = $num[2] + $num[4] + $num[6]; for ( $i = 1; $i < 8; $i += 2 ) { $suma += substr( ( 2 * $num[$i] ), 0, 1 ) + substr( ( 2 * $num[$i] ), 1, 1 ); } $n = 10 - substr( $suma, strlen( $suma ) - 1, 1 ); if ( preg_match( '/^[KLM]{1}/', $nif ) ) { //NIF especial válido if ( $num[8] == chr( 64 + $n ) ) { $falso = false; } } if ( preg_match( '/^[ABCDEFGHJNPQRSUVW]{1}/', $nif ) && isset ( $num[8] ) ) { echo $num[8] ." == ".chr( 64 + $n )." - " . substr( $n, strlen( $n ) - 1, 1 ); if ( $num[8] == chr( 64 + $n ) || $num[8] == substr( $n, strlen( $n ) - 1, 1 ) ) { //CIF válido $falso = false; } } if ( preg_match( '/^[T]{1}/', $nif ) ) { if ( $num[8] == preg_match( '/^[T]{1}[A-Z0-9]{8}$/', $nif ) ) { //NIE válido (T) $falso = false; } } if ( preg_match( '/^[XYZ]{1}/', $nif ) ) { //NIE válido (XYZ) if ( $num[8] == substr( 'TRWAGMYFPDXBNJZSQVHLCKE', substr( str_replace( array( 'X','Y','Z' ), array( '0','1','2' ), $nif ), 0, 8 ) % 23, 1 ) ) { $falso = false; } } } if ( $falso ) { if ( empty( $_POST['billing_nif'] ) ) { add_action( 'woocommerce_checkout_process', 'validando_campo' ); } else { wc_add_notice( __( 'Por favor, introduzca un NIF/CIF válido.' ), 'error' ); } } } add_action( 'woocommerce_checkout_process', 'validando_campo' );
Como siempre esperamos que este nuevo código os resulte útil y quedamos a la espera de vuestros comentarios, aportes y sugerencias.
Actualización: Hemos solucionado varios errores que hemos detectado en el código publicado originalmente.
Muchas gracias por el código, lo he usado para las versiones anteriores de WP y me está siendo de gran ayuda. Ahora con la versión 2.4 me encontré con algunos problemas y llegué aquí. Aún con este nuevo código me los estoy encontrando, como por ejemplo un orden diferente de los campos en la dirección de facturación y envío, junto con algunos problemas de formato en el apartado de edición de la dirección de envío en el apartado “Mi cuenta” (aparecen los campos de email y teléfono fuera de sitio).
Ya que hemos añadido la posibilidad de tener teléfono y email de envío diferentes de los de facturación, estaría bien poder ver estos datos en la edición del pedido (apartado del administrador de la tienda), así como en el mail de nuevo pedido. Con este código solo aparece el teléfono, no el email.
Muchas gracias por vuestros excelentes códigos. He ido a aplicar esta nueva actualización en un woocommerce de pruebas que estoy haciendo pero me muestra la pantalla blanca del admin cuando subo el archivo functions. Podéis darme alguna sugerencia de como solucionarlo. Muchísimas gracias y seguid así.
Si te devuelve pantallazo en blanco al subir el archivo functions.php, obviamente tienes algún fallo en ese archivo. ¡Revísalo!
Un saludo.
Hol y gracias por el codigo.
Una prunta!.
¿se puede hacer para que el DNI/CIF no sea obligatorio, pero en caso de que se rellene se valide para que quede bien puesto?
Eso me pasa en mi web, tengo clientes que no quieren dar el DNI, pero otros que si quieren factura a su nombre y necesito que lo pongan bien.
No quiero que el dni sea obligatorio, pero necesito que en caso de que se rellene, sea un dato real.
Gracias.
Se puede hacer sin problema. Sólo hay que cambiar el atributo required a false.
Un saludo.
Hola, y gracias por responder.
El valor esta en false, pero el que no se ponga dni da mensaje como que no es un numero válido.
Creo que el problema es que la validación de dni entra en conflicto con que no sea obligatorio, ya que todo lo que no sea un dni verdadero ( caso del 0 o un valor vacio) es considerado como falso.
Lo que no se es como hacer para que la validacion no cuente el 0 o el valor null, o que esos valores sean considerados DNI autenticos.
Gracias
ya lo he arreglado un poco, dentro de la comprobacion del DNI, en la respuesta de falso he puesto esto:
if(empty($_POST[‘billing_nif’])){
add_action( ‘woocommerce_checkout_process’, ‘validando_campo’ );
Quedando asi:
if ( $falso ) {
if(empty($_POST['billing_nif'])){
add_action( 'woocommerce_checkout_process', 'validando_campo' );
}
else{
wc_add_notice( __( 'Por favor, introduzca un NIF/CIF valido.' ), 'error' );
} }
De esta forma, antes de dar un error comprueba que el campo no este vacio, si esta vacio te da un ok y si no te da el mensaje de error.
Pero aun asi falla otra cosa que no me habia fijado.
Resuta que si pones en dni ksifjrhy o algo que tenga menos de 9 letras, te lo da como DNI VALIDO ¿?.
Asi que si en dni pongo :
abcefgh–> DNI OK (menos de 9 caracteres)
abc3–> DNI FALSO tiene menos de 9 caracteres pero contiene un numero
abcdefghijkl–> DNI FALSO
“VACIO”–> DNI OK
Parece que este es una tonteria, pero hay muchos clientes que en el campo dni ponen “no tengo” o no quiero factura, o que ponen la palabra “iva” o “no”.
Efectivamente hay un pequeño fallo.
Añadimos tu pequeña mejora y publicamos el nuevo código con el control necesario para evitar esa trampa.
Muchas gracias por tu aviso.
Un saludo.
Actualizado.
Un saludo.
ok, funciona a la mil maravillas.
Hola,
uso vuestro plugin “APG Weight and Postcode/State/Country Shipping” para configurar los gastos de envío, y me funciona a las mil maravillas. Os felicito.
Ahora quisiera añadir las funcionalidades que explicáis en este post. Tras pegar el código en el archivo functions.php de mi tema, aparecen los campos correctamente pero, tal como comentaba Sergio más arriba, el formato se desconfigura. Os muestro unas capturas de pantalla para que veáis cómo queda.
En el apartado Dirección de facturación de la Caja, queda así:
https://dl.dropboxusercontent.com/u/27366018/caja1.jpg
Me gustaría que el CIF/NIF quedara a la derecha del Nombre de la empresa y que el Correo electrónico quedara junto al Teléfono.
Y en el apartado Dirección de envío de la Caja, queda así:
https://dl.dropboxusercontent.com/u/27366018/caja2.jpg
Como podéis ver, las cajas de Correo electrónico y Teléfono quedan abajo y “descolgadas”. Me gustaría que aparecieran debajo de las cajas de texto Nombre de la empresa-NIF/CIF, y que el formato fuese el mismo.
En la zona de edición del usuario de la Dirección de facturación, queda así:
https://dl.dropboxusercontent.com/u/27366018/factur.jpg
Al igual que comentaba anteriormente, me gustaría que el CIF/NIF quedara a la derecha del Nombre de la empresa y que el Correo electrónico quedara junto al Teléfono. Además, el botón de Guardar cambios está “descolgado”; debería quedar abajo a la izquierda.
En la zona de edición del usuario de la Dirección de envío, queda así:
https://dl.dropboxusercontent.com/u/27366018/envio.jpg
Tal como comentaba antes, las cajas de Correo electrónico y Teléfono quedan abajo y “descolgadas”. Me gustaría que aparecieran debajo de las cajas de texto Nombre de la empresa-NIF/CIF, y que el formato fuese el mismo. Aqui el botón de Guardar cambios aparece bien posicionado.
¿Tenéis alguna solución para esto?
Muchas gracias.
Hola Jorge.
Efectivamente en algunas instalaciones quedan desubicados algunos campos. La única solución que te podemos dar para solucionar tu problema es nuestra Consultoría técnica.
Un saludo.
A la hora de validar el CIF/NIF cuando se trata de un DNI no da problemas pero cuando introduzco un CIF con su letra delante se produce el siguiente mensaje “SyntaxError: Unexpected token =” se os ocurre cual puede ser el problema. Se puede eliminar el proceso de validación, como mal menor?
Gracias y saludos,
¿Puedes mandarnos por correo el CIF que estás probando para hacer algunas pruebas?
Un saludo.
Hola Sixto.
Hemos probado los dos CIF que nos has enviado y nos funciona sin ningún tipo de problema, por lo seguramente el error no te lo está generando nuestro código.
Un saludo.
Muchas gracias por el código, me ha venido genial la verificación del DNI.
Gracias
tambien tengo problemas con campo nif sale esto SyntaxError: Unexpected token = cuando quiero acabar la compra. tengo la ultima version de WordPress 4.3.1 y la ultima version de woocommerce 2.4.10
En principio ese error no tiene nada que ver con el código aquí publicado.
Un saludo.
Hola. Utilizo el plugin de “WooCommerce PDF Invoices & Packing Slips” para generar las facturas / albaranes en PDF. Con vuestro código implementado ocurre que el campo de teléfono de cliente lo imprime dos veces en las facturas/albaranes. Es decir lo repite al final de los datos de cliente, en el encabezado de esta, poniéndolo en dos filas consecutivas ¿Alguna idea?
gracias!
Algo has hecho mal ya que nosotros también utilizamos ese plugin y nos muestra todos los datos de cliente correctamente.
Un saludo.
Goyo, eso se debe a que en la comprobación del NIF/CIF, dentro de la función validando_campo() está esta línea:
echo $num[8] .” == “.chr( 64 + $n ).” – ” . substr( $n, strlen( $n ) – 1, 1 );
eliminala o coméntala con “//” antes. Ha debido quedarse ahí accidentalmente.
Gracias por la ayuda.
Para todos aquellos que les surja el problema “SyntaxError: Unexpected token =” yo lo he solucionado como dice ABermo y añadiendo el return true; else $false=false; ya que al poner el CIF (X00000000) me daba este error, Espero que a alguien le sirva y gracias por este post, Me ha ayudado mucho 😉
if ( preg_match( ‘/^[ABCDEFGHJNPQRSUVW]{1}/’, $nif ) && isset ( $num[8] ) ) {
//echo $num[8] .” == “.chr( 64 + $n ).” – ” . substr( $n, strlen( $n ) – 1, 1 );
if ($num[8] == chr(64 + $n) || $num[8] == substr($n, strlen($n) – 1, 1)) { //CIF válido
return true;
}
else
{
$falso = false;
}
}
amigo gracias pero una pregunta sirve para las versiones del 2018??????????????????????? gracias
Este código está absolutamente obsoleto dado que hace ya muchísimos meses que publicamos el plugin WC – APG NIF/CIF/NIE Field.
Un saludo.
No tengo redes sociales (ni las tendré), y no puedo ver el código por el aviso que hace un blur sobre el mismo. Gran fallo.
Pues sí, no está pensado para casos tan excepcionales como el tuyo 😉
Te mandamos el código al correo electrónico que indicas en tu comentario.
Un saludo.
De todas formas no necesitas el código, sólo necesitas instalar este plugin y tendrás todo el código publicado y mucho más.
Si aún así necesitas el código, por favor pídenoslo al correo electrónico y gustosamente te lo enviamos.
Un saludo.