Hola amigos. Estoy intentando que mi tienda distinga a los clientes autónomos/empresa de los que no lo son y aplique el IRPF.
Para ello he creado una nueva tasa en los ajustes de WooCommerce que he llamado "Autonomos" en la cual he creado las filas correspondientes para el IVA y para el IRPF como impuesto negativo.
Después mediante hooks he creado una chekbox que he configurado como no requerida, porque no todos mis clientes serán autónomos.
Después de esto realizo el proceso de validación de la checkbox para que, en caso de que esté marcada, me aplique la nueva tasa que he creado, en lugar de la tasa "estándar".
Pero obviamente he omitido algo o estoy utilizando un hook equivocado porque aunque actualizo la página no me carga la nueva tasa que he creado. ¿Alguna idea?
Mi web es https://prueba.unifilomedia.net
Os pego a continuación el código que he colocado en el child theme en el archivo functions.php
"
/*MODIFICACIÓN DE LA PÁGINA DE CHECKOUT PARA AUTÓNOMOS*/
/*1)AQUÍ AÑADO LA CASILLA PARA AUTÓNOMOS*/
add_action('woocommerce_after_checkout_billing_form', 'anado_casilla_autonomo');
function anado_casilla_autonomo( $checkout) {
woocommerce_form_field( 'my_checkbox_autonomo', array(
'type' => 'checkbox',
'class' => array('input-checkbox'),
'label' => __('Soy autónomo/empresa'), // Pone el mensaje despues del checkbox
'required' => false, // El cliente puede no ser autónomo
), $checkout->get_value( 'my_checkbox_autonomo' ));
}
/*2)AQUÍ VALIDO Y ACTÚO EN CONSECUENCIA*/
add_filter( 'woocommerce_product_get_tax_class', 'valido_casilla_autonomo', 1,2 );
add_filter( 'woocommerce_product_variation_get_tax_class', 'valido_casilla_autonomo', 1, 2 );
add_action('woocommerce_checkout_update_order_meta', 'valido casilla autonomo',2,2);
function valido_casilla_autonomo($tax_class,$product) {
global $woocommerce;
if ((int) isset($_POST['my_checkbox_autonomo'])){
// AQUÍ TENDRÍA QUE RECUPERAR EL TOTAL Y APLICARLE EL IRPF.
// POSTERIORMENTE TENDRÍA QUE VOLCARLO DE NUEVO EN EL TOTAL Y ACTUALIZAR
//VOY A VER SI ME VALE CON ESTO
$tax_class = 'AUTONOMOS';
}
return $tax_class;
}
"
Muchas gracias de antemano.
Un saludo virtual 🙂
Contenido solo visible a usuarios registrados
Hola Carmen.
Hay un plugin para Autónomos que te puede servir para lo que buscas:
-> https://es.wordpress.org/plugins/autonomos/
Es posible que tengas que crear roles de usuario para diferenciar entre un usuario normal y el profesional.
Para crear roles puedes utilizar el siguiente plugin:
-> https://es.wordpress.org/plugins/user-role-editor/
Un saludo
Hola Pepe. Conozco el plugin que dices pero parece que está olvidado desde que instalé WordPress. Prefiero hacerlo con código. Gracias de antemano.
Hola Carmen.
No es un proyecto terminado y sigue recibiendo actualizaciones, la última es de hace 5 meses pero porqué no necesita ninguna actualización de código.
.- Instalas el plugin y en ajustes de WooCommerce -> Autónomos activas la casilla y añades el IRPF:
Una vez eso cuando un usuario se registre o haga una compra vera una casilla para seleccionar si es autonomo
En el foro no damos soporte de código, esa clase de soporte se da a través de colaboradores:
-> https://www.webempresa.com/directorio-colaboradores.html
En este enlace tienes las normas del foro donde ya se explica que no damos ese soporte:
-> https://www.webempresa.com/reglas.html
Ten en cuenta que cada Web es distinta y las modificaciones o códigos que se añadan pueden dañar la web, por eso no damos esa clase de soporte.
Un saludo
De acuerdo Pepe. Ya lo he activado. Ahora tengo otro problemilla. El plugin "Autónomos" me genera un campo para el NIF, CIF, NIE opcional. Yo ya tenía un plugin "WC APG Campo NIF/CIF/NIE" para introducir ese mismo campo, pero de forma obligatoria. Así que ahora en la página de "Finalizar Compra" tengo el mismo campo por duplicado. ¿Sería posible eliminar el campo NIF/CIF/NIE opcional? Adjunto Captura. Muchas gracias de antemano.
Un saludo virtual 🙂
Hola Carmen,
Podrías probar ocultarlo con el siguiente codigo CSS, debes añadirlo en el apartado Apariencia -> Personalizar -> CSS Adicional
#billing_user_dni_field {
display: none !important;
}
Debes comprobar si al ocultar este campo no afecta al funcionamiento que deseas añadir.
Un Saludo
Hola Carmen,
Enhorabuena funciona, siempre encantados de poder ayudarte.
Coméntanos si con esto podemos dar el tema como solucioando
Un Saludo 😊
Me ha durado poco la felicidad. Funciona todo bien si compro como particular, pero si compro como "Autónomo" me da error si no relleno la casilla del DNI, a pesar de que en el código del plugin está puesto como no requerido, así que no sé qué hacer. Mi gozo en un pozo. ¿Alguna idea?
Un saludo virtual 😀
Hola otra vez. Si no relleno ningún campo de DNI y no oculto el código con CSS me salen dos Mensajes de error Uno del plugin que yo tenía del plugin del DNI y otro del plugin de autónomos. 😳
Hola Carmen,
En este caso puede ser que el plugin requiera de esta campo para determinar la acción de tu web aun cuando no lo solicite como requerido, prueba habilitar nuevamente este campo y deshabilita el antiguo que tienes marcado como requerido.
Luego verifica si al introducirlo todo funciona de forma correcta.
Nos comentas como ha ido todo
Un Saludo
Hola de nuevo. He desactivado el plugin que yo tenía de DNI y he probado sólo con el plugin "Autónomos" y no valida el campo DNI, es más sólo le preocupa que esté relleno o no. He puesto "Pepito" y le ha parecido de perlas. Estoy otra vez en la casilla de salida. Según me informan en el repositorio el plugin no ha sido probado con mi versión de WordPress. Francamente no sé qué hacer.
Un saludo 😀
Hola Carmen,
Entiendo que el campo funciona ya que valida no este vació aunque cuando indique es opcional, por ejemplo
Ten en cuenta que este campo debe aceptar números y letras por ello si colocas letras no te va a generar ningún error.
Un Saludo
Pero debería no está filtrando el tipo de datos. No sólo tiene que no estar vacío, sino que tiene que ser un DNI válido que te sirva para la factura y eso no lo hace este plugin, el otro sí. Gracias de antemano.
Un saludo 😀