From 2d99c217c3f51c34bd9ceff3f7990a9648ab3f04 Mon Sep 17 00:00:00 2001 From: wagnerjaccoud Date: Thu, 9 Apr 2020 01:27:19 -0300 Subject: [PATCH] novas funcionalidades boleto MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit adiciona campo de dias para vencimento do boleto; Adiciona opção para selecionar feriados ou datas que não deseje que caia o vencimento do boleto; Adiciona função para não deixar vencimento do boleto cair em finais de semana ajuda na conversão obs: mandei as alterações no gateway no pullrequest 6 por nao saber usar muito bem o github --- includes/class-wc-pagarme-api.php | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/includes/class-wc-pagarme-api.php b/includes/class-wc-pagarme-api.php index 151d082..b59492e 100644 --- a/includes/class-wc-pagarme-api.php +++ b/includes/class-wc-pagarme-api.php @@ -344,6 +344,32 @@ public function generate_transaction_data( $order, $posted ) { } elseif ( 'pagarme-banking-ticket' === $this->gateway->id ) { $data['payment_method'] = 'boleto'; $data['async'] = 'yes' === $this->gateway->async; +//////////////////////////////////// CALCULAR DATA VENCIMENTO DO BOLETO ////////////////////////// + $dias_vencimeto = (int)$this->gateway->dias_vencimento_boleto; + $feriados = (array)$this->gateway->feriados; + + date_default_timezone_set('America/Sao_Paulo'); + $data_vencimento = date( 'd/m/Y', time() + ( $dias_vencimento * 86400 ) ); + $datetime = DateTime::createFromFormat('d/m/Y', $data_vencimento); + + while(in_array($datetime->format('d/m'), $feriados)){ + $datetime->modify('+1 day'); + } + + $dia_semana = $datetime->format("l"); + + if($dia_semana == 'Saturday' ){ + $datetime->modify('+2 days'); + }else{ + if($dia_semana == 'Sunday'){ + $datetime->modify('+1 day'); + } + } + $data['boleto_expiration_date'] = $datetime->format('Y-m-d'); + update_post_meta( $order->id, 'data_vencimento_boleto', $datetime->format('Y-m-d') ); +//////////////////////////////////////// CALCULAR DATA VENCIMENTO DO BOLETO ////////////////////////// + + $data['boleto_instructions'] = 'APÓS PAGAR O BOLETO, CASO DESEJE, INFORME O PAGAMENTO ATRAVÉS DO WHATSAPP (22) 9 8144-2477'; } // Add filter for Third Party plugins. @@ -629,6 +655,8 @@ protected function save_order_meta_fields( $id, $data ) { // Meta data. $meta_data = array( __( 'Banking Ticket URL', 'woocommerce-pagarme' ) => sanitize_text_field( $data['boleto_url'] ), + __( 'linha_digitavel', 'woocommerce-pagarme' ) => sanitize_text_field( $data['boleto_barcode'] ), + __( 'link_boleto', 'woocommerce-pagarme' ) => sanitize_text_field( $data['boleto_url'] ), __( 'Credit Card', 'woocommerce-pagarme' ) => $this->get_card_brand_name( sanitize_text_field( $data['card_brand'] ) ), __( 'Installments', 'woocommerce-pagarme' ) => sanitize_text_field( $data['installments'] ), __( 'Total paid', 'woocommerce-pagarme' ) => number_format( intval( $data['amount'] ) / 100, wc_get_price_decimals(), wc_get_price_decimal_separator(), wc_get_price_thousand_separator() ),