web-dev-qa-db-fra.com

Formulaire Ninja Rediriger en fonction du contenu du champ de texte

J'utilise Ninja Forms et son extension pour créer des posts front-end. Ils ont une fonction censée vous permettre de rediriger vers une page spécifique en fonction des valeurs du formulaire.

mon but est d'avoir un formulaire, dans lequel l'utilisateur écrit un texte, puis est redirigé vers une URL personnalisée en fonction du test qu'il écrit dans un champ donné du formulaire. Donc quelque chose comme "URL"/[le texte écrit dans le champ donné], j'ai essayé quelque chose comme ça mais ça ne marche pas. Est-ce que quelqu'un pourrait m'aider à ce sujet?

merci d'avance

function change_ninja_forms_landing_page(){
global $ninja_forms_processing; 

$form_id = $ninja_forms_processing->get_form_ID(); 

if( $form_id == 1 ){ 
    $destinationurlslug = $ninja_forms_processing->get_field_value( 1 ); 
    $url = "http://www.blablabla.com";
    $newdestinationurl = $url/$destinationurlslug ;

    // $url now contains our new redirection page. Let's update the form setting.
    $ninja_forms_processing->update_form_setting( 'landing_page', $newdestinationurl ); } } ?>
1
ctz92

Je ne sais pas si vous avez associé cette fonction à une action appropriée. De plus, vous n'avez pas concaténé correctement les chaînes:

Au lieu de $newdestinationurl = $url/$destinationurlslug ;, ce devrait être $newdestinationurl = $url."/".$destinationurlslug ;

Veuillez voir ci-dessous pour le code complet:



function ninja_forms_handler() {
  add_action ( 'ninja_forms_post_process', 'change_ninja_forms_landing_page', 1, 2 );
}
add_action('init', 'ninja_forms_handler');

function change_ninja_forms_landing_page(){
    global $ninja_forms_processing; 

    $form_id = $ninja_forms_processing->get_form_ID(); 

        if( $form_id == 1 ){ 
        $destinationurlslug = $ninja_forms_processing->get_field_value( 1 );         
        $url = "http://www.blablabla.com";
        $newdestinationurl = $url."/".$destinationurlslug ;        
        /* $url now contains our new redirection page. Let's update the form setting. */
        $ninja_forms_processing->update_form_setting( 'landing_page', $newdestinationurl ); 
    }     
}

Assurez-vous que si vous utilisez cette méthode, aucune notification de redirection réelle n'a été créée, sinon elle sera prioritaire. Alors, désactivez simplement le "Message de réussite" de l'onglet "Emails & Actions" de votre formulaire.

2
Prasad Nevase