Ativando o frete grátis no Woo Commerce por itens específicos [fechados]

8

Gostaria de saber se é possível ativar o envio gratuito com o Woo Commerce apenas se determinados itens (ou itens de determinadas categorias / classes de envio) estiverem incluídos no carrinho.

A opção Frete grátis é ativada apenas com base no valor do carrinho ou por meio de um código de cupom, portanto, eu investiguei o frete de taxa fixa e descobri que ele prioriza a classe de frete mais cara em relação às mais baratas. Isso significa que a classe de frete grátis que eu criei nunca substitui a cobrança padrão.

Eu entendo a lógica por trás disso, mas é o oposto do que eu preciso, já que a idéia é incentivar compras de produtos com maior margem de lucro, eliminando as taxas de entrega quando elas são incluídas em um pedido.

Eu não sei se o que estou tentando alcançar simplesmente não é possível dentro do Woo Commerce. Um cupom que se aplica apenas a determinados produtos / categorias parece ser o mais próximo que posso obter, mas eu prefiro não forçar os usuários a inserir um código no checkout.

Alguém sabe se existe alguma maneira mais simples de oferecer aos usuários que compram determinados produtos frete grátis?

    
por James O'Neill 14.03.2013 / 14:15

6 respostas

1

Talvez isso não responda totalmente à sua pergunta, mas o plug-in de frete por tabela oferece a opção de definir uma prioridade para uma determinada taxa. Além disso, esta discussão dá muitas dicas de onde você poderia procurar soluções

    
por Ewout 15.03.2013 / 09:36
5
  

Alguém sabe se há maneiras mais simples de oferecer aos usuários que compram   certos produtos frete grátis?

Na verdade, ao criar um produto, você pode marcá-lo como um produto virtual diretamente no editor do produto e isso excluirá o envio completamente para esse item.

    
por Nathan 09.05.2013 / 18:06
2

Este é um trecho extraído de algumas pessoas de uma discussão sobre o assunto do GitHub vinculada por @Ewout em outra resposta. Eu adicionei um var_dump() , para que você possa descomentar e verificar exatamente o que deseja remover.

$available_methods é um array de:

$available_methods as $method_id => $method

Compare com $method_id se precisar de verificações mais específicas.

// Hide standard shipping option when free shipping is available
add_filter( 'woocommerce_available_shipping_methods', 'wpse90835_hide_standard_shipping_when_free_is_available' );
/**
 *  Hide Standard Shipping option when free shipping is available
 * 
 * @param array $available_methods
 */
function wpse90835_hide_standard_shipping_when_free_is_available( $available_methods )
{
    // Developers!: Dump this to see what you can unset
    # var_dump( $available_methods );

    // remove standard shipping option
    if ( 
        isset( $available_methods['free_shipping'] ) 
        AND isset( $available_methods['flat_rate'] )
    )
        unset( $available_methods['flat_rate'] );


    return $available_methods;
}
    
por kaiser 06.09.2013 / 22:58
2

Eu criei um plug-in WooCommerce que permite aos usuários definir configurações avançadas para envio gratuito. No plugin, é possível selecionar determinados produtos para frete grátis.

Você pode encontrar o plugin gratuitamente no site wordpress.org chamado WooCommerce Advanced Free Shipping

Espero que isso ajude.

    
por Sormano 04.05.2014 / 17:47
0

Com base no código do Kaiser (acima), criei o seguinte código:

    /**
 *  Hide free shipping option when Standard Shipping is available
 * 
 * @param array $available_methods
 */
function mwe_hide_free_shipping_when_standard_shipping_is_available($available_methods) {

    // remove standard shipping option
    if (isset($available_methods['free_shipping']) AND isset( $available_methods['flat_rate'])) {
        unset($available_methods['free_shipping']);
    }

    return $available_methods;
}
add_filter('woocommerce_available_shipping_methods', 'mwe_hide_free_shipping_when_standard_shipping_is_available');

E em turnos de configuração do WooCommerce, eu tenho frete grátis e taxa fixa ambos habilitados nas opções de envio Woo. Em seguida, configuro uma Classe de Frete, especifique seu custo (por exemplo, £ 7,95) na página de opções Taxa fixa e adicione essa classe de frete aos produtos que desejo cobrar £ 7,95 p & p por.

    
por ban-geoengineering 11.01.2014 / 14:16
0

A opção "virtual" removerá todos os custos de envio, mas também excluirá a opção de enviar para um endereço diferente do endereço de faturamento do cliente. Isso não é um problema se o cliente comprar outros produtos não virtuais também, mas se é a única coisa que eles compram.

    
por user51366 07.05.2014 / 20:44