Wordpressの特定のユーザーロールのカテゴリのみを表示しようとしています。 このコードは、ログインしていないときや別のユーザーの役割を持っているときにカテゴリの製品を表示していないため、動作します。一部のWoocommerce製品カテゴリとwpmlを非表示にする
しかし、私が抱えている問題は次のとおりです。 ウェブサイトはWPMLを使用しており、私のコードは英語のためだけに働いていました。しかし、他の言語のためではありません。だから同じカテゴリーの別のカテゴリidをテストするために追加しましたが、これはオランダ語のためだけですので、英語とオランダ語で動作することを期待していましたが、英語のものは期待できません。
私が今使っているコードは次のとおりです。
function wholeseller_role_cat($q) {
// Get the current user
$current_user = wp_get_current_user();
// Displaying only "Wholesale" category products to "whole seller" user role
if (in_array('wholeseller', $current_user->roles)) {
// Set here the ID for Wholesale category
$q->set('tax_query', array(
array(
'taxonomy' => 'product_cat',
'field' => 'id',
'terms' => '127,128', // your category ID
)
));
// Displaying All products (except "Wholesale" category products)
// to all other users roles (except "wholeseller" user role)
// and to non logged user.
} else {
// Set here the ID for Wholesale category
$q->set('tax_query', array(
array(
'taxonomy' => 'product_cat',
'field' => 'id',
'terms' => '127,128', // your category ID
'operator' => 'NOT IN'
)
));
}
}
add_action('woocommerce_product_query', 'wholeseller_role_cat');
だから、英語のカテゴリIDは127で、オランダ語のためには、128 だ誰かが、これが再び作業を取得するために私を助けることができますか?
誰もが私にこれを手伝うことができますか?
更新
ユーザの役割がWholesellerとき、英語とオランダ語の言語は今だけのカテゴリを示しています。しかし私は私のウェブサイトにいくつかの言語を追加しています。
ここでは、対応するカテゴリIDとの完全なリストは、次のとおりです。
English (en) => 117
Dutch (nl) ===> 118
French (fr) ==> 131
Italian (it) => 134
Spanish (es) => 137
German (de) ==> 442
どのように私はそれが2つの以上の言語のために働くことができますか?
ありがとう! functions.phpにコードを追加しましたが、機能しません。私は、ショップページに隠れたカテゴリの製品をオランダ語で見続けています。他のカテゴリのIDを追加しようとしましたが、まだ動作していません。何か案は? @LoicTheAztec – 123MijnWebsite
ありがとうございました! – 123MijnWebsite
こんにちは@LoiTheAztecありがとうございました!唯一のことは、ユーザーの役割がwholesellerでない場合、ID 127のカテゴリのみを表示するということです。しかし、逆にする必要がありますか?だから、ユーザーロールがwholesellerの場合は、カテゴリ127,128のみを表示する必要があります。 – 123MijnWebsite