MP_Addon_Payoff_Callback

Class MP_Addon_Payoff_Callback.


Source Source

File: calculator-mortgage-payoff-add-on/inc/MP_Addon_Payoff_Callback.php

class MP_Addon_Payoff_Callback {


	/**
	 * Main settings.
	 *
	 * @var mixed|void
	 *
	 * @since 1.0.0
	 * @access private
	 */
	private $settings;



	/**
	 * Mortgage Payoff Calculator settings.
	 *
	 * @var mixed|void
	 *
	 * @since 1.0.0
	 * @access private
	 */
	private $calculator_settings;


	/**
	 * Callback constructor.
	 *
	 * @since 1.0.0
	 * @access public
	 */
	public function __construct() {

		$this->settings = get_option( MortgagePlatform::$domain );
		$this->calculator_settings = get_option(MortgagePlatform::$prefix . 'mortgage_payoff_calculator');
	}



	/**
	 * AJAX request calculate.
	 *
	 * @since 1.0.0
	 * @access public
	 */
	public function calculate() {

		MP_Callback::check_nonce( $_POST['nonce'], MortgagePlatform::$prefix . 'nonce' );


		$years_remaining           = sanitize_text_field( $_POST['years_remaining'] );
		$original_term           = sanitize_text_field( $_POST['original_mortgage_term'] );
		$original_amount           = sanitize_text_field( $_POST['original_mortgage_amount'] );
		$additional_principal           = sanitize_text_field( $_POST['additional_principal_payment'] );
		$annual_interest_rate           = sanitize_text_field( $_POST['annual_interest_rate'] );
		$amortization = sanitize_text_field( $_POST['amortization'] );

		$response =array();
		if ( $years_remaining == 0 ) {
			$response['error']       = 1;
			$response['error_field'] = 'years_remaining';
			$response['message']     = $this->calculator_settings['years_remaining_error'];
		} elseif ( $original_term == 0 ) {
			$response['error']       = 1;
			$response['error_field'] = 'original_mortgage_term';
			$response['message']     = $this->calculator_settings['original_mortgage_term_error'];
		} elseif ( $years_remaining > $original_term ) {
			$response['error']       = 1;
			$response['error_field'] = 'years_remaining';
			$response['message']     = $this->calculator_settings['calculate_error'];
		} elseif ( $original_amount == 0 ) {
			$response['error']       = 1;
			$response['error_field'] = 'original_mortgage_amount';
			$response['message']     = $this->calculator_settings['original_mortgage_amount_error'];
		} elseif ( $additional_principal == 0 ) {
			$response['error']       = 1;
			$response['error_field'] = 'additional_principal_payment';
			$response['message']     = $this->calculator_settings['additional_principal_payment_error'];
		} elseif ( $annual_interest_rate == 0 ) {
			$response['error']       = 1;
			$response['error_field'] = 'annual_interest_rate';
			$response['message']     = $this->calculator_settings['annual_interest_rate_error'];
		}


		if ( $response['error'] == 1 ) {
			header( "content-type: application/json" );
			echo json_encode( $response );
			wp_die();
		}

		$response = MP_Addon_Payoff_Calculate::calculate( $years_remaining, $original_term, $original_amount, $additional_principal, $annual_interest_rate, $amortization );


		$this->calc_cookies($years_remaining, $original_term, $original_amount, $additional_principal, $annual_interest_rate, $amortization);

		header( 'Access-Control-Allow-Origin: *' );
		wp_send_json( $response );


	}



	protected function calc_cookies ($years_remaining, $original_term, $original_amount, $additional_principal, $annual_interest_rate, $amortization) {

		$calcCookies = array(
			"years_remaining"              => $years_remaining,
			"original_mortgage_term"       => $original_term,
			"original_mortgage_amount"     => $original_amount,
			"additional_principal_payment" => $additional_principal,
			"annual_interest_rate"         => $annual_interest_rate,
			"amortization"                 => $amortization
		);


		if ( $this->settings['enable_cookie'] && ! MP_Cookies::get_cookie( 'mortgagepayofflead' ) ) {
			add_action( 'init', MP_Cookies::set_cookies( "mortgagepayofflead", '0' ) );
		}

		if ( $this->settings['enable_cookie'] ) {
			add_action( 'init', MP_Cookies::set_cookies( "mortgage_payoff_calculator", $calcCookies ) );
		} else {
			MP_Cookies::delete_cookies( "mortgage_payoff_calculator" );
		}
	}


