Skip to content

Instantly share code, notes, and snippets.

@renatofrota
Last active July 27, 2018 11:45
Show Gist options
  • Save renatofrota/b76c8dc674e2f09e52067b7b13670e14 to your computer and use it in GitHub Desktop.
Save renatofrota/b76c8dc674e2f09e52067b7b13670e14 to your computer and use it in GitHub Desktop.
Mercado Pago - evitar alterações de status para "Processando"
<?php
//////////////////////////////////////////////////////////////////////
// No arquivo 'includes/WC_WooMercadoPago_BasicGateway.php' do plugin
// por volta da linha 1299, há um 'switch ( $status )'
// altere o código da situação 'approved' para:
//////////////////////////////////////////////////////////////////////
case 'approved':
$mp_aprovado = get_post_meta( $order_id, 'mp_aprovado', '0' );
if ( !$mp_aprovado ) {
$order->add_order_note(
'Mercado Pago: ' . __( 'Payment approved.', 'woocommerce-mercadopago' )
);
$order->payment_complete();
$order->update_status(
WC_Woo_Mercado_Pago_Module::get_wc_status_for_mp_status( 'approved' )
);
update_post_meta( $order_id, 'mp_aprovado', '1' );
} else {
$order->add_order_note(
'Mercado Pago: ' . __( 'Payment approved.', 'woocommerce-mercadopago' ) . " (alteração de status evitada)"
);
}
break;
//////////////////////////////////////////////////////////////////////
// No arquivo 'includes/WC_WooMercadoPago_CustomGateway.php' do plugin
// por volta da linha 1319, há um 'switch ( $status )'
// altere o código da situação 'approved' para:
//////////////////////////////////////////////////////////////////////
case 'approved':
$mp_aprovado = get_post_meta( $order_id, 'mp_aprovado', '0' );
if ( !$mp_aprovado ) {
$order->add_order_note(
'Mercado Pago: ' . __( 'Payment approved.', 'woocommerce-mercadopago' )
);
// Check if we can save the customer card.
$save_card = ( method_exists( $order, 'get_meta' ) ) ?
$order->get_meta( '_save_card' ) :
get_post_meta( $order->id, '_save_card', true );
if ( $save_card === 'yes' ) {
$this->write_log( __FUNCTION__, 'Saving customer card: ' . json_encode( $data['card'], JSON_PRETTY_PRINT ) );
$this->check_and_save_customer_card( $data );
}
$order->payment_complete();
$order->update_status(
WC_Woo_Mercado_Pago_Module::get_wc_status_for_mp_status( 'approved' )
);
update_post_meta( $order_id, 'mp_aprovado', '1' );
} else {
$order->add_order_note(
'Mercado Pago: ' . __( 'Payment approved.', 'woocommerce-mercadopago' ) . " (alteração de status evitada)"
);
}
break;
//////////////////////////////////////////////////////////////////////
// No arquivo 'includes/WC_WooMercadoPago_PSEGateway.php' do plugin
// por volta da linha 1237, há um 'switch ( $status )'
// altere o código da situação 'approved' para:
//////////////////////////////////////////////////////////////////////
case 'approved':
$mp_aprovado = get_post_meta( $order_id, 'mp_aprovado', '0' );
if ( !$mp_aprovado ) {
$order->add_order_note(
'Mercado Pago: ' . __( 'Payment approved.', 'woocommerce-mercadopago' )
);
if ( $this->stock_reduce_mode == 'no' ) {
$order->payment_complete();
}
$order->update_status(
WC_Woo_Mercado_Pago_Module::get_wc_status_for_mp_status( 'approved' )
);
update_post_meta( $order_id, 'mp_aprovado', '1' );
} else {
$order->add_order_note(
'Mercado Pago: ' . __( 'Payment approved.', 'woocommerce-mercadopago' ) . " (alteração de status evitada)"
);
}
break;
//////////////////////////////////////////////////////////////////////
// No arquivo 'includes/WC_WooMercadoPago_SubscriptionGateway.php' do plugin
// por volta da linha 1094, há um 'switch ( $status )'
// altere o código das situações 'authorized' e 'approved' para:
//////////////////////////////////////////////////////////////////////
case 'authorized':
case 'approved':
$mp_aprovado = get_post_meta( $order_id, 'mp_aprovado', '0' );
if ( !$mp_aprovado ) {
$order->add_order_note(
'Mercado Pago: ' . __( 'Payment approved.', 'woocommerce-mercadopago' )
);
$order->payment_complete();
$order->update_status(
WC_Woo_Mercado_Pago_Module::get_wc_status_for_mp_status( 'approved' )
);
update_post_meta( $order_id, 'mp_aprovado', '1' );
} else {
$order->add_order_note(
'Mercado Pago: ' . __( 'Payment approved.', 'woocommerce-mercadopago' ) . " (alteração de status evitada)"
);
}
break;
//////////////////////////////////////////////////////////////////////
// No arquivo 'includes/WC_WooMercadoPago_TicketGateway.php' do plugin
// por volta da linha 1258, há um 'switch ( $status )'
// altere o código das situações 'authorized' e 'approved' para:
//////////////////////////////////////////////////////////////////////
case 'approved':
$mp_aprovado = get_post_meta( $order_id, 'mp_aprovado', '0' );
if ( !$mp_aprovado ) {
$order->add_order_note(
'Mercado Pago: ' . __( 'Payment approved.', 'woocommerce-mercadopago' )
);
if ( $this->stock_reduce_mode == 'no' ) {
$order->payment_complete();
}
$order->update_status(
WC_Woo_Mercado_Pago_Module::get_wc_status_for_mp_status( 'approved' )
);
update_post_meta( $order_id, 'mp_aprovado', '1' );
} else {
$order->add_order_note(
'Mercado Pago: ' . __( 'Payment approved.', 'woocommerce-mercadopago' ) . " (alteração de status evitada)"
);
}
break;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment