Fórum OpenCart Brasil

Por um e-commerce livre, confiável e profissional

Suporte geral sobre problemas técnicos para OpenCart v2.x.
Por veteranodf
Mensagens Especiais Curtidas
#75481
Com o próprio código nativo da para fazer isso, pode ser que não funcione dependendo do tema journal que estiver utilizando;

Acesse o arquivo catalog/view/theme/journal2/template/product/product.tpl

Substitua as linhas de códigos abaixo:
Código: Selecionar todos
<script type="text/javascript"><!--
$('#button-cart').on('click', function() {
	$.ajax({
		url: 'index.php?route=checkout/cart/add',
		type: 'post',
		data: $('#product input[type=\'text\'], #product input[type=\'hidden\'], #product input[type=\'radio\']:checked, #product input[type=\'checkbox\']:checked, #product select, #product textarea'),
		dataType: 'json',
		beforeSend: function() {
			$('#button-cart').button('loading');
		},
		complete: function() {
			$('#button-cart').button('reset');
		},
		success: function(json) {
			$('.alert, .text-danger').remove();
			$('.form-group').removeClass('has-error');

			if (json['error']) {
				if (json['error']['option']) {
					for (i in json['error']['option']) {
						var element = $('#input-option' + i.replace('_', '-'));
						
						if (element.parent().hasClass('input-group')) {
							element.parent().after('<div class="text-danger">' + json['error']['option'][i] + '</div>');
						} else {
							element.after('<div class="text-danger">' + json['error']['option'][i] + '</div>');
						}
					}
				}
				
				if (json['error']['recurring']) {
					$('select[name=\'recurring_id\']').after('<div class="text-danger">' + json['error']['recurring'] + '</div>');
				}
				
				// Highlight any found errors
				$('.text-danger').parent().addClass('has-error');
			}
			
			if (json['success']) {
                if (!Journal.showNotification(json['success'], json['image'], true)) {
                    $('.breadcrumb').after('<div class="alert alert-success success">' + json['success'] + '<button type="button" class="close" data-dismiss="alert">&times;</button></div>');
                }

				$('#cart-total').html(json['total']);

          if (Journal.scrollToTop) {
              $('html, body').animate({ scrollTop: 0 }, 'slow');
          }

				$('#cart ul').load('index.php?route=common/cart/info ul li');
			}
		},
        error: function(xhr, ajaxOptions, thrownError) {
          alert(thrownError + "\r\n" + xhr.statusText + "\r\n" + xhr.responseText);
        }
	});
});
//--></script>
Por:
Código: Selecionar todos
<script type="text/javascript"><!--
$('#button-cart').html('<span class="button-cart-text">Adicionar ao Carrinho</span>');
$(document).on('click', 'button[id*="button-cart"]', function() {
	button_cart_id = $(this).attr('id');
	
	$.ajax({
		url: 'index.php?route=checkout/cart/add',
		type: 'post',
		data: $('#product input[type=\'text\'], #product input[type=\'hidden\'], #product input[type=\'radio\']:checked, #product input[type=\'checkbox\']:checked, #product select, #product textarea'),
		dataType: 'json',
		beforeSend: function() {
			$(button_cart_id).button('loading');
		},
		complete: function() {
			$(button_cart_id).button('reset');
		},
		success: function(json) {
			$('.alert, .text-danger').remove();
			$('.form-group').removeClass('has-error');

			if (json['error']) {
				if (json['error']['option']) {
					for (i in json['error']['option']) {
						var element = $('#input-option' + i.replace('_', '-'));
						
						if (element.parent().hasClass('input-group')) {
							element.parent().after('<div class="text-danger">' + json['error']['option'][i] + '</div>');
						} else {
							element.after('<div class="text-danger">' + json['error']['option'][i] + '</div>');
						}
					}
				}
				
				if (json['error']['recurring']) {
					$('select[name=\'recurring_id\']').after('<div class="text-danger">' + json['error']['recurring'] + '</div>');
				}
				
				// Highlight any found errors
				$('.text-danger').parent().addClass('has-error');
			}
			
			if (json['success']) {
                if (!Journal.showNotification(json['success'], json['image'], true)) {
                    $('.breadcrumb').after('<div class="alert alert-success success">' + json['success'] + '<button type="button" class="close" data-dismiss="alert">&times;</button></div>');
                }

				$('#cart-total').html(json['total']);

          if (Journal.scrollToTop) {
              $('html, body').animate({ scrollTop: 0 }, 'slow');
          }

				$('#cart ul').load('index.php?route=common/cart/info ul li');
				
				if(button_cart_id == 'button-cart-2'){
					window.location = 'index.php?route=checkout/checkout';
				}
			}
		},
        error: function(xhr, ajaxOptions, thrownError) {
          alert(thrownError + "\r\n" + xhr.statusText + "\r\n" + xhr.responseText);
        }
	});
});
//--></script>
Por último ainda no arquivo product.tpl insira o botão abaixo onde desejar exibir o botão "Comprar Agora";
Código: Selecionar todos
<button type="button" id="button-cart-2" data-loading-text="Aguarde..." class="button"><span class="button-cart-text">Comprar Agora</span></button>
rafael Azevedo gostou disso
Por veteranodf
Mensagens Especiais Curtidas
#75501
Após fazer as dicas deu refresh no menu modificações OCMOD admin?, somente assim entra em vigor!
Por rafael Azevedo
#75506
sim fiz isso mas msm assim nao aparece o botao, nao sei se entendeu eu queria um botao comprar que joga direto pro checkout e um botao adicionar ao carrinho pro usuario continuar comprando
Avatar do usuário
Por Smagicas
Mensagens
#75507
A dica passada acima vai fazer o que você quer, vai manter o botão adicionar ao carrinho padrão e acrescentar um botão comprar agora. Tente mudar o código do botão de lugar, coloque logo após o botão de adicionar ao carrinho. Veja bem que o botão que vai acrescentar com o código acima é pequeno, não é um botão grande e azul como o padrão da loja, então procure por um botão bem pequeno.
rafael Azevedo gostou disso
Por rafael Azevedo
#75508
Eu fiz isso unica coisa que aconteceu foi substituir o botao normal e ele continua mandando para o carrinho nao parece um botao comrpar que joga direto pro checkout
Por veteranodf
Mensagens Especiais Curtidas
#75513
rafael Azevedo escreveu: 09 Out 2017, 12:40 Eu fiz isso unica coisa que aconteceu foi substituir o botao normal e ele continua mandando para o carrinho nao parece um botao comrpar que joga direto pro checkout
@rafael Azevedo o código que informei acima fiz utilizando o tema journal2 que tenho e ele adiciona outro botão, como o @Smagicas informou, com certeza fez algo errado, em relação ao tamanho do botão eu fiz no padrão journal2, o botão você personalizar da forma que desejar, o que importar e esse botão ter o id "button-cart-2" para o jquery saber o que fazer, que no caso é adicionar o item ao carrinho e direcionar para o checkout;