Hola, @joseysanti:
Una de las ventajas de Advanced Order Export For WooCommerce es que te permite añadir tus propios campos personalizados. Por ejemplo, para poder seleccionar tus clases de impuesto como campos separados, para crear columnas independientes en el archivo de exportación, añade el siguiente fragmento de código a tu sitio:
//Añadir nuevos campos con todas las clases de impuestos de la tienda
class WOE_add_all_taxes{
var $taxes;
function __construct() {
add_filter('woe_get_order_fields', array($this,'add_order_fields'), 10, 1);
add_filter('woe_settings_validate_defaults', array($this,'hook_new_fields'), 10, 1);
add_filter('woe_order_export_started',array($this,'fetch_order_taxes'), 10, 1);
}
function add_order_fields($fields) {
global $wpdb;
$taxes = $wpdb->get_results("SELECT * FROM {$wpdb->prefix}woocommerce_tax_rates");
foreach($taxes as $tax) {
$fields['tax_'.$tax->tax_rate_id] = array('label'=>$tax->tax_rate_name,'checked' => 1, 'segment'=>'cart','colname'=>$tax->tax_rate_name, 'format'=>'money');
}
return $fields;
}
function hook_new_fields($settings) {
global $wpdb;
$taxes = $wpdb->get_results("SELECT * FROM {$wpdb->prefix}woocommerce_tax_rates");
foreach($taxes as $tax) {
add_filter('woe_get_order_value_tax_'.$tax->tax_rate_id, array($this,'get_tax_value'), 10, 3);
}
return $settings;
}
function fetch_order_taxes($order_id) {
//restablecer valores
$this->taxes = array();
//leer los impuestos
$order = new WC_Order($order_id);
foreach($order->get_taxes() as $code=>$tax) {
$key = 'tax_'.$tax->get_rate_id();
if( !isset($this->taxes[$key])) $this->taxes[$key] = 0;
$this->taxes[$key] += $tax->get_tax_total();
}
return $order_id;
}
function get_tax_value($value, $order,$field) {
return isset($this->taxes[$field]) ? wc_round_tax_total($this->taxes[$field]) : 0;
}
}
new WOE_add_all_taxes();
Este código lo puedes añadir al archivo functions.php
de tu tema hijo o usando el plugin Code Snippets.
Luego, ve a WooCommerce > Exportar pedidos > Seleccionar campos a exportar, y en la columna de la derecha, haz clic en Otros. Deberías ver aquí un campo independiente para cada una de tus clases de impuesto:
El nombre de los campos será el mismo que hayas establecido como Nombre del impuesto en cada clase de impuesto.