manager->url_replacer, 'build_url' ], 99 ); // Ensure replacer is initialized for Otter REST API routes (where register_hooks isn't called). add_filter( 'rest_pre_dispatch', [ $this, 'maybe_init_replacer_for_rest' ], 10, 3 ); } /** * Initialize replacer for Otter REST API routes. * * @param mixed $result Response to replace the requested version with. * @param \WP_REST_Server $server Server instance. * @param \WP_REST_Request $request Request used to generate the response. * @return mixed Unmodified result. */ public function maybe_init_replacer_for_rest( $result, \WP_REST_Server $server, \WP_REST_Request $request ) { $route = $request->get_route(); // Only initialize for Otter styles REST routes. if ( strpos( $route, '/otter/v1/post_styles' ) === false && strpos( $route, '/otter/v1/widget_styles' ) === false && strpos( $route, '/otter/v1/block_styles' ) === false ) { return $result; } if ( ! did_action( 'optml_replacer_setup' ) ) { do_action( 'optml_replacer_setup' ); } return $result; } /** * Should we early load the compatibility? * * @return bool Whether to load the compatibility early. */ public function should_load_early() { return true; } }