ユーザーの役割(卸売業者、販売業者など)とカテゴリに基づいて異なる価格を表示しようとしています。
商品がカートに追加されるとこれらの値引きを表示する動的価格設定プラグインがありますが、ページ自体には表示されません。
フィルタまたはアクションを使用してユーザーレベルを確認し、アイテムのカテゴリを確認してから価格を動的に変更する方法はありますか?
はい、あります。woocommerce_get_price
フィルターフックを使用してユーザーロールに基づいて値をフィルターし、それに応じて価格を返すことができます。
add_filter('woocommerce_get_price', 'custom_price_WPA111772', 10, 2);
/**
* custom_price_WPA111772
*
* filter the price based on category and user role
* @param $price
* @param $product
* @return
*/
function custom_price_WPA111772($price, $product) {
if (!is_user_logged_in()) return $price;
//check if the product is in a category you want, let say shirts
if( has_term( 'shirts', 'product_cat' ,$product->ID) ) {
//check if the user has a role of dealer using a helper function, see bellow
if (has_role_WPA111772('dealer')){
//give user 10% of
$price = $price * 0.9;
}
}
return $price;
}
/**
* has_role_WPA111772
*
* function to check if a user has a specific role
*
* @param string $role role to check against
* @param int $user_id user id
* @return boolean
*/
function has_role_WPA111772($role = '',$user_id = null){
if ( is_numeric( $user_id ) )
$user = get_user_by( 'id',$user_id );
else
$user = wp_get_current_user();
if ( empty( $user ) )
return false;
return in_array( $role, (array) $user->roles );
}
あなたは試してみることができます WooCommerceのための顧客固有の価格設定 。このプラグインを使用すると、登録ユーザーに異なる価格を追加できます。
現在プラグインは初期段階にありますが、製品カテゴリに基づく価格などの追加機能をサポートするためのアップデートが間もなくあります。