diff --git a/lib/CleantalkSP/SpbctWP/RemoteCalls.php b/lib/CleantalkSP/SpbctWP/RemoteCalls.php index 65250c832..2786c2fbf 100644 --- a/lib/CleantalkSP/SpbctWP/RemoteCalls.php +++ b/lib/CleantalkSP/SpbctWP/RemoteCalls.php @@ -299,6 +299,40 @@ public static function action__scanner__check_dir() // phpcs:ignore PSR1.Methods wp_send_json($results); } + + /** + * Update license + * + * @psalm-suppress PossiblyUnusedMethod + */ + public static function action__update_license() // phpcs:ignore PSR1.Methods.CamelCapsMethodName.NotCamelCaps + { + global $spbc; + + $spbc_key = $spbc->settings['spbc_key']; + + if ( empty($spbc_key) ) { + if ( ! $spbc->is_mainsite && $spbc->ms__work_mode != 2 ) { + $spbc_key = ! empty($spbc->network_settings['spbc_key']) ? $spbc->network_settings['spbc_key'] : false; + if ( ! $spbc_key ) { + wp_send_json(['ERROR' => 'KEY_IS_NOT_OK_ON_MAIN_WPMS_SITE']); + } + } else { + $spbc_key = ! empty($spbc->settings['spbc_key']) ? $spbc->settings['spbc_key'] : false; + if ( ! $spbc_key ) { + wp_send_json(['ERROR' => 'KEY_IS_NOT_OK']); + } + } + } + + $account_status = spbc_check_account_status($spbc_key); + if (is_string($account_status)) { + wp_send_json(['ERROR' => $account_status]); + } + + wp_send_json(['OK' => true]); + } + /** * @psalm-suppress PossiblyUnusedMethod */