¿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?
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 (
- hacer atributos como no requeridos en
eav attributes
tabla en la base de datos, - 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
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.