Alterando o preço de exibição do WooCommerce com base na função e na categoria do usuário [closed]

11

Estou procurando exibir um preço diferente com base em uma função do usuário (atacadista, revendedor, etc.) E com base na categoria.

Há um plug-in de precificação dinâmica que exibe esses descontos quando um item é adicionado ao carrinho, mas não na própria página.

Existe uma maneira de usar um filtro ou uma ação para verificar o nível do usuário, verificar a categoria do item e alterar o preço dinamicamente?

    
por Tricky Buddha 27.08.2013 / 07:07

2 respostas

16

Sim, você pode usar o gancho do filtro woocommerce_get_price para filtrar o valor com base na função do usuário e retornar um preço adequadamente, por exemplo:

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 );
}
    
por Bainternet 27.08.2013 / 11:33
0

Você pode experimentar Preços específicos do cliente para o WooCommerce . Com este plugin, você pode adicionar preços diferentes para usuários registrados.

Atualmente, o plug-in está em sua fase inicial, mas haveria atualizações em breve para oferecer suporte a recursos adicionais, como preço com base na categoria do produto.

    
por WisdmLabs 06.09.2014 / 10:27