service = $service; $this->user_meta = new PLL_Toggle_User_Meta( sprintf( 'pll_machine_translation_%s', $this->service->get_slug() ) ); register_rest_field( 'user', $this->user_meta->get_meta_name(), array( 'get_callback' => array( $this->user_meta, 'get' ), 'update_callback' => array( $this->user_meta, 'update' ), ) ); add_filter( 'pll_block_editor_plugin_settings', array( $this, 'get_service_settings' ) ); add_filter( 'pll_block_editor_plugin_settings', array( $this, 'get_settings_errors' ) ); } /** * Adds service properties in UI settings. * * @since 3.6 * * @param array $settings UI settings. * @return array Updated UI settings. */ public function get_service_settings( $settings ) { $settings['machine_translation'] = array( 'slug' => $this->service::get_slug(), 'name' => $this->service->get_name(), 'icon' => $this->service->get_icon_properties(), 'isActive' => $this->service->is_active(), ); return $settings; } /** * Adds machine translation errors in UI settings. * * @since 3.6 * * @param array $settings UI settings. * @return array Updated UI settings. */ public function get_settings_errors( $settings ) { $settings_errors = get_settings_errors( 'polylang' ); if ( empty( $settings_errors ) ) { return $settings; } $settings['machine_translation']['errors'] = $settings_errors; return $settings; } }