Soporte » Plugins y Hacks » Formulario Admin redireccion

  • Buenos dias.

    Quiero empezar a familiarizarme con plugin y estoy creando uno el cual lo podeis ver aqui:

    https://bitbucket.org/mariogarciait/wp-under-construction/

    El problema que tengo y q no consigo encontrar solucion es a la hora de procesar el formulario de administrador para pasar las nuevas opciones. No se produce el redireccionamiento adecuadmente y se queda la pantalla en blanco.

    Alguien sabe pq sucede?

    No se si esta relacionado con este warning

    [18-Dec-2020 11:45:18 UTC] PHP Warning: Cannot modify header information – headers already sent by (output started at /var/www/html/wp-content/plugins/wp-under-construction/includes/admin/save-options.php:1) in /var/www/html/wp-admin/includes/misc.php on line 1310

    Un saludo

    La página con la que necesito ayuda: [accede para ver el enlace]

Viendo 4 respuestas - de la 1 a la 4 (de un total de 4)
  • Hola @mgm2030

    Lo que sucede es que wp_redirect tiene que usarse antes de definir los headers.
    Revisa esto y utiliza el mas adecuado; https://codex.wordpress.org/Plugin_API/Action_Reference#Actions_Run_During_an_Admin_Page_Request

    Iniciador del debate mgm2030

    (@mgm2030)

    Hola Kallookoo

    Gracias por tu respuesta.

    Me preguntaba de que manera ese link me puede ayudar a resolver el problema. Me puedes orientar?

    He seguido indagando y he visto algunos ejemplos como:

    https://premium.wpmudev.org/blog/handling-form-submissions/

    donde practicamente es lo que he hecho yo. El autor dice:

    The Form Handler for the POST request

    At this stage, if you submit the form, you’ll be redirected to an empty page with the page URL set to the admin-post.php. This is because there is no form handler to process the request yet. To process the request, I registered my custom handler the_form_response in the define_admin_hooks() method of class-init.php like this:

    Es exactamente el problema que tengo y practicamente hacemos lo mismo. Usamos wp_redirect.

    Alguna idea?

    Muchas gracias por todo y feliz navidad.

    Hola @mgm2030

    Veamos, ese link que te comente se usa para saber en que orden se ejecutan y decidir cual seria el mas apropiado, unos de los errores mas comunes cuando se crea un theme o plugin es cargar todo o casi todo usando el hook init, provocando que se carguen x cosas cuando no seria necesario y en algunos casos incluso creadondo problemas con el propio WordPress o algun otro plugin, theme.
    Lo mas importante es saber declarar cuando y como se registra o carga tu classes o functions que es lo que parece que usas, yo no soy nadie para decirte si esta bien o no, pero si te comentare que tengas presente en intentar registrar, añadir, cargar, etc.. solo cuando sea necesario y unificar tu codigo para que sea mas facil el mantenimiento y que otros puedan entenderlo mejor. Revisa el handbook donde te sugieren o definen algunas pautas que seguir.

    Sobre el wp_redirect basicamente como te comente antes se tiene que usar antes de que el WordPress defina los headers, solo vi tu codigo por encima pero cualquier hook antes del send_headers se podria usar, personalmente yo suelo usar el load-$page ya que asi solo se ejecuta en la pagina que yo defina previamente.

    Iniciador del debate mgm2030

    (@mgm2030)

    Hola Kallookoo.

    la funcion que contiene el wp_redirect es ucmg_save_options y es llamada en admin_init (previo al send_headers).
    El plugin q estoy haciendo es sencillo. Lo hago para coger experiencia.

    Mirare el handbook. Gracias por los consejos.

Viendo 4 respuestas - de la 1 a la 4 (de un total de 4)
  • Debes estar registrado para responder a este debate.