1. Argomenti
  2. Snippet di codice

Snippet di codice

Questo è un A livello di sviluppatore documento. Se non si ha dimestichezza con il codice/template e con la risoluzione di potenziali conflitti, si consiglia di rivolgersi a uno sviluppatore che abbia familiarità con l'FooSales e/o l'WooCommerce. Questi snippet sono forniti a titolo di cortesia e sono intesi come punto di partenza per assistere qualsiasi esigenza di personalizzazione specifica. Non siamo in grado di fornire supporto per le personalizzazioni effettuate nell'ambito del nostro Termini di servizio.

Acquisizione delle tariffe Square durante il completamento di un ordine #

Se si utilizza un plugin di esportazione di terze parti per esportare gli ordini e si elaborano i pagamenti con l'Square, si potrebbe voler includere le commissioni che l'Square detrae dal pagamento nell'esportazione delle vendite. Per impostazione predefinita, l'FooSales non memorizza alcun dato ottenuto dall'Square, a parte l'ID dell'ordine dell'Square che viene generato dopo l'elaborazione di un pagamento. È possibile fare in modo che l'FooSales memorizzi le spese di elaborazione dell'Square come metavalore nascosto per gli ordini WooCommerce acquisiti tramite l'FooSales in cui l'Square è stato utilizzato come metodo di pagamento.

Aggiungete il seguente frammento di codice alla cartella del vostro tema functions.php che controlla se un ordine ha un ID ordine Square quando è contrassegnato come completato. Successivamente, utilizzerà l'API Square per recuperare l'ordine Square dal vostro account, sommare tutte le spese di pagamento relative a quell'ordine e salvarle come meta-campo per l'ordine 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);
    }
});

Aggiungete la nota d'ordine dell'FooSales alle e-mail di amministrazione dell'WooCommerce. #

Aggiungete il seguente frammento di codice alla cartella del vostro tema functions.php se si desidera che la "Nota dell'ordine" aggiunta all'ordine nell'FooSales venga visualizzata nelle e-mail di amministrazione dell'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;
	altrimenti
		$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>' . __( 'Note dell'ordine', '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>' . __( 'Non ci sono ancora note per questo ordine', 'woocommerce' ) . '</li>';
		}

		echo '</ul>';
	}
}

Articoli