{ $purchase_code = $request->get_param( 'code' ); $nonce = sanitize_key( $request->get_param( 'nonce' ) ); try { if ( empty( $purchase_code ) ) { throw new \Exception( esc_html__( 'Purchase code is required.', 'jnews' ) ); } if ( empty( $nonce ) || ! wp_verify_nonce( $nonce, 'wp_rest' ) ) { throw new \Exception( esc_html__( 'You are not allowed to perform this action.', 'jnews' ) ); } jnews_reset_license(); return $this->response_success( array( 'success' => true ) ); } catch ( \Exception $e ) { return $this->response_error( $e->getMessage() ); } } /** * Return error response * * @param string $message Error message. * * @return \WP_REST_Response */ public function response_error( $message ) { return new \WP_REST_Response( array( 'message' => $message, ), 500 ); } /** * Return success response * * @param array $args args. * * @return \WP_REST_Response */ public function response_success( $args ) { return new \WP_REST_Response( $args, 200 ); } /** * Save Panel Options * * @param \WP_REST_Request $request Core class used to implement a REST request object. * * @return \WP_REST_Response|array */ public function save_panel_options( $request ) { $action = sanitize_key( $request->get_param( 'action' ) ); $nonce = sanitize_key( $request->get_param( 'nonce' ) ); $panel_nonce = sanitize_key( $request->get_param( 'panelNonce' ) ); $options = $request->get_param( 'options' ); if ( ! wp_verify_nonce( $nonce, 'wp_rest', false ) || empty( $panel_nonce ) || empty( $options ) ) { return $this->response_error( esc_html__( 'You are not allowed to perform this action.', 'jnews' ) ); } return $this->response_success( apply_filters( 'jnews_panel_request_save', $options, $action, $panel_nonce ) ); } /** * Validate plugin * * @param \WP_REST_Request $request Core class used to implement a REST request object. * * @return \WP_Error|array */ public function validate_plugin( $request ) { $plugins = $request->get_param( 'plugins' ); $nonce = sanitize_key( $request->get_param( 'nonce' ) ); if ( ! wp_verify_nonce( $nonce, 'wp_rest', false ) ) { return $this->response_error( esc_html__( 'You are not allowed to perform this action.', 'jnews' ) ); } return $this->response_success( Plugin::validate_plugin( $plugins ) ); } }