1. Temas
  2. Fragmentos de código

Fragmentos de código

Se trata de un A nivel de desarrollador documento. Si no está familiarizado con el código/plantillas y la resolución de posibles conflictos, póngase en contacto con un desarrollador que esté familiarizado con FooSales y/o WooCommerce. Estos fragmentos se proporcionan como cortesía y están pensados como punto de partida para ayudar a cualquier necesidad específica de personalización. No podemos ofrecer soporte para personalizaciones bajo nuestra plataforma Condiciones de uso.

Capturar las tasas Square al completar un pedido #

Si está utilizando un plugin de exportación de terceros para exportar sus pedidos y está procesando pagos con Square, es posible que desee incluir las tasas que Square deduce del pago en su exportación de ventas. Por defecto, FooSales no almacena ningún dato obtenido de Square salvo el ID de pedido Square que se genera al procesar correctamente un pago. Puede hacer que FooSales almacene los gastos de procesamiento Square como un metavalor oculto para los pedidos WooCommerce capturados a través de FooSales en los que se utilizó Square como método de pago.

Añada el siguiente fragmento de código al tema funciones.php que comprobará si un pedido tiene un ID de pedido Square cuando se marca como completado. A continuación, utilizará la API Square para recuperar el pedido Square de su cuenta, sumar todas las comisiones de pago correspondientes a ese pedido y guardarlo como un meta campo para el pedido 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);
    }
});

Añadir la nota de pedido de FooSales a los correos electrónicos de administración de WooCommerce #

Añada el siguiente fragmento de código al tema funciones.php si desea que la "Nota de pedido" que ha añadido al pedido en FooSales aparezca en los correos electrónicos de administración 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;
	si no
		$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 pedido', '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>' . __( 'Aún no hay notas para este pedido.', 'woocommerce' ) . '</li>';
		}

		echo '</ul>';
	}
}

Artículos