class-gsc-ajax.php
1.95 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
<?php
/**
* @package WPSEO\Admin|Google_Search_Console
*/
/**
* Class WPSEO_GSC_Ajax
*/
class WPSEO_GSC_Ajax {
/**
* Setting the AJAX hooks for GSC
*/
public function __construct() {
add_action( 'wp_ajax_wpseo_mark_fixed_crawl_issue', array( $this, 'ajax_mark_as_fixed' ) );
add_action( 'wp_ajax_wpseo_gsc_create_redirect_url', array( $this, 'ajax_create_redirect' ) );
add_action( 'wp_ajax_wpseo_dismiss_gsc', array( $this, 'dismiss_notice' ) );
}
/**
* This method will be access by an AJAX request and will mark an issue as fixed.
*
* First it will do a request to the Google API
*/
public function ajax_mark_as_fixed( ) {
if ( $this->valid_nonce() ) {
$marker = new WPSEO_GSC_Marker( filter_input( INPUT_POST, 'url' ) );
wp_die( $marker->get_response() );
}
wp_die( 'false' );
}
/**
* Handling the request to create a new redirect from the issued URL
*/
public function ajax_create_redirect() {
if ( $this->valid_nonce() && class_exists( 'WPSEO_URL_Redirect_Manager' ) && defined( 'WPSEO_PREMIUM_PATH' ) ) {
$redirect_manager = new WPSEO_URL_Redirect_Manager();
$old_url = filter_input( INPUT_POST, 'old_url' );
// Creates the redirect.
if ( $redirect_manager->create_redirect( $old_url, filter_input( INPUT_POST, 'new_url' ), filter_input( INPUT_POST, 'type' ) ) ) {
if ( filter_input( INPUT_POST, 'mark_as_fixed' ) === 'true' ) {
new WPSEO_GSC_Marker( $old_url );
}
wp_die( 'true' );
}
}
wp_die( 'false' );
}
/**
* Handle the AJAX request and dismiss the GSC notice
*/
public function dismiss_notice() {
check_ajax_referer( 'dismiss-gsc-notice' );
update_user_meta( get_current_user_id(), 'wpseo_dismissed_gsc_notice', true );
wp_die( 'true' );
}
/**
* Check if posted nonce is valid and return true if it is
*
* @return mixed
*/
private function valid_nonce() {
return wp_verify_nonce( filter_input( INPUT_POST, 'ajax_nonce' ), 'wpseo-gsc-ajax-security' );
}
}