Suport » Module și hacking » [Modul: Formidable] Redirecţionare după trimitere

  • Folosind formularul Formidable, după trimiterea mesajului se afişează un text predefinit de genul „Mulţumim”.

    Doresc ca după trimitere utilizatorul să fie redirecţionat către o altă pagină.

    Am găsit instrucţiuni despre cum este posibil acest lucru pe pagina oficială a modulului, însă nu am cunoştinţele necesare pentru a le implementa.

    you can do it with a little additional code. You can add this into a new plugin or your theme functions fle.

    add_action('frm_after_create_entry', 'your_function_name', 25 );
    function your_function_name($entry_id){
      global $frm_entry;
      $entry = $frm_entry->getOne($entry_id);
      if ($entry->form_id == INSERT YOUR FORM ID HERE){
       die("<script type='text/javascript'>window.location='http://yoursite.com/success_page' </script>");
      }
    }

    Unde anume trebuie introdus acest cod ?

Vizualizare 11 răspunsuri - 1 la 11 (din 11 în total)
  • your theme functions fle

    Mai exact în fișierul unde se află șablonul tău functions.php

    functions.php are multe intrări. Am încercat deja asta dar nu a funcţionat.

    Trebuie codul pus între

    <?php
    ?>

    ?

    Contează numele pe care îl dau funcţiei?

    E copy/paste la ce ai mai sus.
    Da, trebuie pus

    <?php
    ?>

    Am încercat; nicio schimbare.
    Poate îmi scapă ceva…

    add_action('frm_after_create_entry', 'your_function_name', 25);

    25 trebuie schimbat.
    La fel și: http://yoursite.com/success_page

    die("<script type='text/javascript'>window.location='http://yoursite.com/success_page' </script>");

    La fel şi INSERT YOUR FORM ID HERE.

    Nu ştiu ce reprezintă 25, cu ce trebuie schimbat ?

    25 a rămas aşa. Am reuşit până la urmă; codul trebuia introdus chiar în modul – formidable.php

    Aveţi vreo idee cum aş putea întârzia redirecţionarea cu câteva secunde ?

    Teoretic o soluție ar fi:
    die("<script type='text/javascript'>setTimeout(window.location='http://yoursite.com/success_page', 500);</script>");
    unde 500 e numărul de milisecunde.

    Asta în loc de:
    die("<script type='text/javascript'>window.location='http://yoursite.com/success_page' </script>");

    În primul rând mulţumesc pentru timpul şi sfaturile acordate până acum. Ştiu că faceţi asta din pasiune şi apreciez efortul enorm.

    Am încercat cu 5000 dar nu se întâmplă nimic. Ca şi cum nu aş fi modificat codul deloc.

    Versiunea php:

    add_action('frm_after_create_entry', 'your_function_name', 25 );
    function your_function_name($entry_id){
      global $frm_entry;
      $entry = $frm_entry->getOne($entry_id);
      if ($entry->form_id == INSERT YOUR FORM ID HERE){
       sleep(5);
       die("<script type='text/javascript'>window.location='http://yoursite.com/success_page' </script>");
      }
    }

    Folosind http://php.net/manual/en/function.sleep.php

    Cele 5 secunde întârzie trimiterea mesajului. După apăsarea butonului „Trimite” mesajul nu pleacă imediat ci aşteaptă 5 secunde; se face apoi trimiterea după care redirecţionarea are loc instant.

    Ar trebui ca timpul definit să se scurgă după trimiterea mesajului.

Vizualizare 11 răspunsuri - 1 la 11 (din 11 în total)
  • Subiectul ‘[Modul: Formidable] Redirecţionare după trimitere’ este închis pentru noi răspunsuri.