claudiosanches / woocommerce-correios

Correios shipping to the WooCommerce WordPress plugin
http://wordpress.org/plugins/woocommerce-correios/
GNU General Public License v2.0
155 stars 96 forks source link

Hook para alterar CEP remetente? #108

Closed Luc45 closed 1 year ago

Luc45 commented 6 years ago

Boa tarde.

Um cliente usa o Dokan, um plugin de Marketplace onde vendedores cadastram seus próprios produtos. Cada vendedor tem seu CEP, e eu estava precisando fazer com que o plugin calcule o frete de acordo com o CEP do vendedor, não da loja. Existe algum hook que me permita alterar o CEP do remetente?

Obrigado!

henriquemattos commented 6 years ago

Boa tarde, @Luc45 . Acredito que essa requisição pode ser duplicada ou similar ao pedido da @mayracarvalho neste link na issue #103 .

No caso ela usa o WooCommerce Product Vendors mas a necessidade dela é a mesma que a sua.

Estou inserindo este comentário para que haja o link entre as duas issues e ambos solicitantes possam acompanhar o desenrolar.

Grande abraço, Henrique Mattos

Luc45 commented 6 years ago

Uma pesquisa por "do_action" no código do plugin revela que os únicos hooks estão em templates de email: image

Já os filtros, existem alguns, mas nenhum que tenha a ver com o CEP. image

Vou ver se consigo desenvolver esse hook/filter e dar um pull-request.

Luc45 commented 6 years ago

Aqui pessoal, na verdade, o hook existe sim, é o woocommerce_correios_origin_postcode.

Fiz a implementação com o Dokan da seguinte forma:

/**
*   Retorna o CEP de um seller pelo ID
*/
function get_cep_seller($seller_id) {
    $address = get_user_meta($seller_id, 'dokan_profile_settings');
    return $address[0]['address']['zip'];
}

/**
*   Hook para alterar o CEP de origem do WooCommerce Correios
*
*   @param $cep_origem: CEP de origem. Deve ser alterado e retornado.
*   @param $metodo_entrega: correios_pac, correios_sedex, etc
*   @param $woocommerce_shipping_method_id: ID único do método de entrega dentro do WooCommerce
*   @param $carrinho: Um array com todos os itens do carrinho.
*/
function muda_cep_origem( $cep_origem, $metodo_entrega, $woocommerce_shipping_method_id, $carrinho ) {
    if (!empty($carrinho['seller_id']) && is_int($carrinho['seller_id'])) {
        $cep_origem = get_cep_seller($carrinho['seller_id']);
    }
    return $cep_origem;
}
add_filter( 'woocommerce_correios_origin_postcode', 'muda_cep_origem', 10, 4 );

Deu certinho. Abraços!

claudiosanches commented 6 years ago

@Luc45 so precisou disso? É que não tenho o dokan para testar, mas se realmente esta funcionando, coloco isso como um tutorial para quem quiser integrar.

Luc45 commented 6 years ago

@claudiosanches Funcionou sim! Com esse hook ele calcula o frete a partir do CEP do vendedor, não da loja. Só não tem a questão do frete grátis, pois se parar pra pensar, essa é uma lógica um pouco difícil de implementar, pois cada vendedor mora em um lugar, etc, mas o valor do frete em si, sim funciona.

Eu estava pensando em disponibilizar um plugin que faria essa implementação (gratuito e open-source), tanto para Dokan como para os outros Marketplaces, com verificações mais consistentes de validade de CEP, etc. Acha uma boa?

Luc45 commented 6 years ago

Esse é o site do cliente, rodando Dokan e o código acima, você pode adicionar uns produtos no carrinho e testar: https://www.comalma.com.br

claudiosanches commented 6 years ago

Pensando em implementar isso dentro do plugin direto mesmo. Testar com o Dokan agora, versão gratuita dele funciona isso sem problema?

mayracarvalho commented 6 years ago

O meu é o product vendors, será que funciona também?

2018-05-07 18:21 GMT-03:00 Claudio Sanches notifications@github.com:

Pensando em implementar isso dentro do plugin direto mesmo. Testar com o Dokan agora, versão gratuita dele funciona isso sem problema?

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/claudiosanches/woocommerce-correios/issues/108#issuecomment-387210602, or mute the thread https://github.com/notifications/unsubscribe-auth/Ahl--UYu9sCCBj4pLIj57pxNspGXvVKPks5twLrZgaJpZM4Tqtrt .

-- M A Y S T U F F S creative art direction | branded content digital marketing | social media

https://maystuffs.com/ https://maystuffs.com/

claudiosanches commented 6 years ago

@mayracarvalho não vai funcionar, menos que seja possível fazer algo similar.

