WPML

Обзор проблемы

Пользователи без прав администратора, такие как редакторы или пользователи с произвольными ролями, сталкиваются с ошибкой 403 Forbidden в консоли браузера при доступе к определенным функциям WPML, связанным с синхронизацией заданий на перевод в Расширенном редакторе переводов (ATE). Эта ошибка отображается при просмотре вкладки консоли в инструментах разработчика браузера.

Обратите внимание, что эта проблема не повлияет на Ваш сайт или его переводы — Вы можете продолжать использовать WPML и переводить Ваш сайт.

Обходное решение

Пожалуйста, перед продолжением убедитесь, что у Вас есть полная резервная копия Вашего сайта.

  • Откройте файл …/wp-content/plugins/sitepress-multilingual-cms/classes/ATE/Loader.php.
  • Замените:
    Hooks::onAction( 'wp_loaded' )
         ->then( [ self::class, 'getData' ] )
         ->then( $maybeLoadStatusBarAndATEConsole )
         ->then( Resources::enqueueApp( 'ate-jobs-sync' ) )
         ->then( Fns::always( make( \WPML_TM_Scripts_Factory::class ) ) )
         ->then( invoke( 'localize_script' )->with( 'wpml-ate-jobs-sync-ui' ) );
  • На:
    if (current_user_can('translate') || current_user_can('manage_options') || current_user_can('manage_translations')) {
    	Hooks::onAction( 'wp_loaded' )
    	     ->then( [ self::class, 'getData' ] )
    	     ->then( $maybeLoadStatusBarAndATEConsole )
    	     ->then( Resources::enqueueApp( 'ate-jobs-sync' ) )
    	     ->then( Fns::always( make( \WPML_TM_Scripts_Factory::class ) ) )
    	     ->then( invoke( 'localize_script' )->with( 'wpml-ate-jobs-sync-ui' ) );
    }

Все известные проблемы