: str_replace(): Passing null to parameter #2 ($replace) of type array|string is deprecated in
namespace Yoast\WP\SEO\Routes;
use Yoast\WP\SEO\Actions\Integrations_Action;
use Yoast\WP\SEO\Conditionals\No_Conditionals;
* Integrations_Route class.
class Integrations_Route implements Route_Interface {
* Represents the integrations route.
public const INTEGRATIONS_ROUTE = '/integrations';
* Represents a route to set the state of an integration.
public const SET_ACTIVE_ROUTE = '/set_active';
* The integrations action.
* @var Integrations_Action
private $integrations_action;
* Integrations_Route constructor.
* @param Integrations_Action $integrations_action The integrations action.
public function __construct(
Integrations_Action $integrations_action
$this->integrations_action = $integrations_action;
* Registers routes with WordPress.
public function register_routes() {
'callback' => [ $this, 'set_integration_active' ],
'permission_callback' => [ $this, 'can_manage_options' ],
\register_rest_route( Main::API_V1_NAMESPACE, self::INTEGRATIONS_ROUTE . self::SET_ACTIVE_ROUTE, $set_active_route );
* Checks if the current user has the right capability.
public function can_manage_options() {
return \current_user_can( 'wpseo_manage_options' );
* Sets integration state.
* @param WP_REST_Request $request The request.
* @return WP_REST_Response
public function set_integration_active( WP_REST_Request $request ) {
$params = $request->get_json_params();
$integration_name = $params['integration'];
$value = $params['active'];
->set_integration_active( $integration_name, $value );
return new WP_REST_Response(