engine = $engine; } /** * Register shortcode. */ public function register(): void { add_shortcode( 'articlevault', array( $this, 'render' ) ); } /** * Render shortcode content. */ public function render( $atts, $content = null ): string { $content = (string) $content; // Process nested shortcodes. $content = do_shortcode( $content ); // Sanitize user-provided content before passing it to the paywall. $content = wp_kses_post( $content ); return $this->engine->protect( $content ); } }