PluginProbe
Image Optimizer – Compress Images and Convert to WebP or AVIF / 1.7.7
Image Optimizer – Compress Images and Convert to WebP or AVIF v1.7.7
1.7.7 1.7.6 1.7.5 1.7.4 trunk 1.0.0 1.0.1 1.0.2 1.1.0 1.2.0 1.2.1 1.3.0 1.4.0 1.4.1 1.5.0 1.5.1 1.5.2 1.5.3 1.5.4 1.6.0 1.6.1 1.6.2 1.6.3 1.6.4 1.6.5 All 33 releases
← All changes | modules/oauth/rest/deactivate.php +28 -37 1.0.21.7.7 View file →
@@ -1,22 +1,23 @@
1 1 <?php
2 2
3 -namespace ImageOptimizer\Modules\Oauth\Rest;
3 +namespace ImageOptimization\Modules\Oauth\Rest;
4 4
5 -use ImageOptimizer\Classes\Utils;
6 -use ImageOptimizer\Modules\Oauth\Classes\{
7 - Data,
8 - Route_Base
5 +use ImageOptimization\Modules\Oauth\{
6 + Classes\Data,
7 + Classes\Route_Base,
8 + Components\Connect
9 9 };
10 -use ImageOptimizer\Modules\Oauth\Components\{
11 - Checkpoint,
12 - Connect
13 -};
10 +use Throwable;
11 +use WP_REST_Request;
14 12
15 -use WP_REST_Request;
13 +if ( ! defined( 'ABSPATH' ) ) {
14 + exit; // Exit if accessed directly.
15 +}
16 16
17 17 class Deactivate extends Route_Base {
18 - const NONCE_NAME = 'image-optimizer-deactivate-subscription';
18 + const NONCE_NAME = 'image-optimization-deactivate-subscription';
19 +
19 20 protected string $path = 'deactivate';
20 21
21 22 public function get_name(): string {
22 23 return 'deactivate';
@@ -26,16 +27,20 @@
26 27 return [ 'POST' ];
27 28 }
28 29
29 30 public function POST( WP_REST_Request $request ) {
30 - $this->verify_nonce_and_capability(
31 + $error = $this->verify_nonce_and_capability(
31 32 $request->get_param( self::NONCE_NAME ),
32 33 self::NONCE_NAME
33 34 );
34 35
36 + if ( $error ) {
37 + return $error;
38 + }
39 +
35 40 if ( ! Connect::is_connected() ) {
36 41 return $this->respond_error_json( [
37 - 'message' => esc_html__( 'Please connect first', 'image-optimizer' ),
42 + 'message' => esc_html__( 'Please connect first', 'image-optimization' ),
38 43 'code' => 'forbidden',
39 44 ] );
40 45 }
41 46
@@ -40,38 +45,24 @@
40 45 }
41 46
42 47 if ( ! $request->get_param( 'license_key' ) ) {
43 48 return $this->respond_error_json( [
44 - 'message' => esc_html__( 'Missing license key', 'image-optimizer' ),
45 - 'code' => 'internal_server_error',
49 + 'message' => esc_html__( 'Missing license key', 'image-optimization' ),
50 + 'code' => 'bad_request',
46 51 ] );
47 52 }
48 53
49 - $key = $request->get_param( 'license_key' );
54 + $license_key = $request->get_param( 'license_key' );
50 55
51 - $response = Utils::get_api_client()->make_request(
52 - 'POST',
53 - 'activation/deactivate',
54 - [
55 - 'key' => $key,
56 - ]
57 - );
56 + try {
57 + Connect::deactivate( $license_key );
58 58
59 - if ( is_wp_error( $response ) ) {
59 + return $this->respond_success_json();
60 + } catch ( Throwable $t ) {
61 + Data::delete_activation_state();
60 62 return $this->respond_error_json( [
61 - 'message' => $response->get_error_message(),
63 + 'message' => $t->getMessage(),
62 64 'code' => 'internal_server_error',
63 65 ] );
64 66 }
65 -
66 - if ( ! isset( $response->id ) ) {
67 - return $this->respond_error_json( [
68 - 'message' => esc_html__( 'Invalid response from server', 'image-optimizer' ),
69 - 'code' => 'internal_server_error',
70 - ] );
71 - }
72 -
73 - Data::delete_activation_state();
74 - do_action( Checkpoint::ON_DEACTIVATE, $key );
75 - return rest_ensure_response( [ 'success' => true ] );
76 - }
67 + }
77 68 }