HEX
Server: nginx/1.24.0
System: Linux DGT-WORDPRESS-VM-SERVER 6.14.0-1014-azure #14~24.04.1-Ubuntu SMP Fri Oct 3 20:52:11 UTC 2025 x86_64
User: ubuntu (1000)
PHP: 8.4.12
Disabled: NONE
Upload Files
File: /mnt/data/doccure-wp/wp-content/plugins/doccure/libraries/mailchimp/class-mailchimp.php
<?php
if (!class_exists('doccure_MailChimp')) {

    class doccure_MailChimp {

        function __construct() {
            add_action('wp_ajax_nopriv_doccure_subscribe_mailchimp', array(&$this, 'doccure_subscribe_mailchimp'));
            add_action('wp_ajax_doccure_subscribe_mailchimp', array(&$this, 'doccure_subscribe_mailchimp'));
        }
		
		public function doccure_mailchimp_form() {
			$counter = 0;
            $counter++;
            ?>
            <form class="dc-formtheme dc-formnewsletter comingsoon-newsletter" id="mailchimpwidget_<?php echo intval($counter); ?>">
				<fieldset>
					<div class="form-group">
						<input type="email" name="email" value="" class="form-control"  placeholder="<?php esc_attr_e('Enter your email', 'doccure_core'); ?>" required="">
						<button type="submit" class="subscribe_me" data-counter="<?php echo intval($counter); ?>"><i class="lnr lnr-arrow-right"></i></button>
					</div>
				</fieldset>
			</form>
            <?php
        }
		
        /**
         * @get Mail chimp list
         *
         */
        public function doccure_mailchimp_list($apikey) {
			if ( $apikey <> '' && $apikey !== 'Add your key here' ) {
				$apikey	= $apikey;
			} else{
				return '';
			}
			
            $MailChimp = new doccure_OATH_MailChimp($apikey);
            $mailchimp_list = $MailChimp->doccure_call('lists/list');
            return $mailchimp_list;
        }

        /**
         * @get Mail chimp list
         *
         */
        public function doccure_subscribe_mailchimp() {
            global $counter,$doccure_options;
            $mailchimp_key 		= '';
            $mailchimp_list 	= '';
            $json 				= array();

			$mailchimp_key = !empty( $doccure_options['mailchimp_key'] ) ? $doccure_options['mailchimp_key']  : '';
			$mailchimp_list = !empty( $doccure_options['mailchimp_list'] ) ? $doccure_options['mailchimp_list']  : '';
			

            if (empty($_POST['email'])) {
                $json['type'] 		= 'error';
                $json['message'] 	= esc_html__('Email address is required.', 'doccure_core');
                wp_send_json($json);
            }
			
            //security check
            $do_check = check_ajax_referer('ajax_nonce', 'security', false);
            if ($do_check == false) {
                $json['type'] = 'error';
                $json['message'] = esc_html__('Security check failed, this could be because of your browser cache. Please clear the cache and check it againe', 'doccure_core');
                wp_send_json($json);
            }

			if (isset($_POST['email']) && !empty($_POST['email']) && $mailchimp_key != '') {
                
				if ($mailchimp_key <> '' && $mailchimp_key !== 'Add your key here') {
                    $MailChimp = new doccure_OATH_MailChimp($mailchimp_key);
                } else{
					$json['type'] 		= 'error';
                	$json['message'] 	= esc_html__('Some error occur,please try again later.', 'doccure_core');
					wp_send_json($json);
				}

                $email = $_POST['email'];

                if (isset($_POST['fname']) && !empty($_POST['fname'])) {
                    $fname = $_POST['fname'];
                } else {
                    $fname = '';
                }

                if (isset($_POST['lname']) && !empty($_POST['lname'])) {
                    $lname = $_POST['lname'];
                } else {
                    $lname = '';
                }

                if (trim($mailchimp_list) == '') {
                    $json['type'] = 'error';
                    $json['message'] = esc_html__('No list selected yet! please contact administrator', 'doccure_core');
                    wp_send_json($json);
                }

                //https://apidocs.mailchimp.com/api/1.3/listsubscribe.func.php
                $result = $MailChimp->doccure_call('lists/subscribe', array(
                    'id' => $mailchimp_list,
                    'email' => array('email' => $email),
                    'merge_vars' => array('FNAME' => $fname, 'LNAME' => $lname),
                    'double_optin' => false,
                    'update_existing' => false,
                    'replace_interests' => false,
                    'send_welcome' => true,
                ));
				
                if ($result <> '') {
                    if (isset($result['status']) and $result['status'] == 'error') {
                        $json['type'] 		= 'error';
                        $json['message'] 	= $result['error'];
                    } else {
                        $json['type'] 		= 'success';
                        $json['message'] 	= esc_html__('Subscribe Successfully', 'doccure_core');
                    }
                }
				
            } else {
                $json['type'] = 'error';
                $json['message'] = esc_html__('Some error occur,please try again later.', 'doccure_core');
            }
			
            wp_send_json($json);
        }

    }

    new doccure_MailChimp();
}