¿Cómo puedo hacer que los cuadros de entrada de la dirección no sean necesarios en la página de revisión de PayPal Express?

magento.stackexchange https://magento.stackexchange.com/questions/12667

  •  16-10-2019
  •  | 
  •  

Pregunta

Entonces, como sugiere mi título.

Estoy familiarizado con cómo hacer esto en la facturación en el pago de una página (

  1. hacer atributos como no requeridos en eav attributes tabla en la base de datos,
  2. copia el Customer/Model/Address.php EDICIÓN DE ARCHIVO La validación relevante en el método 'Validar').

Sin embargo, esto no ha ayudado en la página de revisión de PayPal Express y no permitirá que el usuario revise que indique:

"Dirección de facturación incorrecta. Se requiere City Field"

Debe haber un archivo similar (para Abstract.php) que valida los datos antes del envío, pero no puedo rastrearlos. Cualquiera que pueda o ya sepa, por favor, preste atención a la llamada: la comunidad bien puede beneficiarse de esto y de mí mismo. Cualquier información adicional necesita avisarme. Gracias

¿Fue útil?

Solución

Odio publicar respuestas a mis propias preguntas, pero parece que, como el que lo necesita, más presionantemente he recorrido la distancia aquí ... como suele ser el caso ...

Entonces, después de probar numerosas técnicas, incluyendo:

1) hacer atributos como no requeridos en el eav attributes tabla en la base de datos;

2) Agregar programáticamente estos campos requeridos a la base de datos al actualizar la actualización (con el evento)

Lo mejor que he creado que funciona (muy bien) es crear campos ocultos para cualquier campo que sea requerido pero no relevante, en mi caso. city, region y postcode - e inclúyalos dentro del formulario. La forma más fácil de hacer esto, creo que es crear una función para esto en un archivo de módulo personalizado como SO (cambiando $inputFields_arr Para corresponder a los campos requeridos que desea ignorar):

public function getRequiredNotRequestedInputs($prefix) { // fill in input values required but not wanted
    $value = 'NOT REQUESTED';
    $inputFields_arr = array('city', 'region', 'postcode'); // required fields that we don't need/request
    foreach($inputFields_arr as $inputField) {
        $return_arr[] = '<input type="hidden" name="'.$prefix.'['.$inputField.']" id="'.$prefix.':'.$inputField.'" value="'.$value.'" />';
    }
    return implode('',$return_arr);
}

Entonces llame a esto así:

<?php echo $moduleFile->getRequiredNotRequestedInputs('billing'); // set city, postcode, etc ?>

.. desde el punto que quieras (donde $moduleFile es el archivo en el que almacena la función anterior). En mi caso, he llamado a esto en:

app/design/frontend/default/YOUR-TEMPLATE/template/YOUR-CUSTOM-LAYOUT/checkout/billing.phtml

Sé que hay aquellos por ahí que querrán hacer esto de la manera rápida y desagradable (y esa es su perogativa) colocando los campos ocultos directamente en un archivo front-end local (y anulando el núcleo) pero después de aprender a usar Los módulos personalizados con todo lo que puedas, no solo te ayudará a actualizar (un sermón bien escuchado), mantendrá las cosas ordenadas y para mí eso es más de la mitad de la batalla. Espero que esto sea útil para los demás.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a magento.stackexchange
scroll top