2015-09-16 13 views
7

Non ho familiarità con i ganci di gravità. Ho creato 2 moduli di processo di iscrizione che sono visualizzati in un singolo modal ma chiamati in div diverse. Volevo inviare questi dati da 2 moduli a un'applicazione di terze parti utilizzando gform_after_submission inviare i dati di ingresso a terze parti dopo aver inviato un modulo specifico (ultimo modulo).Gravity Forms che invia dati di entrata combinati da più moduli a terzi dopo aver inviato un modulo specifico

Tuttavia facendo questo:

add_action('gform_after_submission_2', 'post_to_third_party', 10, 2); 
    function post_to_third_party($entry, $form) { 

    $post_url = 'http://thirdparty.com'; 
    $body = array(
     'first_name' => rgar($entry, '1.3'), 
     'last_name' => rgar($entry, '1.6'), 
     'message' => rgar($entry, '3'), 
    ); 

    $request = new WP_Http(); 
    $response = $request->post($post_url, array('body' => $body)); 
} 

sarà solo mi permette di ottenere campi di immissione dalla forma id specificato.

Come sarebbe possibile che otterrei le voci da altre forme in modo che potessi includere e pubblicarlo su URL di terze parti?

Grazie in anticipo.

+0

Dovresti conoscere gli ID di ingresso in modo da poterli recuperare tramite GFAPI :: get_entry ($ entry_id). – David

+0

ottiene anche le voci da altre forme? –

+0

Sì. Otterrà qualsiasi voce da qualsiasi modulo se si conosce l'ID della voce. – David

risposta

1

Perché si specifica l'ID del modulo nel add_action sé, si esegue solo la funzione quando la gravità Form , con un ID di 2, viene inviato. Se si desidera che venga eseguito per invii multipli, ma poi si limita agli ID forma specifica, quindi qualcosa di più simile a questo:

add_action('gform_after_submission', 'post_to_third_party', 10, 2); 
    function post_to_third_party($entry, $form) { 

    if($form->id == 2 || $form->id == somenumber) { 
     $post_url = 'http://thirdparty.com'; 
     $body = array(
      'first_name' => rgar($entry, '1.3'), 
      'last_name' => rgar($entry, '1.6'), 
      'message' => rgar($entry, '3'), 
     ); 

     $request = new WP_Http(); 
     $response = $request->post($post_url, array('body' => $body)); 
    } 
} 

Potrebbe essere necessario utilizzare $form['id'] nel caso in cui non si tratta con l'oggetto. Uno di loro funzionerà. Il rovescio della medaglia è che devi conoscere l'ID dei moduli con cui vuoi lavorare. Questo si trova facilmente nel backend quando si visualizza la tabella dei moduli che hai creato, ma è quello che è ...

0

Se si salvano i dati form per lo stesso posto forse si può ottenere la data basata su post id