Exemple #1
0
function woo_ce_extend_order_fields($fields = array())
{
    // Product Add-ons - http://www.woothemes.com/
    if (class_exists('Product_Addon_Admin') || class_exists('Product_Addon_Display')) {
        $product_addons = woo_ce_get_product_addons();
        if (!empty($product_addons)) {
            foreach ($product_addons as $product_addon) {
                if (!empty($product_addon)) {
                    $fields[] = array('name' => sprintf('order_items_product_addon_%s', $product_addon->post_name), 'label' => sprintf(__('Order Items: %s', 'woo_ce'), ucfirst($product_addon->post_title)), 'hover' => sprintf(apply_filters('woo_ce_extend_order_fields_product_addons', '%s: %s'), __('Product Add-ons', 'woo_ce'), $product_addon->form_title));
                }
            }
        }
        unset($product_addons, $product_addon);
    }
    // WooCommerce Sequential Order Numbers - http://www.skyverge.com/blog/woocommerce-sequential-order-numbers/
    // Sequential Order Numbers Pro - http://www.woothemes.com/products/sequential-order-numbers-pro/
    if (class_exists('WC_Seq_Order_Number') || class_exists('WC_Seq_Order_Number_Pro')) {
        $fields[] = array('name' => 'order_number', 'label' => __('Order Number', 'woo_ce'));
    }
    // WooCommerce Print Invoice & Delivery Note - https://wordpress.org/plugins/woocommerce-delivery-notes/
    if (class_exists('WooCommerce_Delivery_Notes')) {
        $fields[] = array('name' => 'invoice_number', 'label' => __('Invoice Number', 'woo_ce'));
        $fields[] = array('name' => 'invoice_date', 'label' => __('Invoice Date', 'woo_ce'));
    }
    // WooCommerce PDF Invoices & Packing Slips - http://www.wpovernight.com
    if (class_exists('WooCommerce_PDF_Invoices')) {
        $fields[] = array('name' => 'pdf_invoice_number', 'label' => __('PDF Invoice Number', 'woo_ce'));
        $fields[] = array('name' => 'pdf_invoice_date', 'label' => __('PDF Invoice Date', 'woo_ce'));
    }
    // WooCommerce Checkout Manager - http://wordpress.org/plugins/woocommerce-checkout-manager/
    // WooCommerce Checkout Manager Pro - http://www.trottyzone.com/product/woocommerce-checkout-manager-pro
    if (function_exists('wccs_install') || function_exists('wccs_install_pro')) {
        $options = get_option('wccs_settings');
        if (isset($options['buttons'])) {
            $buttons = $options['buttons'];
            if (!empty($buttons)) {
                $header = $buttons[0]['type'] == 'heading' ? $buttons[0]['label'] : false;
                foreach ($buttons as $button) {
                    if ($button['type'] == 'heading') {
                        continue;
                    }
                    $fields[] = array('name' => $button['label'], 'label' => !empty($header) ? sprintf(apply_filters('woo_ce_extend_order_fields_wccs', '%s: %s'), ucfirst($header), ucfirst($button['label'])) : ucfirst($button['label']));
                }
                unset($buttons, $button, $header);
            }
        }
        unset($options);
    }
    // Poor Guys Swiss Knife - http://wordpress.org/plugins/woocommerce-poor-guys-swiss-knife/
    if (function_exists('wcpgsk_init')) {
        $options = get_option('wcpgsk_settings');
        $billing_fields = isset($options['woofields']['billing']) ? $options['woofields']['billing'] : array();
        $shipping_fields = isset($options['woofields']['shipping']) ? $options['woofields']['shipping'] : array();
        // Custom billing fields
        if (!empty($billing_fields)) {
            foreach ($billing_fields as $key => $billing_field) {
                $fields[] = array('name' => $key, 'label' => $options['woofields']['label_' . $key]);
            }
            unset($billing_fields, $billing_field);
        }
        // Custom shipping fields
        if (!empty($shipping_fields)) {
            foreach ($shipping_fields as $key => $shipping_field) {
                $fields[] = array('name' => $key, 'label' => $options['woofields']['label_' . $key]);
            }
            unset($shipping_fields, $shipping_field);
        }
        unset($options);
    }
    // Checkout Field Editor - http://woothemes.com/woocommerce/
    if (function_exists('woocommerce_init_checkout_field_editor')) {
        $billing_fields = get_option('wc_fields_billing', array());
        $shipping_fields = get_option('wc_fields_shipping', array());
        $custom_fields = get_option('wc_fields_additional', array());
        // Custom billing fields
        if (!empty($billing_fields)) {
            foreach ($billing_fields as $key => $billing_field) {
                // Only add non-default Checkout fields to export columns list
                if (isset($billing_field['custom']) && $billing_field['custom'] == 1) {
                    $fields[] = array('name' => sprintf('wc_billing_%s', $key), 'label' => sprintf(__('Billing: %s', 'woo_ce'), ucfirst($billing_field['label'])));
                }
            }
        }
        unset($billing_fields, $billing_field);
        // Custom shipping fields
        if (!empty($shipping_fields)) {
            foreach ($shipping_fields as $key => $shipping_field) {
                // Only add non-default Checkout fields to export columns list
                if (isset($shipping_field['custom']) && $shipping_field['custom'] == 1) {
                    $fields[] = array('name' => sprintf('wc_shipping_%s', $key), 'label' => sprintf(__('Shipping: %s', 'woo_ce'), ucfirst($shipping_field['label'])));
                }
            }
        }
        unset($shipping_fields, $shipping_field);
        // Custom fields
        if (!empty($custom_fields)) {
            foreach ($custom_fields as $key => $custom_field) {
                // Only add non-default Checkout fields to export columns list
                if (isset($custom_field['custom']) && $custom_field['custom'] == 1) {
                    $fields[] = array('name' => sprintf('wc_additional_%s', $key), 'label' => sprintf(__('Additional: %s', 'woo_ce'), ucfirst($custom_field['label'])));
                }
            }
        }
        unset($custom_fields, $custom_field);
    }
    // Checkout Field Manager - http://61extensions.com
    if (function_exists('sod_woocommerce_checkout_manager_settings')) {
        $billing_fields = get_option('woocommerce_checkout_billing_fields', array());
        $shipping_fields = get_option('woocommerce_checkout_shipping_fields', array());
        $custom_fields = get_option('woocommerce_checkout_additional_fields', array());
        // Custom billing fields
        if (!empty($billing_fields)) {
            foreach ($billing_fields as $key => $billing_field) {
                // Only add non-default Checkout fields to export columns list
                if (strtolower($billing_field['default_field']) != 'on') {
                    $fields[] = array('name' => sprintf('sod_billing_%s', $billing_field['name']), 'label' => sprintf(__('Billing: %s', 'woo_ce'), ucfirst($billing_field['label'])));
                }
            }
        }
        unset($billing_fields, $billing_field);
        // Custom shipping fields
        if (!empty($shipping_fields)) {
            foreach ($shipping_fields as $key => $shipping_field) {
                // Only add non-default Checkout fields to export columns list
                if (strtolower($shipping_field['default_field']) != 'on') {
                    $fields[] = array('name' => sprintf('sod_shipping_%s', $shipping_field['name']), 'label' => sprintf(__('Shipping: %s', 'woo_ce'), ucfirst($shipping_field['label'])));
                }
            }
        }
        unset($shipping_fields, $shipping_field);
        // Custom fields
        if (!empty($custom_fields)) {
            foreach ($custom_fields as $key => $custom_field) {
                // Only add non-default Checkout fields to export columns list
                if (strtolower($custom_field['default_field']) != 'on') {
                    $fields[] = array('name' => sprintf('sod_additional_%s', $custom_field['name']), 'label' => sprintf(__('Additional: %s', 'woo_ce'), ucfirst($custom_field['label'])));
                }
            }
        }
        unset($custom_fields, $custom_field);
    }
    // WooCommerce Checkout Add-Ons - http://www.skyverge.com/product/woocommerce-checkout-add-ons/
    if (function_exists('init_woocommerce_checkout_add_ons')) {
        $fields[] = array('name' => 'order_items_checkout_addon_id', 'label' => __('Order Items: Checkout Add-ons ID', 'woo_ce'));
        $fields[] = array('name' => 'order_items_checkout_addon_label', 'label' => __('Order Items: Checkout Add-ons Label', 'woo_ce'));
        $fields[] = array('name' => 'order_items_checkout_addon_value', 'label' => __('Order Items: Checkout Add-ons Value', 'woo_ce'));
    }
    // WooCommerce Brands Addon - http://woothemes.com/woocommerce/
    // WooCommerce Brands - http://proword.net/Woocommerce_Brands/
    if (class_exists('WC_Brands') || class_exists('woo_brands') || taxonomy_exists(apply_filters('woo_ce_brand_term_taxonomy', 'product_brand'))) {
        $fields[] = array('name' => 'order_items_brand', 'label' => __('Order Items: Brand', 'woo_ce'));
    }
    // Product Vendors - http://www.woothemes.com/products/product-vendors/
    if (class_exists('WooCommerce_Product_Vendors')) {
        $fields[] = array('name' => 'order_items_vendor', 'label' => __('Order Items: Product Vendor', 'woo_ce'));
    }
    // Cost of Goods - http://www.skyverge.com/product/woocommerce-cost-of-goods-tracking/
    if (class_exists('WC_COG')) {
        $fields[] = array('name' => 'cost_of_goods', 'label' => __('Order Total Cost of Goods', 'woo_ce'));
        $fields[] = array('name' => 'order_items_cost_of_goods', 'label' => __('Order Items: Cost of Goods', 'woo_ce'));
        $fields[] = array('name' => 'order_items_total_cost_of_goods', 'label' => __('Order Items: Total Cost of Goods', 'woo_ce'));
    }
    // WooCommerce MSRP Pricing - http://woothemes.com/woocommerce/
    if (function_exists('woocommerce_msrp_activate')) {
        $fields[] = array('name' => 'order_items_msrp', 'label' => __('Order Items: MSRP', 'woo_ce'));
    }
    // Local Pickup Plus - http://www.woothemes.com/products/local-pickup-plus/
    if (class_exists('WC_Local_Pickup_Plus')) {
        $fields[] = array('name' => 'order_items_pickup_location', 'label' => __('Order Items: Pickup Location', 'woo_ce'));
    }
    // WooCommerce Bookings - http://www.woothemes.com/products/woocommerce-bookings/
    if (class_exists('WC_Bookings')) {
        $fields[] = array('name' => 'order_items_booking_id', 'label' => __('Order Items: Booking ID', 'woo_ce'), 'hover' => __('WooCommerce Bookings', 'woo_ce'));
        $fields[] = array('name' => 'order_items_booking_date', 'label' => __('Order Items: Booking Date', 'woo_ce'), 'hover' => __('WooCommerce Bookings', 'woo_ce'));
        $fields[] = array('name' => 'order_items_booking_start_date', 'label' => __('Order Items: Start Date', 'woo_ce'), 'hover' => __('WooCommerce Bookings', 'woo_ce'));
        $fields[] = array('name' => 'order_items_booking_end_date', 'label' => __('Order Items: End Date', 'woo_ce'), 'hover' => __('WooCommerce Bookings', 'woo_ce'));
    }
    // Gravity Forms - http://woothemes.com/woocommerce
    if (class_exists('RGForms') && class_exists('woocommerce_gravityforms')) {
        // Check if there are any Products linked to Gravity Forms
        if ($gf_fields = woo_ce_get_gravity_form_fields()) {
            $fields[] = array('name' => 'order_items_gf_form_id', 'label' => __('Order Items: Gravity Form ID', 'woo_ce'));
            $fields[] = array('name' => 'order_items_gf_form_label', 'label' => __('Order Items: Gravity Form Label', 'woo_ce'));
            foreach ($gf_fields as $gf_field) {
                $gf_field_duplicate = false;
                // Check if this isn't a duplicate Gravity Forms field
                foreach ($fields as $field) {
                    if (isset($field['name']) && $field['name'] == sprintf('order_items_gf_%d_%s', $gf_field['formId'], $gf_field['id'])) {
                        // Duplicate exists
                        $gf_field_duplicate = true;
                        break;
                    }
                }
                // If it's not a duplicate go ahead and add it to the list
                if ($gf_field_duplicate !== true) {
                    $fields[] = array('name' => sprintf('order_items_gf_%d_%s', $gf_field['formId'], $gf_field['id']), 'label' => sprintf(apply_filters('woo_ce_extend_order_fields_gf_label', __('Order Items: %s - %s', 'woo_ce')), ucwords(strtolower($gf_field['formTitle'])), ucfirst(strtolower($gf_field['label']))), 'hover' => sprintf(apply_filters('woo_ce_extend_order_fields_gf_hover', '%s: %s (ID: %d)'), __('Gravity Forms', 'woo_ce'), ucwords(strtolower($gf_field['formTitle'])), $gf_field['formId']));
                }
            }
            unset($gf_fields, $gf_field);
        }
    }
    // WooCommerce Currency Switcher - http://dev.pathtoenlightenment.net/shop
    if (class_exists('WC_Aelia_CurrencySwitcher')) {
        $fields[] = array('name' => 'order_currency', 'label' => __('Order Currency', 'woo_ce'));
    }
    // WooCommerce TM Extra Product Options - http://codecanyon.net/item/woocommerce-extra-product-options/7908619
    if (class_exists('TM_Extra_Product_Options')) {
        if ($tm_fields = woo_ce_get_extra_product_option_fields()) {
            foreach ($tm_fields as $tm_field) {
                $fields[] = array('name' => sprintf('order_items_tm_%s', sanitize_key($tm_field['name'])), 'label' => sprintf(__('Order Items: %s', 'woo_ce'), $tm_field['name']));
            }
            unset($tm_fields, $tm_field);
        }
    }
    // WooCommerce Ship to Multiple Addresses - http://woothemes.com/woocommerce
    if (class_exists('WC_Ship_Multiple')) {
        $fields[] = array('name' => 'wcms_number_packages', 'label' => __('Number of Packages', 'woo_ce'), 'hover' => __('Ship to Multiple Addresses', 'woo_ce'));
    }
    // Attributes
    if ($attributes = woo_ce_get_product_attributes()) {
        foreach ($attributes as $attribute) {
            $attribute->attribute_label = trim($attribute->attribute_label);
            if (empty($attribute->attribute_label)) {
                $attribute->attribute_label = $attribute->attribute_name;
            }
            $fields[] = array('name' => sprintf('order_items_attribute_%s', $attribute->attribute_name), 'label' => sprintf(__('Order Items: %s', 'woo_ce'), ucwords($attribute->attribute_label)), 'hover' => sprintf(apply_filters('woo_ce_extend_order_fields_attribute', '%s: %s (#%d)'), __('Attribute', 'woo_ce'), $attribute->attribute_name, $attribute->attribute_id));
        }
        unset($attributes, $attribute);
    }
    // Custom Order fields
    $custom_orders = woo_ce_get_option('custom_orders', '');
    if (!empty($custom_orders)) {
        foreach ($custom_orders as $custom_order) {
            if (!empty($custom_order)) {
                $fields[] = array('name' => $custom_order, 'label' => woo_ce_clean_export_label($custom_order), 'hover' => sprintf(apply_filters('woo_ce_extend_order_fields_custom_order_hover', '%s: %s'), __('Custom Order', 'woo_ce'), $custom_order));
            }
        }
        unset($custom_orders, $custom_order);
    }
    // Custom Order Items fields
    $custom_order_items = woo_ce_get_option('custom_order_items', '');
    if (!empty($custom_order_items)) {
        foreach ($custom_order_items as $custom_order_item) {
            if (!empty($custom_order_item)) {
                $fields[] = array('name' => sprintf('order_items_%s', $custom_order_item), 'label' => sprintf(__('Order Items: %s', 'woo_ce'), woo_ce_clean_export_label($custom_order_item)), 'hover' => sprintf(apply_filters('woo_ce_extend_order_fields_custom_order_item_hover', '%s: %s'), __('Custom Order Item', 'woo_ce'), $custom_order_item));
            }
        }
    }
    // Custom Product fields
    $custom_product_fields = woo_ce_get_option('custom_products', '');
    if (!empty($custom_product_fields)) {
        foreach ($custom_product_fields as $custom_product_field) {
            if (!empty($custom_product_field)) {
                $fields[] = array('name' => sprintf('order_items_%s', $custom_product_field), 'label' => sprintf(__('Order Items: %s', 'woo_ce'), woo_ce_clean_export_label($custom_product_field)), 'hover' => sprintf(apply_filters('woo_ce_extend_order_fields_custom_product_hover', '%s: %s'), __('Custom Product', 'woo_ce'), $custom_product_field));
            }
        }
    }
    return $fields;
}
function woo_ce_extend_order_items_unique_columns( $fields = array(), $i = 0, $original_columns = array() ) {

	// WooCommerce Tax Rates
	$tax_rates = woo_ce_get_order_tax_rates();
	if( !empty( $tax_rates ) ) {
		foreach( $tax_rates as $tax_rate ) {
			if( isset( $original_columns[sprintf( 'order_item_%d_tax_rate_%d', $i, $tax_rate['rate_id'] )] ) )
				$fields[] = sprintf( __( 'Order Item #%d: Tax Rate - %s', 'woo_ce' ), $i, $tax_rate['label'] );
		}
	}
	unset( $tax_rates, $tax_rate );

	// Product Add-ons - http://www.woothemes.com/
	if( $product_addons = woo_ce_get_product_addons() ) {
		foreach( $product_addons as $product_addon ) {
			if( isset( $original_columns[sprintf( 'order_item_%d_product_addon_%s', $i, $product_addon->post_name )] ) )
				$fields[] = sprintf( __( 'Order Item #%d: %s', 'woo_ce' ), $i, $product_addon->post_title );
		}
	}

	// WooCommerce Checkout Add-Ons - http://www.skyverge.com/product/woocommerce-checkout-add-ons/
	if( function_exists( 'init_woocommerce_checkout_add_ons' ) ) {
		if( isset( $original_columns[sprintf( 'order_item_%d_checkout_addon_id', $i )] ) )
			$fields[] = sprintf( __( 'Order Item #%d: %s', 'woo_ce' ), $i, woo_ce_get_order_field( 'order_items_checkout_addon_id', 'name', 'unique' ) );
		if( isset( $original_columns[sprintf( 'order_item_%d_checkout_addon_label', $i )] ) )
			$fields[] = sprintf( __( 'Order Item #%d: %s', 'woo_ce' ), $i, woo_ce_get_order_field( 'order_items_checkout_addon_label', 'name', 'unique' ) );
		if( isset( $original_columns[sprintf( 'order_item_%d_checkout_addon_value', $i )] ) )
			$fields[] = sprintf( __( 'Order Item #%d: %s', 'woo_ce' ), $i, woo_ce_get_order_field( 'order_items_check_addon_value', 'name', 'unique' ) );
	}

	// WooCommerce Brands Addon - http://woothemes.com/woocommerce/
	// WooCommerce Brands - http://proword.net/Woocommerce_Brands/
	if( class_exists( 'WC_Brands' ) || class_exists( 'woo_brands' ) || taxonomy_exists( apply_filters( 'woo_ce_brand_term_taxonomy', 'product_brand' ) ) ) {
		if( isset( $original_columns[sprintf( 'order_item_%d_brand', $i )] ) )
			$fields[] = sprintf( __( 'Order Item #%d: %s', 'woo_ce' ), $i, woo_ce_get_order_field( 'order_items_brand', 'name', 'unique' ) );
	}

	// Product Vendors - http://www.woothemes.com/products/product-vendors/
	if( class_exists( 'WooCommerce_Product_Vendors' ) ) {
		if( isset( $original_columns[sprintf( 'order_item_%d_vendor', $i )] ) )
			$fields[] = sprintf( __( 'Order Item #%d: %s', 'woo_ce' ), $i, woo_ce_get_order_field( 'order_items_vendor', 'name', 'unique' ) );
	}

	// Cost of Goods - http://www.skyverge.com/product/woocommerce-cost-of-goods-tracking/
	if( class_exists( 'WC_COG' ) ) {
		if( isset( $original_columns[sprintf( 'order_item_%d_cost_of_goods', $i )] ) )
			$fields[] = sprintf( __( 'Order Item #%d: %s', 'woo_ce' ), $i, woo_ce_get_order_field( 'order_items_cost_of_goods', 'name', 'unique' ) );
		if( isset( $original_columns[sprintf( 'order_item_%d_total_cost_of_goods', $i )] ) )
			$fields[] = sprintf( __( 'Order Item #%d: %s', 'woo_ce' ), $i, woo_ce_get_order_field( 'order_items_total_cost_of_goods', 'name', 'unique' ) );
	}

	// WooCommerce MSRP Pricing - http://woothemes.com/woocommerce/
	if( function_exists( 'woocommerce_msrp_activate' ) ) {
		if( isset( $original_columns[sprintf( 'order_item_%d_msrp', $i )] ) )
			$fields[] = sprintf( __( 'Order Item #%d: %s', 'woo_ce' ), $i, woo_ce_get_order_field( 'order_items_msrp', 'name', 'unique' ) );
	}

	// Gravity Forms - http://woothemes.com/woocommerce
	if( class_exists( 'RGForms' ) && class_exists( 'woocommerce_gravityforms' ) ) {
		if( isset( $original_columns[sprintf( 'order_item_%d_gf_form_id', $i )] ) )
			$fields[] = sprintf( __( 'Order Item #%d: %s', 'woo_ce' ), $i, woo_ce_get_order_field( 'order_items_gf_form_id', 'name', 'unique' ) );
		if( isset( $original_columns[sprintf( 'order_item_%d_gf_form_label', $i )] ) )
			$fields[] = sprintf( __( 'Order Item #%d: %s', 'woo_ce' ), $i, woo_ce_get_order_field( 'order_items_gf_form_label', 'name', 'unique' ) );
		// Check if there are any Products linked to Gravity Forms
		if( $gf_fields = woo_ce_get_gravity_form_fields() ) {
			foreach( $gf_fields as $key => $gf_field ) {
				if( isset( $original_columns[sprintf( 'order_item_%d_gf_%d_%s', $i, $gf_field['formId'], $gf_field['id'] )] ) )
					$fields[] = sprintf( apply_filters( 'woo_ce_extend_order_items_unique_columns_gf_fields', __( 'Order Item #%d: %s - %s', 'woo_ce' ) ), $i, $gf_field['formTitle'], $gf_field['label'] );
			}
		}
	}

	// Local Pickup Plus - http://www.woothemes.com/products/local-pickup-plus/
	if( class_exists( 'WC_Local_Pickup_Plus' ) ) {
		if( isset( $original_columns[sprintf( 'order_item_%d_pickup_location', $i )] ) )
			$fields[] = sprintf( __( 'Order Item #%d: %s', 'woo_ce' ), $i, woo_ce_get_order_field( 'order_items_pickup_location', 'name', 'unique' ) );
	}

	// WooCommerce Bookings - http://www.woothemes.com/products/woocommerce-bookings/
	if( class_exists( 'WC_Bookings' ) ) {
		if( isset( $original_columns[sprintf( 'order_item_%d_booking_id', $i )] ) )
			$fields[] = sprintf( __( 'Order Item #%d: %s', 'woo_ce' ), $i, woo_ce_get_order_field( 'order_items_booking_id', 'name', 'unique' ) );
		if( isset( $original_columns[sprintf( 'order_item_%d_booking_date', $i )] ) )
			$fields[] = sprintf( __( 'Order Item #%d: %s', 'woo_ce' ), $i, woo_ce_get_order_field( 'order_items_booking_date', 'name', 'unique' ) );
		if( isset( $original_columns[sprintf( 'order_item_%d_booking_type', $i )] ) )
			$fields[] = sprintf( __( 'Order Item #%d: %s', 'woo_ce' ), $i, woo_ce_get_order_field( 'order_items_booking_type', 'name', 'unique' ) );
		if( isset( $original_columns[sprintf( 'order_item_%d_booking_start_date', $i )] ) )
			$fields[] = sprintf( __( 'Order Item #%d: %s', 'woo_ce' ), $i, woo_ce_get_order_field( 'order_items_booking_start_date', 'name', 'unique' ) );
		if( isset( $original_columns[sprintf( 'order_item_%d_booking_end_date', $i )] ) )
			$fields[] = sprintf( __( 'Order Item #%d: %s', 'woo_ce' ), $i, woo_ce_get_order_field( 'order_items_booking_end_date', 'name', 'unique' ) );
	}

	// WooCommerce TM Extra Product Options - http://codecanyon.net/item/woocommerce-extra-product-options/7908619
	if( class_exists( 'TM_Extra_Product_Options' ) ) {
		if( $tm_fields = woo_ce_get_extra_product_option_fields() ) {
			foreach( $tm_fields as $tm_field ) {
				if( isset( $original_columns[sprintf( 'order_item_%d_tm_%s', $i, sanitize_key( $tm_field['name'] ) )] ) )
					$fields[] = sprintf( __( 'Order Item #%d: %s', 'woo_ce' ), $i, $tm_field['name'] );
			}
		}
	}

	// Attributes
	if( $attributes = woo_ce_get_product_attributes() ) {
		foreach( $attributes as $attribute ) {
			if( isset( $original_columns[sprintf( 'order_item_%d_attribute_%s', $i, sanitize_key( $attribute->attribute_name ) )] ) ) {
				if( empty( $attribute->attribute_label ) )
					$attribute->attribute_label = $attribute->attribute_name;
				$fields[] = sprintf( __( 'Order Item #%d: %s', 'woo_ce' ), $i, $attribute->attribute_label );
			}
		}
	}

	// Custom Order Items fields
	$custom_order_items = woo_ce_get_option( 'custom_order_items', '' );
	if( !empty( $custom_order_items ) ) {
		foreach( $custom_order_items as $custom_order_item ) {
			if( !empty( $custom_order_item ) ) {
				if( isset( $original_columns[sprintf( 'order_item_%d_%s', $i, $custom_order_item )] ) )
					$fields[] = sprintf( __( 'Order Item #%d: %s', 'woo_ce' ), $i, $custom_order_item );
			}
		}
	}

	// Custom Product fields
	$custom_products = woo_ce_get_option( 'custom_products', '' );
	if( !empty( $custom_products ) ) {
		foreach( $custom_products as $custom_product ) {
			if( !empty( $custom_product ) ) {
				if( isset( $original_columns[sprintf( 'order_item_%d_%s', $i, $custom_product )] ) )
					$fields[] = sprintf( __( 'Order Item #%d: %s', 'woo_ce' ), $i, $custom_product );
			}
		}
	}

	return $fields;

}