* @since 4.0.0 */ namespace Beyondwords\Wordpress\Component\Settings\Languages; use Beyondwords\Wordpress\Component\Settings\SettingsUtils; use Beyondwords\Wordpress\Core\Environment; /** * Languages setup * * @since 4.0.0 */ class Languages { /** * API Client */ private $apiClient; public const DEFAULT_LANGUAGES = []; /** * Constructor */ public function __construct($apiClient) { $this->apiClient = $apiClient; add_action('admin_init', array($this, 'init')); add_action('admin_enqueue_scripts', array($this, 'enqueueScripts')); } /** * Init setting. * * @since 4.0.0 * * @return void */ public function init() { if (! SettingsUtils::hasApiSettings()) { return; } register_setting( 'beyondwords', 'beyondwords_languages', [ 'default' => '', 'sanitize_callback' => array($this, 'sanitize'), ] ); add_settings_field( 'beyondwords-languages', __('Languages', 'speechkit'), array($this, 'render'), 'beyondwords', 'content' ); } /** * Render setting field. * * @since 4.0.0 * * @return void **/ public function render() { $allLanguages = $this->apiClient->getLanguages(); if (! is_array($allLanguages)) { $allLanguages = []; } $selectedLanguages = get_option('beyondwords_languages', Languages::DEFAULT_LANGUAGES); if (! is_array($selectedLanguages)) { $selectedLanguages = Languages::DEFAULT_LANGUAGES; } ?>
%s', esc_url(Environment::getDashboardUrl()), esc_html__('BeyondWords dashboard', 'speechkit') ) ); ?>