# speechkit/7.2.0/src/player/renderer/class-base.php

BeyondWords – AI audio for publishers, version 7.2.0. 50 lines.

- Page: https://pluginprobe.com/plugins/speechkit/7.2.0/code/src/player/renderer/class-base.php
- Raw: https://pluginprobe.com/plugins/speechkit/7.2.0/raw/src/player/renderer/class-base.php
- Modified: 2026-09-25T15:14:58+00:00

Line numbers below start at 1. Link to a line or a range by appending a fragment to the
page URL, for example `https://pluginprobe.com/plugins/speechkit/7.2.0/code/src/player/renderer/class-base.php#L10-L20`.

```php
<?php
/**
 * Base class for player renderers.
 *
 * @package BeyondWords\Player\Renderer
 * @since   6.0.0
 * @since   7.0.0 Refactored to BeyondWords namespace with snake_case methods.
 */

declare( strict_types = 1 );

namespace BeyondWords\Player\Renderer;

defined( 'ABSPATH' ) || exit;

/**
 * Common eligibility checks for every renderer.
 *
 * @since 7.0.0 Refactored to BeyondWords namespace with snake_case methods.
 */
class Base {

	/**
	 * Whether a player should be rendered for this post in this request.
	 *
	 * @param \WP_Post $post WordPress post object.
	 */
	public static function check( \WP_Post $post ): bool {
		if ( function_exists( 'is_preview' ) && is_preview() ) {
			return false;
		}

		if ( \BeyondWords\Core\Utils::is_gutenberg_page() || \BeyondWords\Core\Utils::is_edit_screen() ) {
			return false;
		}

		$project_id = \BeyondWords\Post\Meta::get_project_id( $post->ID );

		if ( ! $project_id ) {
			return false;
		}

		$content_id = \BeyondWords\Post\Meta::get_content_id( $post->ID );
		$method     = \BeyondWords\Settings\Fields::get_integration_method( $post );

		return \BeyondWords\Settings\Fields::INTEGRATION_CLIENT_SIDE === $method
			|| ( \BeyondWords\Settings\Fields::INTEGRATION_REST_API === $method && $content_id );
	}
}

```
