1. Thèmes
  2. Extraits de code

Extraits de code

Il s'agit d'un Au niveau du développeur document. Si vous n'êtes pas familiarisé avec le code/les modèles et la résolution de conflits potentiels, veuillez vous adresser à un développeur qui connaît FooSales et/ou WooCommerce. Ces extraits sont fournis à titre gracieux et sont destinés à servir de point de départ pour répondre à des besoins de personnalisation spécifiques. Nous ne sommes pas en mesure de fournir une assistance pour les personnalisations effectuées dans le cadre de notre programme Conditions d'utilisation.

Capturer les frais de Square lors de la finalisation d'une commande #

Si vous utilisez un plugin d'exportation tiers pour exporter vos commandes et que vous traitez des paiements avec Square, vous souhaiterez peut-être inclure les frais que Square déduit du paiement dans votre exportation de ventes. Par défaut, FooSales ne stocke aucune donnée obtenue auprès de Square, à l'exception de l'identifiant de commande Square généré lors du traitement d'un paiement. Vous pouvez demander à FooSales de stocker les frais de traitement de Square en tant que méta-valeur cachée pour les commandes WooCommerce capturées via FooSales et pour lesquelles Square a été utilisé comme méthode de paiement.

Ajoutez l'extrait de code suivant à la section functions.php qui vérifiera si une commande possède un identifiant de commande Square lorsqu'elle est marquée comme étant terminée. Ensuite, il utilisera l'API Square pour récupérer la commande Square de votre compte, additionnera tous les frais de paiement impliqués pour cette commande et l'enregistrera en tant que champ méta pour la commande 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);
    }
});

Ajouter la note de commande de FooSales aux courriels d'administration de WooCommerce #

Ajoutez l'extrait de code suivant à la section functions.php si vous souhaitez que la "note de commande" que vous avez ajoutée à la commande dans FooSales s'affiche dans les courriels d'administration de 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>' . __('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>' . __( 'Il n'y a pas encore de notes pour cette commande.', 'woocommerce' ) . '</li>' ;
		}

		echo '</ul>';
	}
}

Articles