FernandoAcosta.Netdocs

Filtros disponíveis

2 min de leituraAtualizado há 5 dias

Referência consolidada de todos os filtros disponíveis no plugin. Use para customizar comportamento sem editar o código do plugin.

Cálculo do prazo

wc_adpp_additional_days

Modifica o cálculo final dos dias adicionais. Último filtro aplicado antes do retorno.

add_filter( 'wc_adpp_additional_days', function( $days, $product, $variation, $cart_item ) {
    // duplicar o prazo para produtos acima de 5kg
    if ( $product->get_weight() > 5 ) {
        return $days * 2;
    }
    return $days;
}, 10, 4 );

Parâmetros:

  • $days (int|false) — dias calculados.
  • $product (WC_Product) — produto pai.
  • $variation (WC_Product_Variation|null) — variação, quando aplicável.
  • $cart_item (array|null) — dados do item no carrinho, quando em contexto de carrinho.

wc_adpp_per_product_always_show_message

Força a exibição da mensagem mesmo quando o produto tem 0 dias adicionais.

add_filter( 'wc_adpp_per_product_always_show_message', '__return_true' );

Padrão: false — produtos com 0 dias e sem prazo configurado não exibem mensagem.


wc_adpp_product_message

Modifica o HTML da mensagem exibida na página do produto.

add_filter( 'wc_adpp_product_message', function( $message, $days, $product ) {
    return '<span class="icon-clock"></span>' . $message;
}, 10, 3 );

Parâmetros:

  • $message (string) — HTML completo da mensagem.
  • $days (int) — dias adicionais.
  • $product (WC_Product) — o produto.

Métodos de envio nativos

wc_additional_days_per_product_methods

Define quais métodos de envio nativos do WooCommerce ganham automaticamente o campo Prazo de entrega.

add_filter( 'wc_additional_days_per_product_methods', function( $methods ) {
    $methods['meu_metodo'] = true;
    unset( $methods['free_shipping'] );
    return $methods;
});

Padrão: array( 'flat_rate' => true, 'local_pickup' => true, 'free_shipping' => true ).


wc_additional_days_per_product_delivery_time

Modifica o texto adicionado ao label dos métodos nativos quando há prazo configurado.

add_filter( 'wc_additional_days_per_product_delivery_time', function( $label, $delivery_time, $rate ) {
    return sprintf( '(Delivery in %d business days)', $delivery_time );
}, 10, 3 );

Padrões:

  • flat_rate / free_shipping: (Entrega em X dias úteis).
  • local_pickup: (Disponível em X dias úteis).

Parâmetros:

  • $label (string) — texto formatado padrão.
  • $delivery_time (int) — número de dias.
  • $rate (WC_Shipping_Rate) — o método de envio.

Integração com plugins de frete externos

wc_adpp_additional_days_custom_metadata

Indica qual metadado de um método de envio customizado contém o prazo de entrega — usado para integrar com plugins não suportados nativamente.

add_filter( 'wc_adpp_additional_days_custom_metadata', function( $custom_meta, $meta_data, $rate ) {
    if ( str_contains( $rate->get_method_id(), 'meu-plugin-frete' ) ) {
        return 'minha_meta_de_prazo';
    }
    return $custom_meta;
}, 10, 3 );

Parâmetros:

  • $custom_meta (string|false) — chave do metadado (inicialmente false).
  • $meta_data (array) — todos os metadados do método.
  • $rate (WC_Shipping_Rate) — o método de envio.

Tutorial completo em Integrar com plugin de frete não suportado.


wc_additional_days_per_product_not_replace

Impede a substituição de um número específico no label de um método de envio. Útil quando o label tem números que não são prazo (CEP, código de serviço).

add_filter( 'wc_additional_days_per_product_not_replace', function( $skip, $index, $rate ) {
    if ( $index === 0 ) {
        return true;
    }
    return $skip;
}, 10, 3 );

Parâmetros:

  • $skip (bool) — se deve pular esta substituição.
  • $index (int) — índice do número encontrado no label.
  • $rate (WC_Shipping_Rate) — o método de envio.

Debug

wc_additional_days_per_product_debug

Força ativar/desativar o debug programaticamente, sobrescrevendo a opção de admin.

add_filter( 'wc_additional_days_per_product_debug', function() {
    return 'staging' === wp_get_environment_type();
});

Detalhes em Debug e logs.

Regras customizadas

wc_adpp_custom_rules

Define regras customizadas que adicionam campos extras na edição de produto.

add_filter( 'wc_adpp_custom_rules', function( $rules ) {
    $rules['gravacao'] = array(
        'label_append' => 'Gravação',
        'description'  => 'Dias adicionais para gravação personalizada',
    );
    return $rules;
});

wc_adpp_additional_days_custom_rules

Aplica a lógica das regras customizadas ao cálculo do prazo.

add_filter( 'wc_adpp_additional_days_custom_rules', function( $extra_time, $product, $rules ) {
    foreach ( $rules as $rule_id => $rule ) {
        $rule_days = get_post_meta( $product->get_id(), '_wc_additional_days_per_product_' . $rule_id, true );
        if ( $rule_days ) {
            $extra_time += intval( $rule_days );
        }
    }
    return $extra_time;
}, 10, 3 );

Tutorial completo em Regras customizadas.

Foi útil?