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; }
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; }
public function tm_woo_ce_extend_order_item($order_item = array(), $order_id = 0) { if (function_exists('woo_ce_get_extra_product_option_fields') && ($tm_fields = woo_ce_get_extra_product_option_fields())) { foreach ($tm_fields as $tm_field) { $order_item->{sprintf('tm_%s', sanitize_key($tm_field['name']))} = $tm_field['value']; } unset($tm_fields, $tm_field); } return $order_item; }