FernandoAcosta.Net

Filtros dos métodos de envio

1 min de leituraAtualizado há 2 semanas

O plugin troca a origem do frete nestes filtros:

Filtro Método Prioridade do plugin
woocommerce_correios_origin_postcode ($postcode, $method_id, $instance_id, $package) Correios 100
wc_melhor_envio_origin_postcode ($postcode, $method_id, $instance_id, $package) Melhor Envio 10
wc_distance_rate_origin ($address, $package, $method) Distance Rate Shipping 10
woocommerce_shipping_free_shipping_is_available ($available, $package, $method) Frete grátis 10

Para mudar o resultado, use prioridade maior que a do plugin.

Vendedor sem CEP válido recebe '' como origem. No Melhor Envio, o plugin também tira as cotações desse pacote em woocommerce_package_rates (prioridade 10), então devolver outro CEP no filtro de origem não basta.

Exemplos

PAC sempre do CEP da loja, SEDEX do CEP do vendedor:

add_filter( 'woocommerce_correios_origin_postcode', function ( $postcode, $method_id ) {
	return false !== strpos( $method_id, 'pac' ) ? get_option( 'woocommerce_store_postcode' ) : $postcode;
}, 200, 4 );

Frete grátis sempre para o vendedor 99:

add_filter( 'woocommerce_shipping_free_shipping_is_available', function ( $available, $package ) {
	return 99 === (int) ( $package['wcsp_vendor_id'] ?? 0 ) ? true : $available;
}, 100, 2 );

Campos do pacote em Estrutura do pacote.

Foi útil?