* * @since 3.5 * * @return void */ public function set_process_status() { check_ajax_referer( 'rocket-ajax', 'nonce', true ); if ( ! current_user_can( 'rocket_manage_options' ) ) { return; } if ( empty( $_POST['status'] ) ) { return; } $status = filter_var( $_POST['status'], FILTER_VALIDATE_BOOLEAN ); // phpcs:ignore WordPress.Security.ValidatedSanitizedInput.MissingUnslash -- Used as a boolean. if ( false === $status ) { delete_option( 'rocketcdn_process' ); return; } update_option( 'rocketcdn_process', $status ); } /** * Check for RocketCDN subscription process status * * @since 3.5 * * @return void */ public function get_process_status() { check_ajax_referer( 'rocket-ajax', 'nonce', true ); if ( ! current_user_can( 'rocket_manage_options' ) ) { wp_send_json_error(); return; } if ( get_option( 'rocketcdn_process' ) ) { wp_send_json_success(); return; } wp_send_json_error(); } /** * Cron job to disable CDN if the subscription expired * * @since 3.5 * * @return void */ public function maybe_disable_cdn() { delete_transient( 'rocketcdn_status' ); $subscription = $this->api_client->get_subscription_data(); if ( rocket_get_constant( 'WP_ROCKET_IS_TESTING', false ) ) { $subscription = apply_filters( 'rocket_pre_get_subscription_data', $subscription ); } if ( 'running' === $subscription['subscription_status'] ) { $this->schedule_subscription_check( $subscription ); return; } $this->cdn_options->disable(); } /** * Validates and updates the token and cname from RocketCDN Iframe. * * @return void */ public function validate_token_cname() { check_ajax_referer( 'rocket-ajax', 'nonce', true ); $data = []; if ( ! current_user_can( 'rocket_manage_options' ) ) { $data['message'] = 'unauthorized_user'; wp_send_json_error( $data ); return; } if ( empty( $_POST['cdn_url'] ) || empty( $_POST['cdn_token'] ) ) { $data['message'] = 'cdn_values_empty'; wp_send_json_error( $data ); return; } $token = sanitize_key( $_POST['cdn_token'] ); $cdn_url = filter_var( wp_unslash( $_POST['cdn_url'] ), FILTER_VALIDATE_URL ); if ( ! $cdn_url ) { $data['message'] = 'cdn_url_invalid_format'; wp_send_json_error( $data ); return; } if ( 40 !== strlen( $token ) ) { $data['message'] = 'invalid_token_length'; wp_send_json_error( $data ); return; } $current_token = get_option( 'rocketcdn_user_token' ); $current_cname = $this->cdn_options->get_cdn_cnames(); if ( ! empty( $current_token ) ) { $data['message'] = 'token_already_set'; wp_send_json_error( $data ); return; } update_option( 'rocketcdn_user_token', $token ); $this->cdn_options->enable( esc_url_raw( $cdn_url ) ); $data['message'] = 'token_updated_successfully'; wp_send_json_success( $data ); } /** * Schedule the next cron subscription check * * @since 3.5 * * @param array $subscription Array containing the subscription data. * @return void */ private function schedule_subscription_check( $subscription ) { $timestamp = strtotime( $subscription['subscription_next_date_update'] ) + strtotime( '+2 days' ); if ( ! wp_next_scheduled( self::CRON_EVENT ) ) { wp_schedule_single_event( $timestamp, self::CRON_EVENT ); } } } انواع پست – شرکت فنی و مهندسی قطعه سازان داتیس

دسته: انواع پست