function woo_ce_get_gravity_form_fields() { if ($gf_products = woo_ce_get_gravity_forms_products()) { $fields = array(); foreach ($gf_products as $gf_product) { if ($gf_product_data = maybe_unserialize(get_post_meta($gf_product->post_id, '_gravity_form_data', true))) { // Check the class and method for Gravity Forms exists if (class_exists('RGFormsModel') && method_exists('RGFormsModel', 'get_form_meta')) { // Check the form exists $gf_form_meta = RGFormsModel::get_form_meta($gf_product_data['id']); if (!empty($gf_form_meta)) { // Check that the form has fields assigned to it if (!empty($gf_form_meta['fields'])) { foreach ($gf_form_meta['fields'] as $gf_form_field) { // Check for duplicate Gravity Form fields $gf_form_field['formTitle'] = $gf_form_meta['title']; // Do not include page and section breaks, hidden as exportable fields if (!in_array($gf_form_field['type'], array('page', 'section', 'hidden'))) { $fields[] = $gf_form_field; } } } } unset($gf_form_meta); } } } return $fields; } }
function woo_ce_extend_order_item_custom_meta( $order_item, $meta_key = '', $meta_value = '' ) { global $export; // 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 ) $order_item->{sprintf( 'tm_%s', sanitize_key( $tm_field['name'] ) )} = woo_ce_get_extra_product_option_value( $order_item->id, $tm_field ); } unset( $tm_fields, $tm_field ); } // Gravity Forms - http://woothemes.com/woocommerce if( woo_ce_get_gravity_forms_products() ) { $meta_type = 'order_item'; $gravity_forms_history = get_metadata( $meta_type, $order_item->id, '_gravity_forms_history', true ); // Check that Gravity Forms Order item meta isn't empty if( !empty( $gravity_forms_history ) ) { if( isset( $gravity_forms_history['_gravity_form_data'] ) ) { $order_item->gf_form_id = ( isset( $gravity_forms_history['_gravity_form_data']['id'] ) ? $gravity_forms_history['_gravity_form_data']['id'] : 0 ); if( $order_item->gf_form_id ) { $gravity_form = ( method_exists( 'RGFormsModel', 'get_form' ) ? RGFormsModel::get_form( $gravity_forms_history['_gravity_form_data']['id'] ) : array() ); $order_item->gf_form_label = ( !empty( $gravity_form ) ? $gravity_form->title : '' ); } } } } // Product Add-ons - http://www.woothemes.com/ if( $product_addons = woo_ce_get_product_addons() ) { foreach( $product_addons as $product_addon ) { if( strpos( $meta_key, $product_addon->post_name ) !== false ) { // Check if this Product Addon has already been set if( isset( $order_item->product_addons[$product_addon->post_name] ) ) { // Append the new result to the existing value (likely a checkbox, multiple select, etc.) $order_item->product_addons[$product_addon->post_name] .= $export->category_separator . $meta_value; } else { // Otherwise make a new one $order_item->product_addons[$product_addon->post_name] = $meta_value; } } } } // WooCommerce Checkout Add-Ons - http://www.skyverge.com/product/woocommerce-checkout-add-ons/ if( function_exists( 'init_woocommerce_checkout_add_ons' ) ) { $meta_type = 'fee'; if( $meta_key == '_wc_checkout_add_on_id' ) $order_item->checkout_addon_id = $meta_value; if( $meta_key == '_wc_checkout_add_on_label' ) $order_item->checkout_addon_label = $meta_value; if( $meta_key == '_wc_checkout_add_on_value' ) $order_item->checkout_addon_value = $meta_value; } // Local Pickup Plus - http://www.woothemes.com/products/local-pickup-plus/ if( class_exists( 'WC_Local_Pickup_Plus' ) ) { $meta_type = 'order_item'; if( $meta_key == 'Pickup Location' ) $order_item->pickup_location = $meta_value; } // WooCommerce Bookings - http://www.woothemes.com/products/woocommerce-bookings/ if( class_exists( 'WC_Bookings' ) ) { $meta_type = 'order_item'; if( $meta_key == 'Booking Date' ) $order_item->booking_date = $meta_value; if( $meta_key == 'Booking Type' ) $order_item->booking_type = $meta_value; } return $order_item; }