PageSourceSearch

https://quatrorodas.abril.com.br/wp-content/plugins/abril-plugins/…/js/abril-checkout-voucher.js?v=2026.09.28

js abril.com.br collected 2026-10-01 07:05:31 UTC 22,113 bytes, 420 lines download raw bytes

1let url5 = new URL(location.href);
2$(document).on('click', 'button.apply_voucher', function(e){
3    console.log("apply voucher");
4    let voucher = '';
5    let pagArr = [];
6    let voucherCC = false;
7    if(document.getElementById('checkout_ticket') !== null){
8        voucher = document.getElementById('checkout_ticket').value;
9    }
10
11    let cep        = document.getElementById('endereco_cep').value;
12
13    $.ajax({
14        url: ajaxurl,
15        type: 'POST',
16        data: {
17            action:     'abril_get_voucher23',
18            voucher:    voucher,
19            oferta:     $("body").data('oferta'),
20            cep:        cep,
21            nonce:      $('#validar_formulario23 input#checkout_send').val(),
22        },
23        beforeSend: function() {
24            $('.loader').addClass('active');
25        },
26        success: function(response) {
27            limparValorVoucher(true);
28            $('.single-checkout .checkout-card.ticket.active div.voucher-response').css('display', 'table');
29
30            if(typeof response.codStatus !== 'undefined'){
31                let erroTxt = 'Erro ao aplicar o voucher tente novamente!';
32                if(response.codErroBarrado === '404'){
33                    erroTxt = response.dscErroBarrado;
34                }
35
36                $('.single-checkout .checkout-card.ticket.active div.voucher-response .success').text(erroTxt).attr('class', 'success checkout-red');
37                $('input[name="checkout_ticket"]').val('');
38
39                var altNA = $(".pagamento-menu").height();
40                $(".blockminutrade").css({'display':'none', 'height':altNA+'px'});
41                $('.pagamento-menu').css('opacity', 1);
42                let payInitOpen = $('.pagamento-menu li').first();
43                let tipo = 'CC';
44                $('.pagamento-menu .formaPgto .fPgto[data-tipo_pgto='+tipo+']').trigger('click');
45                $('.single-checkout .checkout-card.ticket div.voucher-response .success').css("display", "block");
46                $(".single-checkout .checkout-card.ticket div.voucher-response .tipopag").css("display", "none");
47                $('.single-checkout .checkout-card.ticket .input-voucher').removeClass('valid');
48                $(".remove_voucher").css("display", "none");
49                $('.loader').removeClass('active');
50                return;
51            }
52
53            if(typeof response.NA !== 'undefined'){
54                if((response.NA.MENSAL !== undefined) && (response.NA.ANUAL !== undefined)){
55                    return voucherInvalido();
56                }
57                if (response.NA.MENSAL !== undefined){
58                    var responseArr = response.NA.MENSAL[1];
59                }else{
60                    var responseArr = response.NA.ANUAL[1];
61                }
62                if(responseArr.codProjeto != $('body').data('projeto')){
63                    $('.single-checkout .checkout-card.ticket.active div.voucher-response .success').text('O cupom ou vale presente não é válido para esse produto.').attr('class', 'success checkout-red').css("display", "block");
64                    $('input[name="checkout_ticket"]').val('');
65
66                    let payInitOpen = $('.pagamento-menu li').first();
67                    let tipo = 'CC';
68                    $('.pagamento-menu .formaPgto .fPgto[data-tipo_pgto='+tipo+']').trigger('click');
69                    $('.loader').removeClass('active');
70                    $('.single-checkout .checkout-card.ticket .input-voucher').removeClass('valid');
71                    $(".remove_voucher").css("display", "none");
72                    return false;
73                }
74
75                $('.single-checkout .checkout-card.ticket').addClass('active');
76                $('.single-checkout .checkout-card.ticket div.voucher-response .success').text(`Cupom aplicado com sucesso!`);
77                $('.single-checkout .checkout-card.ticket div.voucher-response .success').attr('class', 'success checkout-green');
78                $("#newtop .valor").addClass("voucher");
79                $('input[name="nomVoucher"]').val(`${voucher}`);
80                $('.pagamento-tipo, .fPgto, .formaPgto').removeClass('ativo');
81                $('.box-promotion').removeClass('selected');
82                $('#pagamento option').removeClass('optsel').attr('selected', false);
83                $('.pagamento-menu').css('opacity', '.5');
84                $('.checkout-card-gratis, .total-desconto-NA').css('display', 'block');
85
86                let vOferta = $("body").data("oferta");
87                if(responseArr.codOfertaAfiliado !== undefined){
88                    if(responseArr.codOfertaAfiliado !== false){
89                        vOferta = responseArr.codOfertaAfiliado;
90                    }
91                }
92
93                $('#dataVoucher').attr('data-dscoferta', vOferta);
94                $('#dataVoucher').attr('data-codofertaafiliado', vOferta);
95                $('#dataVoucher').attr('data-codplano', responseArr.codPlano);
96                $('#dataVoucher').attr('data-codprojeto', responseArr.codProjeto);
97                $('#dataVoucher').attr('data-codmeiopagamento', 'NA');
98
99                $("#cc-name").addClass('ignore');
100                $("#pagamento_debito_conta_nome").addClass('ignore');
101                $("#pagamento_debito_conta_banco").addClass('ignore');
102                $("#pagamento_debito_conta_agencia").addClass('ignore');
103                $("#pagamento_debito_conta_conta").addClass('ignore');
104
105                $('#pagamento_gratis').attr('class', 'pagamento-tipo ativo');
106
107                let expgoo = $("#expgoo");
108                $("#expgoo").remove();
109                $(expgoo).insertBefore('#pagamento_gratis').css('display', 'block');
110
111                var altNA = $(".pagamento-menu").height();
112                $(".blockminutrade").css({'display':'block', 'height':altNA+'px'});
113
114                $('#newtop .valor .qtd').text('').css("display", "none");
115                $('#newtop .valor .mes').css("display", "none");
116                $('#newtop .valor .preco').text('R$ 0,00');
117                $('.mensagem.sucesso .valor_pedido').html('<span>Total:</span> R$ 0,00').addClass('voucher');
118
119                let valor = $('.total-atual-NA').text();
120			    let vouchertxt = `Plano Anual: ${formatarPreco(valor)}<br>Cupom Aplicado: - ${formatarPreco(valor)}<br>`;
121			    
122                $('#dataVoucher').attr('data-tipopg', "Voucher 100%");
123                $('#dataVoucher').attr('data-contrato', "Mensal");
124                labelContrato = 'Plano Mensal:';
125                if (response.NA.MENSAL === undefined){
126                    $('#dataVoucher').attr('data-contrato', "Anual");
127                    labelContrato = 'Plano Anual:';
128                }
129                $(".total-desconto-NA .plano").text(labelContrato);
130
131                let preco = 0;
132                if($(".formaPgto[data-forma-pgto=CC]").length !== 0){
133                    if (response.NA.ANUAL === undefined) {
134                        if ($("#prcelamentoCC2 option:first").length > 0) {
135                            preco = $("#prcelamentoCC2 option:first").attr("data-vlrprecoaprazo");
136                            vouchertxt = `Plano Mensal: ${formatarPreco(preco)}<br>Cupom Aplicado: - ${formatarPreco(preco)}<br>`;
137                        } else {
138                            voucherInvalido();
139                            return;
140                        }
141                    }
142                    if (response.NA.MENSAL === undefined) {
143                        if ($("#prcelamentoCC option:first").length > 0) {
144                            preco = $("#prcelamentoCC option:first").attr("data-vlrprecoaprazo");
145                        } else {
146                            voucherInvalido();
147                            return;
148                        }
149                        vouchertxt = `Plano Anual: ${formatarPreco(preco)}<br>Cupom Aplicado: - ${formatarPreco(preco)}<br>`;
150                    }
151                    $(".total-atual-NA").text(formatarPreco(preco));
152                    $(".total-voucher-NA").text("- " + formatarPreco(preco));
153                }
154
155                $(".valor_voucher").html(vouchertxt).css("display", "inline");
156
157                $('.single-checkout .checkout-card.ticket div.voucher-response .tipopag').css("display", "none");
158                $('.single-checkout .checkout-card.ticket').addClass('active');
159                $('.single-checkout .checkout-card.ticket div.voucher-response .success').text(`Cupom aplicado com sucesso!`);
160                $('.single-checkout .checkout-card.ticket div.voucher-response .success').attr('class', 'success checkout-green');
161                $('.single-checkout .checkout-card.ticket div.voucher-response .success').css("display", "block");
162                $(".single-checkout .checkout-card.ticket div.voucher-response .tipopag").css("display", "none");
163                $('.single-checkout .checkout-card.ticket .input-voucher').addClass('valid');
164                $(".remove_voucher").css("display", "inline");
165                if (url5.searchParams.get("success") !== 'true') {
166                    $('.loader').removeClass('active');
167                }
168                return false;
169            }else{
170                $('.total-desconto').css('display', 'block');
171                var altNA = $(".pagamento-menu").height();
172                $(".blockminutrade").css({'display':'none', 'height':altNA+'px'});
173                $('.pagamento-menu').css('opacity', 1);
174                let vTipos = '';
175                let arr = response;
176                let count = 1;
177                let pagSel = "";
178                for(var pag in arr){
179                    vTipos = vTipos + TipoPagamento(pag);
180                    for(var periodo in arr[pag]){
181                        for(var parc in arr[pag][periodo]){
182                            var info = arr[pag][periodo][parc];
183                            if(info.codProjeto != $('body').data('projeto')){
184                                if (url5.searchParams.get("success") === 'false') {
185                                    $('.single-checkout .checkout-card.ticket.active div.voucher-response .success').text('O cupom ou vale presente não é válido para esse produto.').attr('class', 'success checkout-red').css("display", "block");
186                                    $('input[name="checkout_ticket"]').val('');
187                                    let payInitOpen = $('.pagamento-menu li').first();
188                                    let tipo = 'CC';
189                                    $('.pagamento-menu .formaPgto .fPgto[data-tipo_pgto='+tipo+']').trigger('click');
190                                    $('.loader').removeClass('active');
191                                    $('.single-checkout .checkout-card.ticket .input-voucher').removeClass('valid');
192                                    $(".remove_voucher").css("display", "none");
193                                }
194                                return false;
195                            }
196
197                            var optPerido = "";
198                            if(periodo==='MENSAL'){
199                                optPerido = "2";
200                            }
201
202                            var optalt = "#prcelamento"+pag+optPerido;
203                            if(count === 1){ pagSel = pag; }
204                            if(pag === 'CC'){ pagSel = pag; }
205                            if(pag !== null){
206
207                                if (pag+optPerido === 'CC' || pag+optPerido === 'PL'){
208                                    if(parc > 1){
209                                       vTipos = vTipos + ' em até ' + parc + 'x';
210                                    }
211                                }
212
213                                let optck = '.yearly';
214                                if((info['codTipoContrato'] !== 'MPM') && (info['codTipoContrato'] !=='VIGENCIADO')){
215                                    optck = '.monthly';
216                                }
217                                if($("body").attr('data-frete') === 'S'){
218                                    $(optalt + ' option[data-numparcelas='+parc+']').attr('data-voucher', info['vlrParcelaComFrete']);
219                                }else{
220                                   $(optalt + ' option[data-numparcelas='+parc+']').attr('data-voucher', info['vlrParcela']);
221                                   if(info['vlrParcelinha'] > 0 && info['vlrParcelinha'] !== "0.00"){
222                                        $(optalt + ' option[data-numparcelas='+parc+']').attr('data-voucher_vlrparcelinha', info['vlrParcelinha']);
223                                        $(optalt + ' option[data-numparcelas='+parc+']').attr('data-voucher_qtdparcelinha', info['qtdParcelinha']);
224                                   }
225                                }
226
227                                let voucher_codcampanha = info['codCampanha'];
228                                if(voucher_codcampanha == false){
229                                    voucher_codcampanha = $("body").attr("data-oferta");
230                                }
231
232                                $(optalt + ' option[data-numparcelas='+parc+']').attr('data-voucher_codcampanha', voucher_codcampanha);
233                                $(optalt + ' option[data-numparcelas='+parc+']').attr('data-voucher_codplano', info['codPlano']);
234
235                                if(info['dscInfAdicional'] !== ""){
236                                    $(optalt + ' option[data-numparcelas='+parc+']').attr('data-voucher_dscinfadicional', info['dscInfAdicional']);
237                                }
238
239                                let total = (parc * info['vlrParcela'])
240                                let textPreco = parc + 'x R$ ' + formatarPreco(info['vlrParcela']);
241                                if($("body").attr('data-frete') === 'S'){
242                                    total = (parc * info['vlrParcelaComFrete'])
243                                    textPreco = parc + 'x R$ ' + formatarPreco(info['vlrParcelaComFrete']);
244                                }
245                                if(parc > 1){
246                                    textPreco += ' (sem juros) - Total: ' + formatarPreco(total);
247                                }
248                                $(optalt + ' option[data-numparcelas='+parc+']').text(textPreco);
249
250                                if($(optalt + ' option[data-numparcelas=' + parc + ']').length > 0){
251                                    pagArr.push(optalt + ' option[data-numparcelas='+parc+']');
252                                }
253                                if(typeof response.CC !== 'undefined' && typeof response.CC.ANUAL !== 'undefined'){
254                                    if(pag+optPerido == 'CC' || pag+optPerido == 'CC2'){
255                                        if ($(optalt + ' option[data-numparcelas=' + parc + ']').length > 0) {
256                                            if (voucherCC === false) {
257                                                if($("#prcelamentoCC option[data-numparcelas=12]").length === 0){
258                                                    voucherCC = true;
259                                                }
260
261                                                if(parc == 12){
262                                                    voucherCC = true;
263                                                }
264                                            }
265                                        }
266                                    }
267                                }else{
268                                    if(count===1){
269                                    }
270                                }
271                                count++;
272                            }
273                        }
274                    }
275                    vTipos = vTipos + ', ';
276                }
277                voucherPreco(vTipos, pagSel);
278                if (pagArr.length > 0) {
279                } else {
280                    voucherInvalido();
281                }
282                return false;
283            }
284        }
285    });
286});
287
288function voucherPreco(vTipos, pagSel){
289    if (url5.searchParams.get("success") == 'false') {
290        $('.pagamento-menu .formaPgto .fPgto[data-tipo_pgto=PL]').trigger('click');
291        $('.loader').removeClass('active');
292        $('.single-checkout .checkout-card.ticket .input-voucher').removeClass('valid');
293        $(".remove_voucher").css("display", "none");
294        return;
295    }
296    if (url5.searchParams.get("success") == 'true') {
297        optData = JSON.parse(localStorage.getItem('abril_data_sel'));
298        precoFinal(
299            optData['data-vlrparcela'], 
300            optData['data-voucher'], 
301            optData['data-numparcelas'], 
302            'PL', 
303            optTipo, 
304            optData['data-vlrparcelinha'], 
305            optData['data-qtdparcelinha'],
306            optData['data-voucher_vlrparcelinha'], 
307            optData['data-voucher_qtdparcelinha']
308        );
309        return; 
310    }
311    $('.pagamento-menu .formaPgto .fPgto[data-tipo_pgto='+pagSel+']').trigger('click');
312    $('.loader').removeClass('active');
313    $('.single-checkout .checkout-card.ticket .input-voucher').removeClass('valid');
314    $(".remove_voucher").css("display", "none");
315
316    $(".tipos").text(vTipos.slice(0, -2));
317    $('.single-checkout .checkout-card.ticket').addClass('active');
318    $('.single-checkout .checkout-card.ticket .input-voucher').addClass('valid');
319    $('.single-checkout .checkout-card.ticket div.voucher-response .success').text(`Cupom aplicado com sucesso!`)
320    $('.single-checkout .checkout-card.ticket div.voucher-response .success').attr('class', 'success checkout-green');
321    $('.single-checkout .checkout-card.ticket div.voucher-response .success').css("display", "block");
322    $(".single-checkout .checkout-card.ticket div.voucher-response .tipopag").css("display", "block");
323    $(".remove_voucher").css("display", "inline");
324    return;
325}
326
327function voucherInvalido() {
328    $(".remove_voucher, .total-desconto").css("display", "none");
329    let erroTxt = 'O cupom ou vale presente não é válido para esse produto!';
330    $('.single-checkout .checkout-card.ticket.active div.voucher-response .success')
331        .text(erroTxt).attr('class', 'success checkout-red');
332    $('input[name="checkout_ticket"]').val('');
333    limparValorVoucher();
334    $('.single-checkout .checkout-card.ticket div.voucher-response .success').css("display", "block");
335    $(".single-checkout .checkout-card.ticket div.voucher-response .tipopag").css("display", "none");
336    return false;
337}
338
339$(document).on('click', 'a.remove_voucher', function(e){
340    e.preventDefault();
341    $(".remove_voucher, .total-desconto").css("display", "none");
342    let erroTxt = 'Voucher removido com sucesso!';
343    $('.single-checkout .checkout-card.ticket.active div.voucher-response .success')
344        .text(erroTxt).attr('class', 'success checkout-green');
345    $('input[name="checkout_ticket"]').val('');
346    limparValorVoucher();
347    $('.single-checkout .checkout-card.ticket div.voucher-response .success').css("display", "block");
348    $(".single-checkout .checkout-card.ticket div.voucher-response .tipopag").css("display", "none");
349
350    return false;
351});
352
353function TipoPagamento(tipo){
354    switch (tipo) {
355        case 'CC':
356            return 'Cartão de Crédito';
357        case 'BO':
358            return 'Boleto';
359        case 'DC':
360            return 'Débito em Conta';
361        case 'PX':
362            return 'PIX';
363        case 'PA':
364            return 'PIX Automático';
365        case 'PL':
366            return 'Paypal';
367        default:
368          return '';
369      }
370}
371
372function limparValorVoucher(busca=false){
373    if($("#dataVoucher").attr("data-codmeiopagamento") === "NA"){
374        $('#dataVoucher').attr('data-dscoferta', '');
375        $('#dataVoucher').attr('data-codplano', '');
376        $('#dataVoucher').attr('data-codprojeto', '');
377        $('#dataVoucher').attr('data-codmeiopagamento', '');
378        $('.checkout-card-gratis, .total-desconto-NA').css('display', 'none');
379        var altNA = $(".pagamento-menu").height();
380        $(".blockminutrade").css({'display':'none', 'height':altNA+'px'});
381        $('.pagamento-menu').css('opacity', 1);
382        let tipo = $($('.pagamento-menu li')[0]).attr("data-forma-pgto");
383        if($('.pagamento-menu .formaPgto .fPgto[data-tipo_pgto=CC]').length > 0){
384            tipo = "CC";
385        }
386        if(busca === false){
387            $('.pagamento-menu .formaPgto .fPgto[data-tipo_pgto='+tipo+']').trigger('click');
388        }
389    }else{
390        $('.pagamento-menu .novo-parcelamento select').find('option').each(function(e) {
391            let qtd = parseInt($(this).attr('data-numparcelas'));
392            let parcela = parseFloat($(this).attr('data-vlrparcela'));
393            let qtd_parcelinha = parseInt($(this).attr('data-voucher_qtdparcelinha'));
394            let parcela_parcelinha = parseFloat($(this).attr('data-voucher_vlrparcelinha'));
395
396            $(this).attr('data-voucher', 0);
397            $(this).attr('data-voucher_vlrparcelinha', 0);
398            $(this).attr('data-voucher_qtdparcelinha', "");
399            $(this).attr('data-voucher_dscinfadicional', "");
400            $(this).attr('data-voucher_codplano', "");
401            $('.desc_extra').text("").css("display","none");
402            $('.info_pedido').text("").css("display","none");
403            $(this).attr('data-voucher_parcelinha_valor', 0);
404            $(this).attr('data-voucher_parcelinha_qtd', 0);
405            
406            let textPreco = qtd + 'x R$ ' + formatarPreco(parcela);
407            if(qtd > 1){
408                textPreco += ' (sem juros) - Total: ' + formatarPreco(parcela*qtd);
409            }
410            $(this).text(textPreco);
411        });
412        let tipo = $($('.pagamento-menu li')[0]).attr("data-forma-pgto");
413        if($('.pagamento-menu .formaPgto .fPgto[data-tipo_pgto=CC]').length > 0){
414            tipo = "CC";
415        }
416        if(busca === false){
417            $('.pagamento-menu .formaPgto .fPgto[data-tipo_pgto='+tipo+']').trigger('click');
418        }
419    }
420}

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.