Habilitando o frete grátis no Woo Commerce por itens específicos [fechado]

8

Gostaria de saber se é possível habilitar o frete grátis com o Woo Commerce apenas se determinados itens (ou itens de determinadas categorias / classes de remessa) 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, então eu investiguei o frete de tarifa fixa e descobri que ele prioriza a classe de frete mais cara do que as mais baratas. Isso significa que a classe de remessa gratuita que eu criei nunca substitui a cobrança padrão.

Entendo a lógica por trás disso, mas é o oposto do que preciso, pois a idéia é incentivar compras de produtos com margens de lucro mais altas, eliminando as cobranças de entrega quando elas são incluídas em um pedido.

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

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

James O'Neill
fonte
3
Como diabos essa pergunta relacionada ao plug-in do Wordpress foi votada 8 vezes e favoritada 3 vezes pelos desenvolvedores do Wordpress foi fechada como "off-topic" Oo
Ben
@ Ben porque é um plug-in do WooCommerce, e não uma pergunta específica do WordPress (conforme declarado na
Central de

Respostas:

1

Talvez isso não responda totalmente à sua pergunta, mas o plug-in de envio de taxas de tabela oferece a opção de definir uma prioridade para uma taxa específica. Além disso, esta discussão fornece muitas dicas sobre onde você pode procurar soluções

Ewout
fonte
Obrigado. Olhando a documentação para o envio de taxas de tabela, parece que ele fará o que eu preciso. Se meu empregador optar pela licença, atualizarei se ela é útil.
James O'Neill
Não poste links para recursos externos. Convoque-os aqui e use o link em cima dele. Se o link continuar, a resposta é inútil e estamos tendo uma luta difícil para impedir a podridão do link. -1
kaiser
5

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

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

Nathan
fonte
1
Isso funciona para produtos simples, mas não para outros tipos de produtos - variáveis, por exemplo. Boa tentativa embora. Provavelmente isso funcionará para algumas pessoas.
Alexander Lee Williams
Por que isso não funciona para produtos variáveis? Você pode marcar cada variação como virtual.
BFTrick 17/09/2013
Eu concordo @BFTrick
Nathan
1
Este também é ruim porque o sistema não o acesso de endereço de entrega do cliente, o que é muito importante;)
Kane
2

Aqui está um trecho coletado de algumas Gists de uma discussão do GitHub vinculada por @Ewout em outra resposta. Adicionei um var_dump(), para que você possa descomentar e verificar exatamente o que deseja remover.

$available_methodsé um arraydos:

$available_methods as $method_id => $method

Compare com $method_idse você 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;
}
kaiser
fonte
2

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

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

Espero que isto ajude.

Sormano
fonte
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, tenho frete grátis e taxa fixa habilitados nas opções de envio do Woo. Depois, apenas configurei uma classe de remessa, especifique seu custo (por exemplo, 7,95 libras) na página de opções de tarifa fixa e, em seguida, basta adicionar essa classe de remessa aos produtos pelos quais quero cobrar 7,95 p / p.

proibição de geoengenharia
fonte
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 cobrança do cliente. Isso não é um problema se o cliente compra outros produtos não virtuais também, mas é se é a única coisa que ele compra.

user51366
fonte