mayracarvalho commented 6 years ago

Mas se fizer algo similar ao seu código, será que funciona? Tive exatamente o mesmo problema.

2018-05-07 18:38 GMT-03:00 Claudio Sanches notifications@github.com:

@mayracarvalho https://github.com/mayracarvalho não vai funcionar, menos que seja possível fazer algo similar.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/claudiosanches/woocommerce-correios/issues/108#issuecomment-387214796, or mute the thread https://github.com/notifications/unsubscribe-auth/Ahl--X_F18JrtFXH8t1yoI9uGHSGASR6ks5twL7KgaJpZM4Tqtrt .

-- M A Y S T U F F S creative art direction | branded content digital marketing | social media

https://maystuffs.com/ https://maystuffs.com/

Luc45 commented 6 years ago

@claudiosanches Bixo, tenho 99% de certeza que a versão gratuita é suficiente para testar isso.

@mayracarvalho creio que seja possível adaptar para o Product Vendors, só não consigo te dizer com certeza pois não tenho e não consigo ter pois é pago. Abraços.

claudiosanches commented 6 years ago

@Luc45 @mayracarvalho beleza, vou ver de testar certinho e criar integração para ambos se possível.

mayracarvalho commented 6 years ago

Obrigada, me avisa se rolar essa integração, por favor!

2018-05-07 23:59 GMT-03:00 Claudio Sanches notifications@github.com:

@Luc45 https://github.com/Luc45 @mayracarvalho https://github.com/mayracarvalho beleza, vou ver de testar certinho e criar integração para ambos se possível.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/claudiosanches/woocommerce-correios/issues/108#issuecomment-387269346, or mute the thread https://github.com/notifications/unsubscribe-auth/Ahl--SvErdr0KwddhtVRfw5DCaaxPnzZks5twQoNgaJpZM4Tqtrt .

-- M A Y S T U F F S creative art direction | branded content digital marketing | social media

https://maystuffs.com/ https://maystuffs.com/

henriquemattos commented 6 years ago

@mayracarvalho esse código do @Luc45 não vai funcionar pro WooCommerce Product Vendors de forma nativa pois o código está buscando o dokan_profile_settings na tabela de metadados do usuário (seller). Para o WCPV, precisa ver qual o parâmetro (chave) que armazena o CEP do vendedor para fazer esse cálculo. Não deve ser complicado, vou dar uma olhada no seu código e vemos como proceder.

Seria interessante se essa funcionalidade pudesse vir nativa ou do WCPV ou do WC Correios, aí já complica um pouco mais. Se o Claudio não disponibilizar algo nativo, a gente vê um hook baseado no código do Luc, muito simples e bem feito, por sinal. :)

claudiosanches commented 6 years ago

@henriquemattos querendo adicionar a integração aqui, se conseguir verificar isso eu agradeço, devo tentar ver de integrar isso na sexta feira.

mayracarvalho commented 6 years ago

Olá Lucas, tudo bem? Qual é o seu email?? Obrigada!

Em 9 de maio de 2018 14:01, Claudio Sanches notifications@github.com escreveu:

@henriquemattos https://github.com/henriquemattos querendo adicionar a integração aqui, se conseguir verificar isso eu agradeço, devo tentar ver de integrar isso na sexta feira.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/claudiosanches/woocommerce-correios/issues/108#issuecomment-387806858, or mute the thread https://github.com/notifications/unsubscribe-auth/Ahl--ZJ8Ku0igksgI0wmmX4F89UUE-z1ks5twyDwgaJpZM4Tqtrt .

-- M A Y S T U F F S creative art direction | branded content digital marketing | social media

https://maystuffs.com/ https://maystuffs.com/

mayracarvalho commented 6 years ago

Olá Claudio, tudo bem?

Conseguiu criar a integração?

Obrigada Bjs

2018-05-07 23:59 GMT-03:00 Claudio Sanches notifications@github.com:

@Luc45 https://github.com/Luc45 @mayracarvalho https://github.com/mayracarvalho beleza, vou ver de testar certinho e criar integração para ambos se possível.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/claudiosanches/woocommerce-correios/issues/108#issuecomment-387269346, or mute the thread https://github.com/notifications/unsubscribe-auth/Ahl--SvErdr0KwddhtVRfw5DCaaxPnzZks5twQoNgaJpZM4Tqtrt .

-- M A Y S T U F F S creative art direction | branded content digital marketing | social media

https://maystuffs.com/ https://maystuffs.com/

Luc45 commented 6 years ago

@mayracarvalho se ainda quiser meu email, entre no meu site: www.lucasbustamante.com.br

Abraços

claudiosanches commented 6 years ago

Ainda não, estou em uma viagem a trabalho e não tive tempo para ver, provavelmente apenas na próxima semana.

