- ステータス
- 未解決
- 報告対象
- WPML Multilingual CMS 4.5.9
- トピックタグ
- Bug
問題の概要
編集者やカスタムロールなどの管理者以外のユーザーが、高度な翻訳エディタ(ATE)のジョブ同期に関連する特定のWPML機能にアクセスすると、ブラウザのコンソールで403 Forbiddenエラーが発生します。このエラーは、ブラウザの開発者ツールでコンソールタブを調べると確認できます。
この問題はサイトやその翻訳には影響しません。引き続きWPMLを使用してWebサイトを翻訳できます。
回避策
続行する前に、サイトの完全なバックアップを必ず取得してください。
- …/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' ) ); }