64 lines
2.3 KiB
PHP
64 lines
2.3 KiB
PHP
<?php
|
|
/**
|
|
* API connectivity issues (CloudFlare's firewall) handler for handling different
|
|
* scenarios selected by the user after connectivity issue is detected, by sending
|
|
* AJAX call to the server in order to make the actual actions.
|
|
*
|
|
* @package Freemius
|
|
* @copyright Copyright (c) 2015, Freemius, Inc.
|
|
* @license https://www.gnu.org/licenses/gpl-3.0.html GNU General Public License Version 3
|
|
* @since 1.0.9
|
|
*/
|
|
|
|
if ( ! defined( 'ABSPATH' ) ) {
|
|
exit;
|
|
}
|
|
?>
|
|
<script type="text/javascript">
|
|
jQuery( document ).ready(function( $ ) {
|
|
$( '#fs_firewall_issue_options a.fs-resolve' ).click(function() {
|
|
var
|
|
error_type = $( this ).attr( 'data-type' ),
|
|
notice = $( this ).parents( '.fs-notice' ),
|
|
ajaxActionSuffix = notice.attr( 'data-manager-id' ).replace( ':', '-' );
|
|
|
|
var data = {
|
|
action : 'fs_resolve_firewall_issues_' + ajaxActionSuffix,
|
|
// As such we don't need to use `wp_json_encode` method but using it to follow wp.org guideline.
|
|
_wpnonce : <?php echo wp_json_encode( wp_create_nonce( 'fs_resolve_firewall_issues' ) ); ?>,
|
|
error_type: error_type
|
|
};
|
|
|
|
if ( 'squid' === error_type ) {
|
|
data.hosting_company = prompt( 'What is the name or URL of your hosting company?' );
|
|
if ( null == data.hosting_company )
|
|
return false;
|
|
|
|
if ( '' === data.hosting_company ) {
|
|
alert( 'We won\'t be able to help without knowing your hosting company.' );
|
|
return false;
|
|
}
|
|
}
|
|
|
|
if ( 'retry_ping' === error_type ) {
|
|
data.action = 'fs_retry_connectivity_test_' + ajaxActionSuffix;
|
|
// As such we don't need to use `wp_json_encode` method but using it to follow wp.org guideline.
|
|
data._wpnonce = <?php echo wp_json_encode( wp_create_nonce( 'fs_retry_connectivity_test' ) ); ?>;
|
|
}
|
|
|
|
$( this ).css({'cursor': 'wait'});
|
|
|
|
// since 2.8 ajaxurl is always defined in the admin header and points to admin-ajax.php
|
|
$.post( ajaxurl, data, function( response ) {
|
|
if ( 1 == response ) {
|
|
// Refresh page on success.
|
|
location.reload();
|
|
} else if ( 'http' === response.substr( 0, 4 ) ) {
|
|
// Ping actually worked, redirect.
|
|
window.location = response;
|
|
}
|
|
});
|
|
});
|
|
});
|
|
</script>
|