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
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?
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
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.
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;
}
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.
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.
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.
Tags plugins e-commerce