1. Tematy
  2. Fragmenty kodu

Fragmenty kodu

To jest Poziom deweloperski dokument. Jeśli nie jesteś zaznajomiony z kodem/szablonami i rozwiązywaniem potencjalnych konfliktów, skontaktuj się z programistą zaznajomionym z FooSales i/lub WooCommerce. Te fragmenty są dostarczane jako uprzejmość i mają służyć jako punkt wyjścia do pomocy w określonych potrzebach dostosowywania. Nie jesteśmy w stanie zapewnić wsparcia dla dostosowań w ramach naszych Warunki świadczenia usług.

Przechwytywanie opłat Square podczas realizacji zamówienia #

Jeśli korzystasz z wtyczki eksportowej innej firmy do eksportowania zamówień i przetwarzasz płatności za pomocą Square, możesz chcieć uwzględnić opłaty, które Square odlicza od płatności w eksporcie sprzedaży. Domyślnie FooSales nie przechowuje żadnych danych uzyskanych z Square innych niż identyfikator zamówienia Square, który jest generowany po pomyślnym przetworzeniu płatności. FooSales może przechowywać opłaty za przetwarzanie Square jako ukrytą metawartość dla zamówień WooCommerce przechwyconych przez FooSales, w których Square został użyty jako metoda płatności.

Dodaj następujący fragment kodu do motywu functions.php który sprawdzi, czy zamówienie ma identyfikator zamówienia Square, gdy jest oznaczone jako zakończone. Następnie użyje interfejsu API Square, aby pobrać zamówienie Square z konta, zsumować wszystkie opłaty związane z tym zamówieniem i zapisać je jako meta pole dla zamówienia 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);
    }
});

Dodaj notatkę zamówienia z FooSales do wiadomości e-mail administratora WooCommerce. #

Dodaj następujący fragment kodu do motywu functions.php jeśli chcesz, aby "Notatka o zamówieniu" dodana do zamówienia w FooSales była wyświetlana w wiadomościach e-mail administratora 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) {

	if ( isset($post->ID) )
		$id = $post->ID;
	else
		$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>' . __( 'Uwagi do zamówienia', 'woocommerce' ) . '</h2>';

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

		if ( $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>' . __( 'Nie ma jeszcze notatek dla tego zamówienia.', 'woocommerce' ) . '</li>';
		}

		echo '</ul>';
	}
}

Artykuły