: str_replace(): Passing null to parameter #2 ($replace) of type array|string is deprecated in
namespace Yoast\WP\SEO\Introductions\User_Interface;
use Yoast\WP\SEO\Conditionals\No_Conditionals;
use Yoast\WP\SEO\Helpers\User_Helper;
use Yoast\WP\SEO\Introductions\Infrastructure\Wistia_Embed_Permission_Repository;
use Yoast\WP\SEO\Routes\Route_Interface;
* Registers a route to offer get/set of the wistia embed permission for a user.
class Wistia_Embed_Permission_Route implements Route_Interface {
public const ROUTE_PREFIX = '/wistia_embed_permission';
* @var Wistia_Embed_Permission_Repository
private $wistia_embed_permission_repository;
* @param Wistia_Embed_Permission_Repository $wistia_embed_permission_repository The repository.
* @param User_Helper $user_helper The user helper.
public function __construct(
Wistia_Embed_Permission_Repository $wistia_embed_permission_repository,
$this->wistia_embed_permission_repository = $wistia_embed_permission_repository;
$this->user_helper = $user_helper;
* Registers routes with WordPress.
public function register_routes() {
'callback' => [ $this, 'get_wistia_embed_permission' ],
'permission_callback' => [ $this, 'permission_edit_posts' ],
'callback' => [ $this, 'set_wistia_embed_permission' ],
'permission_callback' => [ $this, 'permission_edit_posts' ],
* Gets the value of the wistia embed permission.
* @return WP_REST_Response|WP_Error The response, or an error.
public function get_wistia_embed_permission() {
$user_id = $this->user_helper->get_current_user_id();
$value = $this->wistia_embed_permission_repository->get_value_for_user( $user_id );
} catch ( Exception $exception ) {
'wpseo_wistia_embed_permission_error',
$exception->getMessage(),
return new WP_REST_Response(
* Sets the value of the wistia embed permission.
* @param WP_REST_Request $request The request object.
* @return WP_REST_Response|WP_Error The success or failure response.
public function set_wistia_embed_permission( WP_REST_Request $request ) {
$params = $request->get_json_params();
$value = \boolval( $params['value'] );
$user_id = $this->user_helper->get_current_user_id();
$result = $this->wistia_embed_permission_repository->set_value_for_user( $user_id, $value );
} catch ( Exception $exception ) {
'wpseo_wistia_embed_permission_error',
$exception->getMessage(),
return new WP_REST_Response(
* @return bool True when user has 'edit_posts' permission.
public function permission_edit_posts() {
return \current_user_can( 'edit_posts' );