the_lis()){ // require 'class-Checker.php'; // new UPDATE_CHECKER(); // } } public function set_license(bool $data){ $this->license = $data; } public function get_status(){ return $this->license; } public function the_lis() { return true; global $sheet_checker_pro; $check = get_option('_sheetcheckerpro_license_check'); if(false !== $check && is_array($check)){ return boolval($check['valid']); } return false; } public function check_license() { global $sheet_checker_pro; $check = get_option('_sheetcheckerpro_license_check'); if(false === $check) : $this->set_license(false); $license_valid = false; $license_detail = [ 'valid' => false, 'messages' => [ __('Activate License for getting started with Onesender Broadcaster!', SHEET_CHECKER_PRO_DOMAIN) ] ]; else : $check = wp_parse_args($check, [ 'valid' => true, 'detail' => [], 'messages' => [] ]); $license_valid = $check['valid']; $license_detail = $check; $this->set_license(true); endif; $sheet_checker_pro['license'] = [ 'valid' => $license_valid, 'detail' => $license_detail ]; } public function check_license_routine() { $post_data = [ 'host' => $_SERVER['HTTP_HOST'] ]; $request_url = add_query_arg($post_data, SHEET_CHECKER_PRO_MEMBER.'/sejoli-validate-license/'); $response = wp_remote_get($request_url); $json_result = json_decode(wp_remote_retrieve_body($response), true); $response_code = (int) wp_remote_retrieve_response_code($response); if(200 === $response_code && isset($json_result['valid'])) : if(true === boolval($json_result['valid'])) : else: delete_option('_sheetcheckerpro_license_check'); endif; else : array( 'code' => $response_code, 'message' => $response['response']['message'] ); endif; } public function register_routine() { if(false === wp_next_scheduled('sheetcheckerpro/license/check')) : wp_schedule_event(time(),'twicedaily','sheetcheckerpro/license/check'); endif; } public function display_license_message() { if(false === $this->the_lis()) : global $sheet_checker_pro; $license_form_link = add_query_arg([ 'post_type' => 'checker', 'page' => 'sheetcheckerpro-license' ], admin_url('edit.php')); return; ?>
the_lis()) : add_submenu_page( 'edit.php?post_type=checker', 'License', 'License', 'manage_options', 'sheetcheckerpro-license', [$this, 'display_license_page'], 12 ); endif; } } public function display_license_page() { require SHEET_CHECKER_PRO_PATH . 'templates/license.php'; } public function check_form() { if(isset($_POST['_wpnonce']) && wp_verify_nonce($_POST['_wpnonce'], 'sheetcheckerpro-input-license') && isset($_POST['data'])) : $post_data = wp_parse_args($_POST['data'],[ 'user_email' => NULL, 'user_pass' => NULL, 'license' => NULL ]); $post_data['string'] = $_SERVER['HTTP_HOST']; $request_url = SHEET_CHECKER_PRO_MEMBER.'/sejoli-license/'; $response = wp_remote_post($request_url, array( 'timeout' => 120, 'body' => $post_data )); if(is_wp_error($response)) : wp_die( __( 'Something is happened because of your hosting.
Please contact your hosting provider and attach this message below:', SHEET_CHECKER_PRO_DOMAIN) . '
 
' . implode('
', $response->get_error_messages()), __( 'Cannot access license server', SHEET_CHECKER_PRO_DOMAIN) ); exit; else : $json_result = json_decode(wp_remote_retrieve_body($response), true); $response_code = intval(wp_remote_retrieve_response_code($response)); if(200 === $response_code) : if(isset($json_result['valid']) && true === boolval($json_result['valid'])) : update_option('_sheetcheckerpro_license_check', $json_result); $theme_option_url = add_query_arg([ 'post_type' => 'checker', 'success' => 'sheetcheckerpro-license-valid' ], admin_url('edit.php')); wp_redirect($theme_option_url); else : $args = array(); $args['post_type'] = 'checker'; $args['error'] = 'sheetcheckerpro-license-not-valid'; $args['messages'] = array_map('urlencode', array_map('strip_tags', $json_result['messages'])); wp_redirect(add_query_arg($args, admin_url('edit.php'))); endif; // beside response code else : $args = array(); $args['post_type'] = 'checker'; $args['page'] = 'sheetcheckerpro-license'; $args['error'] = 'sheetcheckerpro-license-not-valid'; $args['messages'][] = sprintf( __('Error response code : %s. Cannot connect to license server', SHEET_CHECKER_PRO_DOMAIN), $response_code ); wp_redirect(add_query_arg($args, admin_url('admin.php'))); endif; endif; exit; endif; } }