1. Tópicos
  2. Trechos de código

Trechos de código

Este é um Nível de programador documento. Se não estiver familiarizado com o código/modelos e com a resolução de potenciais conflitos, contacte um programador que esteja familiarizado com o FooSales e/ou WooCommerce. Esses trechos são fornecidos como cortesia e servem como ponto de partida para ajudar em qualquer necessidade específica de personalização. Não podemos fornecer suporte para personalizações em nosso Termos do serviço.

Capturar as taxas do Square ao concluir uma encomenda #

Se estiver a utilizar um plugin de exportação de terceiros para exportar as suas encomendas e estiver a processar pagamentos com o Square, poderá querer incluir as taxas que o Square deduz do pagamento na sua exportação de vendas. Por padrão, o FooSales não armazena nenhum dado obtido do Square, exceto o ID do pedido do Square que é gerado após o processamento bem-sucedido de um pagamento. É possível fazer com que o FooSales armazene as taxas de processamento do Square como um meta-valor oculto para pedidos do WooCommerce capturados via FooSales em que o Square foi usado como forma de pagamento.

Adicione o seguinte trecho de código ao functions.php que verificará se um pedido tem um ID de pedido Square quando marcado como concluído. Em seguida, utiliza a API Square para recuperar a encomenda Square da sua conta, adiciona todas as taxas de pagamento envolvidas nessa encomenda e guarda-a como um metacampo para a encomenda WooCommerce.

add_action('woocommerce_order_status_completed', function($order_id) {
    $square_order_id = get_post_meta($order_id, "_foosales_square_order_id", true);
    
    if ( !empty($square_order_id) ) {
        //FooSales config
        $config = new FooSales_Config();

        //API helper methods
        require_once($config->helper_path.'foosales-api-helper.php');
        
        $order_result = fsfwc_get_square_order($square_order_id); // Uses the Square API to retrieve the order
        $square_fees = 0.0;
        
        if ( $order_result['status'] === 'success' ) {
            $order = $order_result['order'];
            
            if ( !empty($order['tenders']) ) {
                foreach ( $order['tenders'] as $tender ) {
                    $square_fees += ((float)($tender['processing_fee_money']['amount']) / 100.0); // The fee is returned as cents, so divide it by 100.0
                }
            }
        }
        
        update_post_meta($order_id, "_foosales_square_fee_amount", $square_fees);
    }
});

Adicionar a nota de encomenda do FooSales às mensagens de correio eletrónico do administrador do WooCommerce #

Adicione o seguinte trecho de código ao functions.php se pretende que a "Nota de encomenda" que adicionou à encomenda no FooSales seja apresentada nos emails de administração do WooCommerce.

add_action( 'woocommerce_email_order_meta', 'woo_add_order_notes_to_email', 10, 4 );

function woo_add_order_notes_to_email($order, $sent_to_admin, $plain_text, $email) {

	se ( isset($post->ID) )
		$id = $post->ID;
	senão
		$id = $order->ID;


	if ($sent_to_admin && 'foosales_app' === get_post_meta($id, "_foosales_order_source", true)) {
		$args = array(
			'order_id' => $id,
			'type' => ''
		);
		
		$notes = wc_get_order_notes( $args );
		
		echo '<h2>' . __( 'Notas de encomenda', 'woocommerce' ) . '</h2>';

		ecoar '<ul class="order_notes">';

		se ( $notes ) {
				?&gt;
				<li>
					<div class="note_content">
						<?php echo wpautop( wptexturize( wp_kses_post( $notes[count($notes)-1]->content ) ) ); ?>
					</div>
				</li>
				<?php
		} else {
			echo '<li>' . __( 'Ainda não existem notas para esta encomenda.', 'woocommerce' ) . '</li>';
		}

		echo '</ul>';
	}
}

Artigos