11
11
use Plausible \Analytics \WP \Client \Model \Capabilities ;
12
12
use Plausible \Analytics \WP \Client \Model \CapabilitiesFeatures ;
13
13
use Plausible \Analytics \WP \Client \Model \CustomPropEnableRequestBulkEnable ;
14
+ use Plausible \Analytics \WP \Client \Model \FunnelCreateRequest ;
14
15
use Plausible \Analytics \WP \Client \Model \GoalCreateRequestBulkGetOrCreate ;
16
+ use Plausible \Analytics \WP \Client \Model \GoalListResponse ;
15
17
use Plausible \Analytics \WP \Client \Model \PaymentRequiredError ;
16
18
use Plausible \Analytics \WP \Client \Model \SharedLink ;
17
19
use Plausible \Analytics \WP \Client \Model \UnauthorizedError ;
@@ -58,13 +60,15 @@ public function validate_api_token() {
58
60
59
61
$ data_domain = $ this ->get_data_domain ();
60
62
$ token = $ this ->api_instance ->getConfig ()->getPassword ();
61
- $ is_valid = strpos ( $ token , 'plausible-plugin ' ) !== false && ! empty ( $ features ->getGoals () ) && $ data_domain === Helpers::get_domain ();
63
+ $ is_valid = str_contains ( $ token , 'plausible-plugin ' ) && ! empty ( $ features ->getGoals () ) && $ data_domain === Helpers::get_domain ();
62
64
63
65
/**
64
66
* Don't cache invalid API tokens.
65
67
*/
66
68
if ( $ is_valid ) {
67
69
set_transient ( 'plausible_analytics_valid_token ' , [ $ token => true ], 86400 ); // @codeCoverageIgnore
70
+
71
+ $ this ->update_capabilities ( $ token );
68
72
}
69
73
70
74
return $ is_valid ;
@@ -129,6 +133,44 @@ private function get_data_domain() {
129
133
return false ;
130
134
}
131
135
136
+ /**
137
+ * Stores the capabilities for the currently entered API token in the DB for later use.
138
+ *
139
+ * @param $token
140
+ *
141
+ * @return false|array
142
+ *
143
+ * @codeCoverageIgnore
144
+ */
145
+ private function update_capabilities ( $ token = '' ) {
146
+ $ client_factory = new ClientFactory ( $ token );
147
+ /** @var Client $client */
148
+ $ client = $ client_factory ->build ();
149
+
150
+ if ( ! $ client instanceof Client ) {
151
+ return false ;
152
+ }
153
+
154
+ /** @var Client\Model\CapabilitiesFeatures $features */
155
+ $ features = $ client ->get_features ();
156
+
157
+ if ( ! $ features ) {
158
+ return false ;
159
+ }
160
+
161
+ $ caps = [
162
+ 'funnels ' => $ features ->getFunnels (),
163
+ 'goals ' => $ features ->getGoals (),
164
+ 'props ' => $ features ->getProps (),
165
+ 'revenue ' => $ features ->getRevenueGoals (),
166
+ 'stats ' => $ features ->getStatsApi (),
167
+ ];
168
+
169
+ update_option ( 'plausible_analytics_api_token_caps ' , $ caps );
170
+
171
+ return $ caps ;
172
+ }
173
+
132
174
/**
133
175
* Create Shared Link in Plausible Dashboard.
134
176
*
@@ -217,50 +259,12 @@ private function send_json_error( $e, $error_message ) {
217
259
wp_send_json_error ( [ 'capabilities ' => $ caps ], $ code );
218
260
}
219
261
220
- /**
221
- * Stores the capabilities for the currently entered API token in the DB for later use.
222
- *
223
- * @param $token
224
- *
225
- * @return false|array
226
- *
227
- * @codeCoverageIgnore
228
- */
229
- private function update_capabilities ( $ token = '' ) {
230
- $ client_factory = new ClientFactory ( $ token );
231
- /** @var Client $client */
232
- $ client = $ client_factory ->build ();
233
-
234
- if ( ! $ client instanceof Client ) {
235
- return false ;
236
- }
237
-
238
- /** @var Client\Model\CapabilitiesFeatures $features */
239
- $ features = $ client ->get_features ();
240
-
241
- if ( ! $ features ) {
242
- return false ;
243
- }
244
-
245
- $ caps = [
246
- 'funnels ' => $ features ->getFunnels (),
247
- 'goals ' => $ features ->getGoals (),
248
- 'props ' => $ features ->getProps (),
249
- 'revenue ' => $ features ->getRevenueGoals (),
250
- 'stats ' => $ features ->getStatsApi (),
251
- ];
252
-
253
- update_option ( 'plausible_analytics_api_token_caps ' , $ caps );
254
-
255
- return $ caps ;
256
- }
257
-
258
262
/**
259
263
* Allows creating Custom Event Goals in bulk.
260
264
*
261
265
* @param GoalCreateRequestBulkGetOrCreate $goals
262
266
*
263
- * @return Client\Model\ PaymentRequiredError|Client\Model\PlausibleWebPluginsAPIControllersGoalsCreate201Response|Client\Model\ UnauthorizedError|Client\Model\ UnprocessableEntityError|null
267
+ * @return GoalListResponse| PaymentRequiredError|UnauthorizedError|UnprocessableEntityError|void
264
268
*
265
269
* @codeCoverageIgnore
266
270
*/
@@ -275,7 +279,7 @@ public function create_goals( $goals ) {
275
279
/**
276
280
* Allows creating Funnels in bulk.
277
281
*
278
- * @param \Plausible\Analytics\WP\Client\Model\ FunnelCreateRequest $funnel
282
+ * @param FunnelCreateRequest $funnel
279
283
*
280
284
* @return Client\Model\Funnel|PaymentRequiredError|UnauthorizedError|UnprocessableEntityError|void
281
285
*
0 commit comments