39 lines
1.0 KiB
PHP
39 lines
1.0 KiB
PHP
<?php
|
|
|
|
if ( ! defined( 'ABSPATH' ) ) {
|
|
exit();
|
|
}
|
|
|
|
if ( class_exists( 'WC_REST_Connect_Subscription_Activate_Controller' ) ) {
|
|
return;
|
|
}
|
|
|
|
class WC_REST_Connect_Subscription_Activate_Controller extends WC_REST_Connect_Base_Controller {
|
|
protected $rest_base = 'connect/subscription/(?P<subscription_key>.+)/activate';
|
|
|
|
public function post( $request ) {
|
|
$subscription_key = $request['subscription_key'];
|
|
|
|
$response = $this->api_client->activate_subscription( $subscription_key );
|
|
if ( is_wp_error( $response ) ) {
|
|
$this->logger->log( $response, __CLASS__ );
|
|
return $response;
|
|
}
|
|
|
|
$activated = wp_remote_retrieve_response_code( $activation_response ) === 200;
|
|
$body = json_decode( wp_remote_retrieve_body( $response ), true );
|
|
if ( ( ! $activated && ! empty( $body['code'] ) && 'already_connected' === $body['code'] ) ) {
|
|
return new WP_Error(
|
|
'already_active',
|
|
__( 'The subscription is already active.', 'woocommerce-services' )
|
|
);
|
|
}
|
|
|
|
return new WP_REST_Response(
|
|
array(
|
|
'success' => true,
|
|
)
|
|
);
|
|
}
|
|
}
|