Jump to content

Override que no funciona.


Recommended Posts

Buenas tardes a todos,

He hecho un override a AdminOrdersController.php.

Lo he puesto en override/controllers/admin con el mismo nombre.

en el original tengo:

class AdminOrdersControllerCore extends AdminController

y en el override:

class AdminOrdersController extends AdminControllerCore

Lo que he hecho es sobre la linea 530 insertar esto para interceptar un cambio en el estado del pedido (para detectar envio)

if (Tools::getValue('id_order_state')==4){
  ?>
  <script>

    var m=window.open("URL_DE_MI_SCRIPT?pedido=<?php echo Tools::getValue('id_order');?>","width=200,height=200, top=0, left=0,scrollbars=NO", '_blank');
    m.focus();
    window.history.back();
  </script>

  <?php
}       

En un PrestaShop de pruebas me abre la ventana del script sin ningún problema pero en otro que estoy trabajando me ignora esto.

Evidentemente borre class_index.php antes.

¿Que se me puede estar escapando?

Gracias

 

Link to comment
Share on other sites

4 hours ago, joseantgv said:

¿Entra en la función sobreescrita? Pon un die al principio.

Si, lo hice. Pantalla en blanco, luego el die() funciona.

También probé a poner el cambio que yo quería en el original, justo después de

} elseif (Tools::isSubmit('submitState') && isset($order)) {

¿¿?? rarisimo.

 

Link to comment
Share on other sites

12 hours ago, joseantgv said:

Pues nada, a debugar ;)

Estás llamando al parent desde el override?

Creo que sí. Pero hize los cambios directamente en el parent para probar, quite el override. El die() funciona pero lo mio nada de nada.

¿Puede algun TPL de algún modulo instalado estar sobreescribiendo algo?

Gracias.

Link to comment
Share on other sites

1 hour ago, joseantgv said:

Es que si llamas al parent es posible que después de tu código se esté ejecutando la función original. El problema está en tu función sobreescrita.

Gracias Jose.

He quitado el override (que el die() funcionaba), y he puesto en varios sitios para probar:

?>
<script>
  alert('Hola');
</script>
<?php

y funciona, el problema es que si lo pongo justo debajo de la linea

22 hours ago, Manuel Sánchez said:

} elseif (Tools::isSubmit('submitState') && isset($order)) {

no hace nada, parece que no pille el cambio de estado del pedido.

 

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...