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 );
}
}
Methods Methods
- __construct — Callback constructor.
- ajax_calculator_callback — Callback AJAX calculate.
- ajax_searches — Searches.
- calc_cookies
- calculate — AJAX request calculate.
- calculate_widget — AJAX request calculate.
Changelog Changelog
| Version | Description |
|---|---|
| 1.0.0 | Introduced. |