PATH:
home
/
letacommog
/
camarsac
/
wp-content
/
plugins
/
jet-engine
/
includes
/
modules
/
forms
/
handlers
<?php /** * MailChimp Handler */ // If this file is called directly, abort. if ( ! defined( 'WPINC' ) ) { die; } if ( ! class_exists( 'Jet_Engine_Forms_MailChimp_Handler' ) ) { /** * Define Jet_Engine_Forms_MailChimp_Handler class */ class Jet_Engine_Forms_MailChimp_Handler { private $api_base_url = ''; private $api_key = ''; private $api_request_args = array(); public $success_statuses = array( 'subscribed', 'pending' ); /** * Constructor for the class * * @param $api_key */ public function __construct( $api_key ) { if ( empty( $api_key ) ) { return new WP_Error( 'invalid_api_key' ); } $api_key_data = explode( '-', $api_key ); if ( empty( $api_key_data[1] ) || 0 !== strpos( $api_key_data[1], 'us' ) ) { return new WP_Error( 'invalid_api_key' ); } $this->api_key = $api_key; $this->api_base_url = sprintf( 'https://%s.api.mailchimp.com/3.0/', $api_key_data[1] ); $this->api_request_args = array( 'headers' => array( 'Authorization' => 'Basic ' . base64_encode( 'user:' . $this->api_key ), ), ); } 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() { $lists = $this->get_lists(); $groups = array(); $fields = array(); foreach ( $lists as $list_id => $list_name ) { $groups[ $list_id ] = $this->get_groups( $list_id ); $fields[ $list_id ] = $this->get_fields( $list_id ); } return array( 'lists' => $lists, 'groups' => $groups, 'fields' => $fields, ); } public function get_lists() { $result = array(); $lists = $this->request( 'lists?count=999' ); if ( ! empty( $lists['lists'] ) ) { foreach ( $lists['lists'] as $list ) { $result[ $list['id'] ] = $list['name']; } } return $result; } public function get_groups( $list_id ) { $groups = array(); $categories = $this->request( 'lists/' . $list_id . '/interest-categories?count=999' ); if ( ! empty( $categories['categories'] ) ) { foreach ( $categories['categories'] as $category ) { $interests = $this->request( 'lists/' . $list_id . '/interest-categories/' . $category['id'] . '/interests?count=999' ); foreach ( $interests['interests'] as $interest ) { $groups[] = array( 'value' => $interest['id'], 'label' => $category['title'] . ' - ' . $interest['name'], ); } } } return $groups; } public function get_fields( $list_id ) { $result = array( 'email' => array( 'label' => esc_html__( 'Email', 'jet-engine' ), 'required' => true, ) ); $merge_fields = $this->request( 'lists/' . $list_id . '/merge-fields?count=999' ); if ( ! empty( $merge_fields['merge_fields'] ) ) { foreach ( $merge_fields['merge_fields'] as $field ) { $result[ $field['tag'] ] = array( 'label' => $field['name'], 'required' => $field['required'], ); } } return $result; } } }
[+]
..
[-] mailchimp.php
[edit]
[-] getresponse.php
[edit]