1. Témata
  2. Úryvky kódu

Úryvky kódu

Jedná se o Na úrovni vývojářů dokument. Pokud nejste obeznámeni s kódem/šablonami a řešením potenciálních konfliktů, obraťte se na vývojáře, který je obeznámen s FooSales a/nebo WooCommerce. Tyto úryvky jsou poskytovány jako zdvořilostní informace a mají sloužit jako výchozí bod pro pomoc při případných specifických potřebách přizpůsobení. Nejsme schopni poskytovat podporu pro úpravy v rámci našich Podmínky služby.

Zachycení poplatků Square při dokončování objednávky #

Pokud k exportu objednávek používáte exportní plugin třetí strany a zpracováváte platby pomocí Square, možná budete chtít do exportu prodeje zahrnout poplatky, které Square odečte z platby. Ve výchozím nastavení FooSales neukládá žádná data získaná z Square kromě ID objednávky Square, které je vygenerováno po úspěšném zpracování platby. Můžete nechat FooSales uložit poplatky za zpracování Square jako skrytou metahodnotu pro objednávky WooCommerce zachycené prostřednictvím FooSales, kde byl jako způsob platby použit Square.

Přidejte následující úryvek kódu do tématu. functions.php který zkontroluje, zda má objednávka ID objednávky Square, když je označena jako dokončená. Dále použije rozhraní API Square k načtení objednávky Square z vašeho účtu, sečte všechny poplatky za platby spojené s touto objednávkou a uloží je jako meta pole pro objednávku 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);
    }
});

Přidání poznámky k objednávce z FooSales do e-mailů správce WooCommerce #

Přidejte následující úryvek kódu do tématu. functions.php pokud chcete, aby se "Poznámka k objednávce", kterou jste přidali k objednávce v FooSales, zobrazovala v e-mailech správce 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;
	jinak
		$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>' . __( 'Order Notes', '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>' . __( 'K této objednávce zatím nejsou žádné poznámky.', 'woocommerce' ) . '</li>';
		}

		echo '</ul>';
	}
}

Články