	/**
	 * Callback AJAX calculate.
	 *
	 * @since 1.0.0
	 * @access public
	 */
	public function ajax_calculator_callback() {

		MP_Callback::check_nonce( $_GET['nonce'], MortgagePlatform::$prefix . 'nonce' );

		$json = file_get_contents( 'php://input' );
		$data = json_decode( $json, true );

		$email             = new MP_Email();
		$response['email'] = $email->emailSend( $data );

		$lead_update      = new MP_Addon_Payoff_Searches();
		$response['lead'] = $lead_update->lead_update( $data, $response );


		$calcCookies = array(
			'lead'              => $response['lead']['lead'],
			'first_name'        => $data['email']['firstname'],
			'second_name'       => $data['email']['secondname'],
			'phone'             => $data['email']['phone'],
			'email'             => $data['email']['email'],
			'zipcode'           => $data['email']['zipcode'],
			'yearofbirth'       => $data['email']['yearofbirth'],
			'investment_amount' => $data['email']['investmentamount']
		);


		if ( $this->settings['enable_cookie'] ) {
			add_action( 'init', MP_Cookies::set_cookies( "mortgagecalculator_lead", $calcCookies ) );
			add_action( 'init', MP_Cookies::set_cookies( "mortgagelead", 'success' ) );

		} else {
			MP_Cookies::delete_cookies( "mortgagecalculator_lead" );
			MP_Cookies::delete_cookies( "mortgagelead" );
		}



		header( 'Access-Control-Allow-Origin: *' );
		wp_send_json( $response );

	}



	/**
	 * Searches.
	 *
	 * @since 1.0.0
	 * @access public
	 */
	public function ajax_searches() {

		MP_Callback::check_nonce($_POST['nonce'], MortgagePlatform::$prefix . 'searches');


		$searches = new MP_Addon_Payoff_Searches();
		$searches->set_searches( $_POST );

		wp_die();

	}



	/**
	 * AJAX request calculate.
	 *
	 * @since 1.0.0
	 * @access public
	 */
	public function calculate_widget() {

		$years_remaining           = sanitize_text_field( $_POST['years_remaining'] );
		$original_term           = sanitize_text_field( $_POST['original_mortgage_term'] );
		$original_amount           = sanitize_text_field( $_POST['original_mortgage_amount'] );
		$additional_principal           = sanitize_text_field( $_POST['additional_principal_payment'] );
		$annual_interest_rate           = sanitize_text_field( $_POST['annual_interest_rate'] );
		$amortization = sanitize_text_field( $_POST['amortization'] );

		$response =array();
		if ( $years_remaining == 0 ) {
			$response['error']       = 1;
			$response['error_field'] = 'years_remaining';
			$response['message']     = $this->calculator_settings['years_remaining_error'];
		} elseif ( $original_term == 0 ) {
			$response['error']       = 1;
			$response['error_field'] = 'original_mortgage_term';
			$response['message']     = $this->calculator_settings['original_mortgage_term_error'];
		} elseif ( $years_remaining > $original_term ) {
			$response['error']       = 1;
			$response['error_field'] = 'years_remaining';
			$response['message']     = $this->calculator_settings['calculate_error'];
		} elseif ( $original_amount == 0 ) {
			$response['error']       = 1;
			$response['error_field'] = 'original_mortgage_amount';
			$response['message']     = $this->calculator_settings['original_mortgage_amount_error'];
		} elseif ( $additional_principal == 0 ) {
			$response['error']       = 1;
			$response['error_field'] = 'additional_principal_payment';
			$response['message']     = $this->calculator_settings['additional_principal_payment_error'];
		} elseif ( $annual_interest_rate == 0 ) {
			$response['error']       = 1;
			$response['error_field'] = 'annual_interest_rate';
			$response['message']     = $this->calculator_settings['annual_interest_rate_error'];
		}


		if ( $response['error'] == 1 ) {
			header( "content-type: application/json" );
			echo json_encode( $response );
			wp_die();
		}

		$response = MP_Addon_Payoff_Calculate::calculate( $years_remaining, $original_term, $original_amount, $additional_principal, $annual_interest_rate, $amortization );


		header( 'Access-Control-Allow-Origin: *' );
		wp_send_json( $response );


	}


}

Top ↑

Methods Methods


Top ↑

Changelog Changelog

Changelog
Version Description
1.0.0 Introduced.