Borre solo algunos valores de los campos de pago en Woocommerce

2 minutos de lectura

Borre solo algunos valores de los campos de pago en
jamiemsm

En Woocommerce estoy tratando de borrar los campos de pago. por lo tanto, cuando un usuario que ha pedido algo antes y ahora vuelve a pedir algo, tendrá que volver a escribir toda su información.

estoy usando este código

function clear_checkout_fields($input){
return '';
}

add_filter( 'woocommerce_checkout_get_value' , 'clear_checkout_fields' , 1);

Ahora este código está borrando todos los campos, pero también cambia mi IVA para que se muestre como 0.

¿Alguien sabe una solución para esto?

  • @dipmala Esta pregunta no tiene nada que ver con el hilo vinculado y no es un duplicado.

    – LoicTheAztec

    11 de junio de 2018 a las 10:29

  • cual es el atributo name para su campo de pago personalizado de IVA, por favor?

    – LoicTheAztec

    11/06/2018 a las 10:30

Borre solo algunos valores de los campos de pago en
LoicTheAztec

Hay algunos errores de argumentos en su woocommerce_checkout_get_value función enganchada.
De hecho, hay 2 argumentos:

  • los $value argumento que se devuelve como un gancho de filtro,
  • los $imput argumento que puede usar para apuntar a cualquier campo de pago.

Así que en tu caso usarás el $imput argumento, para evitar que se vacíe su campo de pago de IVA personalizado. En el siguiente código, deberá reemplazar vat_number por el campo correcto name atributo que se establece en su campo de pago de IVA personalizado:

add_filter( 'woocommerce_checkout_get_value' , 'clear_checkout_fields' , 10, 2 );
function clear_checkout_fields( $value, $input ){
    if( $input != 'vat_number' )
        $value="";
    
    return $value;
}

El código va en el archivo function.php de su tema secundario activo (o tema activo). Probado y funciona.

  • ¡Gracias! ¡Esto funcionó! Una pregunta de seguimiento. ¿Cómo harías esto para múltiples campos?

    – Stanley Tan

    22 de julio de 2020 a las 0:55


  • @StanleyTan Puedes hacerlo con la función in_array() como: if ( ! in_array( $input, array( 'vat_number', 'something' ) ) ) { o if ( in_array( $input, array( 'vat_number', 'something' ) ) ) { dependiendo de lo que quieras…

    – LoicTheAztec

    22 de julio de 2020 a las 1:14


¿Ha sido útil esta solución?

Esta web utiliza cookies propias y de terceros para su correcto funcionamiento y para fines analíticos y para mostrarte publicidad relacionada con sus preferencias en base a un perfil elaborado a partir de tus hábitos de navegación. Al hacer clic en el botón Aceptar, acepta el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos. Configurar y más información
Privacidad