Create New Item
Item Type
File
Folder
Item Name
Search file in folder and subfolders...
Are you sure want to rename?
File Manager
/
wp-content
/
plugins
/
jet-engine
/
includes
/
modules
/
forms
/
handlers
:
getresponse.php
Advanced Search
Upload
New Item
Settings
Back
Back Up
Advanced Editor
Save
<?php /** * GetResponse Handler */ // If this file is called directly, abort. if ( ! defined( 'WPINC' ) ) { die; } if ( ! class_exists( 'Jet_Engine_Forms_GetResponse_Handler' ) ) { /** * Define Jet_Engine_Forms_GetResponse_Handler class */ class Jet_Engine_Forms_GetResponse_Handler { private $api_base_url = 'https://api.getresponse.com/v3/'; private $api_key = ''; private $api_request_args = array(); /** * Constructor for the class * * @param $api_key */ public function __construct( $api_key ) { if ( empty( $api_key ) ) { return new WP_Error( 'invalid_api_key' ); } $this->api_key = $api_key; $this->api_request_args = array( 'headers' => array( 'X-Auth-Token' => 'api-key ' . $api_key, 'Content-Type' => 'application/json', ), ); } public function request( $end_point, $request_args = array() ) { $args = array_merge_recursive( $this->api_request_args, $request_args ); $response = wp_remote_request( $this->api_base_url . $end_point, $args ); if ( ! $response || is_wp_error( $response ) ) { return false; } $data = wp_remote_retrieve_body( $response ); if ( ! $data ) { return array(); } $data = json_decode( $data, true ); return $data; } public function get_all_data() { return array( 'lists' => $this->get_lists(), 'fields' => $this->get_fields(), ); } public function get_lists() { $result = array(); $lists = $this->request( 'campaigns' ); if ( ! empty( $lists ) ) { foreach ( $lists as $list ) { if ( ! is_array( $list ) ) { continue; } $result[ $list['campaignId'] ] = $list['name']; } } return $result; } public function get_fields() { $result = array( 'email' => array( 'label' => esc_html__( 'Email', 'jet-engine' ), 'required' => true, ), 'name' => array( 'label' => esc_html__( 'Name', 'jet-engine' ), 'required' => false, ), ); $custom_fields = $this->request( 'custom-fields' ); if ( ! empty( $custom_fields ) ) { foreach ( $custom_fields as $field ) { $result[ $field['customFieldId'] ] = array( 'label' => $field['name'], 'required' => false, ); } } return $result; } } }