On Thu, May 17, 2018, 18:53 mayracarvalho notifications@github.com wrote:

Olá Claudio, tudo bem?

Conseguiu criar a integração?

Obrigada Bjs

2018-05-07 23:59 GMT-03:00 Claudio Sanches notifications@github.com:

@Luc45 https://github.com/Luc45 @mayracarvalho https://github.com/mayracarvalho beleza, vou ver de testar certinho e criar integração para ambos se possível.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub < https://github.com/claudiosanches/woocommerce-correios/issues/108#issuecomment-387269346 , or mute the thread < https://github.com/notifications/unsubscribe-auth/Ahl--SvErdr0KwddhtVRfw5DCaaxPnzZks5twQoNgaJpZM4Tqtrt

.

-- M A Y S T U F F S creative art direction | branded content digital marketing | social media

https://maystuffs.com/ https://maystuffs.com/

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/claudiosanches/woocommerce-correios/issues/108#issuecomment-389953573, or mute the thread https://github.com/notifications/unsubscribe-auth/ABNJ4wKL01TH0M1npwxiTJTrZmG2ADQ9ks5tzbkLgaJpZM4Tqtrt .

mayracarvalho commented 6 years ago

Oi Claudio, tudo bem?

Vc chegou a fazer a integração?

Obrigada, Bjs

2018-05-17 16:46 GMT-03:00 Claudio Sanches notifications@github.com:

Ainda não, estou em uma viagem a trabalho e não tive tempo para ver, provavelmente apenas na próxima semana.

On Thu, May 17, 2018, 18:53 mayracarvalho notifications@github.com wrote:

Olá Claudio, tudo bem?

Conseguiu criar a integração?

Obrigada Bjs

2018-05-07 23:59 GMT-03:00 Claudio Sanches notifications@github.com:

@Luc45 https://github.com/Luc45 @mayracarvalho https://github.com/mayracarvalho beleza, vou ver de testar certinho e criar integração para ambos se possível.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub < https://github.com/claudiosanches/woocommerce-correios/issues/108# issuecomment-387269346 , or mute the thread < https://github.com/notifications/unsubscribe-auth/Ahl-- SvErdr0KwddhtVRfw5DCaaxPnzZks5twQoNgaJpZM4Tqtrt

.

-- M A Y S T U F F S creative art direction | branded content digital marketing | social media

https://maystuffs.com/ https://maystuffs.com/

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/claudiosanches/woocommerce-correios/issues/108# issuecomment-389953573, or mute the thread https://github.com/notifications/unsubscribe-auth/ ABNJ4wKL01TH0M1npwxiTJTrZmG2ADQ9ks5tzbkLgaJpZM4Tqtrt .

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/claudiosanches/woocommerce-correios/issues/108#issuecomment-389986774, or mute the thread https://github.com/notifications/unsubscribe-auth/Ahl--bqXPWBmbesGL_BLHW7h2EFuPvk1ks5tzdN8gaJpZM4Tqtrt .

-- M A Y S T U F F S creative art direction | branded content digital marketing | social media

https://maystuffs.com/ https://maystuffs.com/

mayracarvalho commented 6 years ago

Olá Claudio, tudo bem?

Vc tem alguma novidade sobre a integração do plugin?

Obrigada, Bjs

2018-05-08 9:19 GMT-03:00 Mayra Carvalho info@maystuffs.com:

Obrigada, me avisa se rolar essa integração, por favor!

2018-05-07 23:59 GMT-03:00 Claudio Sanches notifications@github.com:

@Luc45 https://github.com/Luc45 @mayracarvalho https://github.com/mayracarvalho beleza, vou ver de testar certinho e criar integração para ambos se possível.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/claudiosanches/woocommerce-correios/issues/108#issuecomment-387269346, or mute the thread https://github.com/notifications/unsubscribe-auth/Ahl--SvErdr0KwddhtVRfw5DCaaxPnzZks5twQoNgaJpZM4Tqtrt .

-- M A Y S T U F F S creative art direction | branded content digital marketing | social media

https://maystuffs.com/ https://maystuffs.com/

-- M A Y S T U F F S creative art direction | branded content digital marketing | social media

https://maystuffs.com/ https://maystuffs.com/

leoregis commented 6 years ago

Preciso muito disso pro WC Marketplace. Sera que da pra adaptar esse codigo facil? Alguma dica de como achar o parametr oque teria que alterar?

vitorarielgarcia commented 5 years ago

Qual o processo que devo fazer para fazer a integração com o plugin?

claudiosanches commented 5 years ago

Mantendo fechado para novos comentários, já que não esta saindo nada construtivo deles agora. Quando eu tiver tempo atualizo todo mundo.