Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Disponibilizar o boleto do painel Minha Conta #129

Closed
quasemineira opened this issue Jun 27, 2019 · 5 comments
Closed

Disponibilizar o boleto do painel Minha Conta #129

quasemineira opened this issue Jun 27, 2019 · 5 comments

Comments

@quasemineira
Copy link

A integração da Vindi não exibe o boleto para o cliente fazer download ou visualizar no painel "Minha conta" do Woocommerce, após a finalização da compra.

Muitas vezes ele não faz o download do boleto imediatamente após a compra e não tem como pegar o boleto pelo painel, apenas nos e-mails da Vindi.

Acontece que o e-mail das notificações vai com o domínio da Vindi e para muitos clientes acaba caindo na caixa de spam e segundo que agora como o boleto bancário tem que ser registrado a cliente não consegue pagar na hora e acaba não salvando no computador ou no celular.

Eu queria que a integração disponibilizasse o boleto ou pelo menos o link da fatura na conta do cliente dentro do painel "Minha conta" do Woocommerce, assim como ocorre em vários outros meios de pagamento como o pagseguro, o mercado pago e etc.

@soareseneves
Copy link
Contributor

Implementei isso dessa forma:

add_filter( 'woocommerce_my_account_my_orders_actions', array( &$this, 'imprimir_boleto_vindi'), 50, 2 );

public function imprimir_boleto_vindi( $actions, $order ) {
	if ( in_array($order->status, ['on-hold', 'pending']) && $order->get_payment_method() == 'vindi-bank-slip' ) {
		$link_boleto = get_post_meta($order->ID, 'vindi_wc_invoice_download_url', true);
		$actions['imprimir-boleto'] = array(
			'url'  => $link_boleto,
			'name' => 'Imprimir Boleto'
		);
	}
	return $actions;
}

@soareseneves
Copy link
Contributor

Caso deseje adicionar um botão imprimir boleto na lista de assinaturas também (com base no último pedido da assinatura), utilize esse código:

add_action( 'woocommerce_my_subscriptions_actions', array( &$this, 'action_imprimir_boleto'), 10 );

function imprimir_boleto_vindi_assinatura($subscription){
	if ( in_array($subscription->status, ['on-hold', 'pending']) && $subscription->get_payment_method() == 'vindi-bank-slip' ) {
		$related_orders = $subscription->get_related_orders();

		$order_id   = reset( $related_orders );
		$order      = wc_get_order( $order_id );

		if ( in_array($order->status, ['on-hold', 'pending']) && $order->get_payment_method() == 'vindi-bank-slip' ){
			$link_boleto = get_post_meta($order->ID, 'vindi_wc_invoice_download_url', true);
			echo "<a href='$link_boleto' class='button print'>Imprimir Boleto</a>";
		}
	}
}

@quasemineira
Copy link
Author

Implementei isso dessa forma:

add_filter( 'woocommerce_my_account_my_orders_actions', array( &$this, 'imprimir_boleto_vindi'), 50, 2 );

public function imprimir_boleto_vindi( $actions, $order ) {
	if ( in_array($order->status, ['on-hold', 'pending']) && $order->get_payment_method() == 'vindi-bank-slip' ) {
		$link_boleto = get_post_meta($order->ID, 'vindi_wc_invoice_download_url', true);
		$actions['imprimir-boleto'] = array(
			'url'  => $link_boleto,
			'name' => 'Imprimir Boleto'
		);
	}
	return $actions;
}

Aqui não funcionou e deu erro :(

Parse error: syntax error, unexpected 'public' (T_PUBLIC), expecting end of file in ..../functions.php on line 279

Fatal error: Exception thrown without a stack frame in Unknown on line 0

@soareseneves
Copy link
Contributor

soareseneves commented Jul 12, 2019

É que eu tirei o código de um plugin que fiz, pra funcionar no functions.php vc precisa mudar um pouco, ficando assim:

add_filter( 'woocommerce_my_account_my_orders_actions', 'imprimir_boleto_vindi', 50, 2 );

function imprimir_boleto_vindi( $actions, $order ) {
	if ( in_array($order->status, ['on-hold', 'pending']) && $order->get_payment_method() == 'vindi-bank-slip' ) {
		$link_boleto = get_post_meta($order->ID, 'vindi_wc_invoice_download_url', true);
		$actions['imprimir-boleto'] = array(
			'url'  => $link_boleto,
			'name' => 'Imprimir Boleto'
		);
	}
	return $actions;
}

@quasemineira
Copy link
Author

Deu super certo, obrigada!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants