WPML
ステータス
未解決
トピックタグ
Bug

問題の概要

WPML > 翻訳管理ページの「翻訳者」タブには、「翻訳マネージャーを追加する」オプションがあり、検索ボックスが表示されます。一部の状況では、有効なユーザーを検索しても、選択できるユーザーが何も返されないことがあります。

これは、最小限の必須権限を持つロールが複数存在する場合に発生します。たとえば、ショップマネージャーとコアの編集者ロールの両方が必須権限を持つWooCommerceサイトなどで発生します。

回避策

WPMLプラグインファイルの編集を伴わない簡単な回避策はありません。

plugins/sitepress-multilingual-cms/classes/user/class-wpml-translation-roles-records.phpファイルを編集します。

以下の行(144行目付近)を見つけます。

$preparedUserQuery .= $this->wpdb->prepare( " AND c.meta_value LIKE %s", "%{$required_wp_role}%" );

次のように、ANDをORに変更します。

$preparedUserQuery .= $this->wpdb->prepare( " OR c.meta_value LIKE %s", "%{$required_wp_role}%" );

次に、以下の行(168行目付近)を見つけます。

$users      = $this->wpdb->get_col( $preparedUserQuery );

その直後に次のような2行目を追加します。

$users      = $this->wpdb->get_col( $preparedUserQuery );
$users = array_unique( $users );

このような変更を行う際は、作業を進める前に必ず最新のバックアップを取得してください。

すべての既知の問題 →