Skip to content

Instantly share code, notes, and snippets.

@2aces
Last active September 9, 2016 04:21
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save 2aces/8ca21452faa690f3f0a289ef9b18ae47 to your computer and use it in GitHub Desktop.
Save 2aces/8ca21452faa690f3f0a289ef9b18ae47 to your computer and use it in GitHub Desktop.
Filtro de custo do método PAC do plugin woocommerce-correios
/**
* yourprefix_free_shipping_pac function.
* filtra o custo do método de envio PAC no plugin Woocommerce Correios
*
* @access public
* @param array $arr Array com dados enviado pelas classes WC_Correios_International_Shipping e WC_Correios_Shipping do woocommerce-correios
* @param int $instance_id enviado pelas classes WC_Correios_International_Shipping and WC_Correios_Shipping do woocommerce-correios
* @return array
*/
function seuprefixo_pac_gratis($arr, $instance_id){
$arr['cost'] = 000;
// você pode filtrar por instance_id. Por exemplo, para deixar grátis apenas em certas áreas
// você encontra este parâmetro na página de configuração do método (e.g. wp-admin/admin.php?page=wc-settings&tab=shipping&instance_id=5)
// if ( === $instance_id ) {
// $arr['cost'] = 000;
// }
return $arr;
}
add_filter( 'woocommerce_correios_correios-pac_rate', 'seuprefixo_pac_gratis');
@2aces
Copy link
Author

2aces commented Aug 31, 2016

Para filtrar outros métodos de envio do Woocommerce Correios, troque 'correios-pac' no nome do filtro pelo id do método. (e.g. 'correios-carta-registrada', 'correios-sedex-hoje', 'correios-sedex', 'correios-sedex-10-envelope' ).

Exemplo:

function seuprefixo_sedex_hoje_gratis($arr, $instance_id){
    $arr['cost'] = 000;
    return $arr;
}
add_filter( 'woocommerce_correios_correios-sedex-hoje_rate', 'seuprefixo_sedex_hoje_gratis');

@claudiosanches
Copy link

claudiosanches commented Sep 9, 2016

Não precisa ser 000, apenas 0 basta nisso dai.
Também para usar o $instance_id é necessário indicar que vai receber mais de um parametro com:

add_filter( 'woocommerce_correios_correios-pac_rate', 'seuprefixo_pac_gratis', 10, 2);

Se não tiver esse 2 no final apenas o $arr vai funcionar.

Mas fico feliz de ver galera finalmente usando os filtros que coloco nos plugins 😄

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment