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>
 |