WP Gravity forms til Zendesk

En tråd i 'PHP, SQL og databaser' startet av Tonny Kluften, 20 Feb 2015.

  1. Tonny Kluften

    Tonny Kluften Administrator

    Innlegg:
    15.964
    Jeg skal lage et kontaktskjema i Wordpress med Gravity Forms som automatisk poster tickets i Zendesk, Men får error.

    Fatal error: Call to undefined function ZD_contactus_curlWrap() in/home/webforum/public_html/webhotell/wp-content/themes/aquamag-child/functions.phpon line49

    Her er koden som limes inn i function.php:
    Kode:
    /*
    * ZENDESK API
    */
    define("ZDAPIKEY", "wEfhLXe7h81qhahahahahahandQRuSZ3g71DzN3ACOw");
    define("ZDUSER", "post@lykkemedia.no");
    define("ZDURL", "https://lykkemedia.zendesk.com/api/v2");
    /*
    * Here goes the Gravity Forms Functions
    */
    add_action("gform_after_submission_1", "send_contact_to_zendesk", 10, 2); // Invoke ZENDESK for form #1
    add_action("gform_after_submission_1", "ult_cu_disable_post_creation", 20, 2); // Disable entry creation for FROM id #1
    /*
    * Deletes entry created in WordPress Dashboard
    */
    function ult_cu_disable_post_creation( $entry, $form ) {
    GFAPI::delete_entry( $entry['id'] );
    }
    /*
    * Prepares and sends data to Zendesk
    */
    function send_contact_to_zendesk($entry,$form){
    $create = json_encode(
    array(
    'ticket' => array(
    'subject' => $entry[1]. '-' .$entry[8], // Title of ticket ids of fields you need in subject field ours was type of request - message title
    'comment' => array(
    "value"=> $entry[2] // content of the ticket
    ),
    'requester' => array(
    'name' => $entry[3], // Name of ticket creator
    'email' => $entry[5] // email of ticket creator
    )
    )
    )
    );
    $return = ZD_contactus_curlWrap("/tickets.json", $create);
    }
    /*
    * Zendesk post function
    * TODO : use wp_remote_post
    */
    function ZD_contact_us_curlWrap($url, $json){
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true );
    curl_setopt($ch, CURLOPT_MAXREDIRS, 10 );
    curl_setopt($ch, CURLOPT_URL, ZDURL.$url);
    curl_setopt($ch, CURLOPT_USERPWD, ZDUSER."/token:".ZDAPIKEY);
    curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
    curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-type: application/json'));
    curl_setopt($ch, CURLOPT_USERAGENT, "MozillaXYZ/1.0");
    curl_setopt($ch, CURLOPT_POSTFIELDS, $json);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_TIMEOUT, 10);
    $output = curl_exec($ch);
    curl_close($ch);
    $decoded = json_decode($output);
    return $decoded;
    }
    
     
  2. spikre

    spikre peterhamre.no

    Innlegg:
    1.308
    Helt enkelt sier meldingen at funksjonen ZD_contactus_curlWrap ikke er definert. Hvor denne er test at skal defineres vet jeg ikke, men det er antagelig i en annen fil, eller noe du har glemt å lime inn fra modulen du har brukt som utgangspunkt.

    Altså; du sier
    PHP:
    $return ZD_contactus_curlWrap("/tickets.json"$create);
    Men hva skal ZD_contactus_curlWrap gjør med de to parameterne?
     
  3. Tonny Kluften

    Tonny Kluften Administrator

    Innlegg:
    15.964
  4. spikre

    spikre peterhamre.no

    Innlegg:
    1.308
    Uten å ha brukt en del tid på dette, kan det se ut som kodesnutten mangler noe (ref lenke). Scriptet bruker ZD_contactus_curlWrap uten at denne er definert.
     
  5. Tonny Kluften

    Tonny Kluften Administrator

    Innlegg:
    15.964
    Ok, fy søren, det var bare en skrivefeil, riktig var:

    $return = ZD_contact_us_curlWrap("/tickets.json", $create);
     
    xdex liker dette.
  6. spikre

    spikre peterhamre.no

    Innlegg:
    1.308
    På en fredag er ikke slikt bare-bare ;)
     

Del denne siden