PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / 3.0.4
GiveWP – Donation Plugin and Fundraising Platform v3.0.4
4.16.2 4.16.1 4.16.0 4.15.5 4.15.4 4.15.3 4.15.2 4.15.1 4.15.0 2.3.0 2.3.1 2.3.2 2.30.0 2.31.0 2.31.1 2.32.0 2.33.0 2.33.1 2.33.2 2.33.3 2.33.4 2.33.5 2.4.0 2.4.1 2.4.2 2.4.3 2.4.4 2.4.5 2.4.6 2.4.7 2.5.0 2.5.1 2.5.10 2.5.11 2.5.12 2.5.13 2.5.2 2.5.3 2.5.4 2.5.5 2.5.6 2.5.7 2.5.8 2.5.9 2.6.0 2.6.1 2.6.2 2.6.3 2.7.0 2.7.1 2.7.2 2.7.3 2.7.4 2.7.5 2.8.0 2.8.1 2.9.0 2.9.1 2.9.2 2.9.3 2.9.4 2.9.5 2.9.6 2.9.7 3.0.0 3.0.1 3.0.2 3.0.3 3.0.4 3.1.0 3.1.1 3.1.2 3.10.0 3.11.0 3.12.0 3.12.1 3.12.2 3.12.3 3.13.0 3.14.0 3.14.1 3.14.2 3.15.0 3.15.1 3.16.0 3.16.1 3.16.2 3.16.3 3.16.4 3.16.5 3.17.0 3.17.1 3.17.2 3.18.0 3.19.0 3.19.1 3.19.2 3.19.3 3.19.4 3.2.0 3.2.1 3.2.2 3.20.0 3.21.0 3.21.1 3.22.0 3.22.1 3.22.2 3.3.0 3.3.1 3.4.0 3.4.1 3.4.2 3.5.0 3.5.1 3.6.0 3.6.1 3.6.2 3.7.0 3.8.0 3.9.0 4.0.0 4.1.0 4.1.1 4.10.0 4.10.1 4.11.0 4.12.0 4.13.0 4.13.1 4.13.2 4.14.0 4.14.1 4.14.2 4.14.3 4.14.4 4.14.5 4.14.6 4.2.0 4.2.1 4.3.0 4.3.1 4.3.2 4.4.0 4.5.0 4.6.1 4.7.0 4.7.1 4.8.0 4.8.1 4.9.0 trunk 1.9.0 2.0.0 2.0.1 2.0.2 2.0.3 2.0.4 2.0.5 2.0.6 2.0.7 2.1.0 2.1.1 2.1.2 2.1.3 2.1.4 2.1.5 2.1.6 2.1.7 2.1.8 2.10.0 2.10.1 2.10.2 2.10.3 2.10.4 2.11.0 2.11.1 2.11.2 2.11.3 2.12.0 2.12.1 2.12.2 2.12.3 2.13.0 2.13.1 2.13.2 2.13.3 2.13.4 2.14.0 2.15.0 2.16.0 2.16.1 2.17.0 2.17.1 2.17.3 2.18.0 2.18.1 2.19.1 2.19.2 2.19.3 2.19.4 2.19.5 2.19.6 2.19.7 2.19.8 2.2.0 2.2.1 2.2.2 2.2.3 2.2.4 2.2.5 2.2.6 2.20.0 2.20.1 2.20.2 2.21.0 2.21.1 2.21.2 2.21.3 2.21.4 2.22.0 2.22.1 2.22.2 2.22.3 2.23.0 2.23.1 2.23.2 2.24.0 2.24.1 2.24.2 2.25.0 2.25.1 2.25.2 2.25.3 2.26.0 2.27.0 2.27.1 2.27.2 2.27.3 2.28.0 2.29.0 2.29.1 2.29.2
give / includes / libraries / wp-async-request.php
give / includes / libraries Last commit date
googlechartlib 8 years ago array2xml.php 8 years ago browser.php 8 years ago give-pdf.php 6 years ago wp-async-request.php 2 years ago wp-background-process.php 2 years ago
wp-async-request.php
165 lines
1 <?php
2 /**
3 * @deprecated Use src/Framework/WordPressLibraries\WPAsyncRequest.
4 * WP Async Request
5 *
6 * @package WP-Background-Processing
7 */
8
9 if ( ! class_exists( 'WP_Async_Request' ) ) {
10
11 /**
12 * Abstract WP_Async_Request class.
13 *
14 * @abstract
15 */
16 abstract class WP_Async_Request {
17
18 /**
19 * Prefix
20 *
21 * (default value: 'wp')
22 *
23 * @var string
24 * @access protected
25 */
26 protected $prefix = 'wp';
27
28 /**
29 * Action
30 *
31 * (default value: 'async_request')
32 *
33 * @var string
34 * @access protected
35 */
36 protected $action = 'async_request';
37
38 /**
39 * Identifier
40 *
41 * @var mixed
42 * @access protected
43 */
44 protected $identifier;
45
46 /**
47 * Data
48 *
49 * (default value: array())
50 *
51 * @var array
52 * @access protected
53 */
54 protected $data = array();
55
56 /**
57 * Initiate new async request
58 */
59 public function __construct() {
60 $this->identifier = $this->prefix . '_' . $this->action;
61
62 add_action( 'wp_ajax_' . $this->identifier, array( $this, 'maybe_handle' ) );
63 add_action( 'wp_ajax_nopriv_' . $this->identifier, array( $this, 'maybe_handle' ) );
64 }
65
66 /**
67 * Set data used during the request
68 *
69 * @param array $data Data.
70 *
71 * @return $this
72 */
73 public function data( $data ) {
74 $this->data = $data;
75
76 return $this;
77 }
78
79 /**
80 * Dispatch the async request
81 *
82 * @return array|WP_Error
83 */
84 public function dispatch() {
85 $url = add_query_arg( $this->get_query_args(), $this->get_query_url() );
86 $args = $this->get_post_args();
87
88 return wp_remote_post( esc_url_raw( $url ), $args );
89 }
90
91 /**
92 * Get query args
93 *
94 * @return array
95 */
96 protected function get_query_args() {
97 if ( property_exists( $this, 'query_args' ) ) {
98 return $this->query_args;
99 }
100
101 return array(
102 'action' => $this->identifier,
103 'nonce' => wp_create_nonce( $this->identifier ),
104 );
105 }
106
107 /**
108 * Get query URL
109 *
110 * @return string
111 */
112 protected function get_query_url() {
113 if ( property_exists( $this, 'query_url' ) ) {
114 return $this->query_url;
115 }
116
117 return admin_url( 'admin-ajax.php' );
118 }
119
120 /**
121 * Get post args
122 *
123 * @return array
124 */
125 protected function get_post_args() {
126 if ( property_exists( $this, 'post_args' ) ) {
127 return $this->post_args;
128 }
129
130 return array(
131 'timeout' => 0.01,
132 'blocking' => false,
133 'body' => $this->data,
134 'cookies' => $_COOKIE,
135 'sslverify' => apply_filters( 'https_local_ssl_verify', false ),
136 );
137 }
138
139 /**
140 * Maybe handle
141 *
142 * Check for correct nonce and pass to handler.
143 */
144 public function maybe_handle() {
145 // Don't lock up other requests while processing
146 session_write_close();
147
148 check_ajax_referer( $this->identifier, 'nonce' );
149
150 $this->handle();
151
152 wp_die();
153 }
154
155 /**
156 * Handle
157 *
158 * Override this method to perform any actions required
159 * during the async request.
160 */
161 abstract protected function handle();
162
163 }
164 }
165