<?php
// Exit if accessed directly
if ( ! defined( 'ABSPATH' ) ) {
    exit;
}
 
class eztoc_pointers {
	public function __construct () {
		add_filter( 'eztoc_localize_filter',array($this,'eztoc_add_localize_footer_data'),10,2);
		add_action('wp_ajax_eztoc_subscribe_newsletter',array($this, 'eztoc_subscribe_for_newsletter'));
	}

	public function eztoc_subscribe_for_newsletter() {

		if ( ! isset( $_POST['eztoc_security_nonce'] ) || ! wp_verify_nonce( sanitize_text_field( wp_unslash( $_POST['eztoc_security_nonce'] ) ), 'eztoc_ajax_check_nonce' ) ) {
			wp_send_json_error( esc_html__( 'Security check failed.', 'easy-table-of-contents' ) );
		}

		if ( ! current_user_can( 'manage_options' ) ) {
			wp_send_json_error( esc_html__( 'Insufficient permissions.', 'easy-table-of-contents' ) );
		}

		$api_url = 'https://magazine3.company/wp-json/api/central/email/subscribe';

		$api_params = array(
			'name' 		=> isset($_POST['name'] ) ? sanitize_text_field(wp_unslash( $_POST['name'])): '',
			'email'		=> isset($_POST['email'] ) ? sanitize_email(wp_unslash($_POST['email'])) : '',
			'website'	=> isset($_POST['website']) ? sanitize_text_field(wp_unslash( $_POST['website'])):'',
			'type'		=> 'etoc'
		);

		$response = wp_remote_post( $api_url, array( 'timeout' => 15, 'sslverify' => true, 'body' => $api_params ) );
		$response = wp_remote_retrieve_body( $response );
		$response = json_decode( $response, true );
		echo wp_json_encode( array( 'response' => $response['response'] ) );

		wp_die();
	}
	public function eztoc_add_localize_footer_data( $object, $object_name ) {
            
        $dismissed = explode ( ',', get_user_meta ( wp_get_current_user()->ID, 'dismissed_wp_pointers', true ) );
        $do_tour   = !in_array ( 'eztoc_subscribe_pointer', $dismissed );
     
        if ( $object_name == 'eztoc_admin_data' ) {
                global $current_user;                
				$tour     = array();
                // phpcs:ignore WordPress.Security.NonceVerification.Recommended -- Reason: We are not processing form information but only loading it inside the admin_enqueue_scripts.
                $tab      = isset( $_GET['tab'] ) ? sanitize_text_field( wp_unslash( $_GET['tab'] ) ) : '';
                
                if ( ! array_key_exists( $tab, $tour ) ) {
			                                           			            	
                        $object['do_tour']            = $do_tour;        
                        $object['get_home_url']       = get_home_url();                
                        $object['current_user_email'] = $current_user->user_email;                
                        $object['current_user_name']  = $current_user->display_name;        
						$object['displayID']          = '.settings_page_table-of-contents';                        
                        $object['button1']            = esc_html__( 'No Thanks', 'easy-table-of-contents' );
                        $object['button2']            = false;
                        $object['function_name']      = '';  
						$object['translable_txt']['using_eztoc']        = esc_html__('Thank You for using Easy TOC!', 'easy-table-of-contents');  
						$object['translable_txt']['do_you_want']        = esc_html__('Do you want the latest update on', 'easy-table-of-contents');  
						$object['translable_txt']['sd_update']       	= esc_html__(' Easy TOC ', 'easy-table-of-contents');  
						$object['translable_txt']['before_others']      = esc_html__('before others and some best resources on Easy TOC in a single email? - Free just for users of Easy TOC!', 'easy-table-of-contents');  

		}
		                                                                                                                                                    
        }
        return $object;
         
    }
}
$eztoc_pointers = new eztoc_pointers();