<button id='button_custom_field_products' class='button-secondary'><?php _e('Add Static Field', 'woocommerce-order-export'); ?> </button> </div> </div> </div> <div id='fields_control_coupons' class='fields_control_style' style="display: none;"> <div class='div_meta' > <label><?php _e('Meta key', 'woocommerce-order-export'); ?> :</label><select id='select_custom_meta_coupons'> <?php foreach (WC_Order_Export_Data_Extractor::get_all_coupon_custom_meta_fields() as $meta_id => $meta_name) { echo "<option value={$meta_name} >{$meta_name}</option>"; } ?> </select> <label><?php _e('Column Name', 'woocommerce-order-export'); ?> :</label><input type='text' id='colname_custom_meta_coupons'/></label> <div style="text-align: right;"> <button id='button_custom_meta_coupons' class='button-secondary'><?php _e('Add Field', 'woocommerce-order-export'); ?> </button> </div> </div>
<div style="text-align: right;"> <button id='button_custom_field' class='button-secondary'><?php _e('Confirm', 'woocommerce-order-export'); ?> </button> <button class='button-secondary button_cancel'><?php _e('Cancel', 'woocommerce-order-export'); ?> </button> </div> </div> <div class='div1'><span><strong><?php _e('Use sections', 'woocommerce-order-export'); ?> :</strong></span> <?php foreach (WC_Order_Export_Data_Extractor::get_order_segments() as $section_id => $section_name) { echo "<label ><input type=checkbox value={$section_id} checked class='field_section'>{$section_name} </label>"; } ?> </div> <div class='div2'> <span><strong><?php _e('Actions', 'woocommerce-order-export'); ?> :</strong></span> <button id='orders_add_custom_meta' class='button-secondary'><?php _e('Add Field', 'woocommerce-order-export'); ?> </button> <br><br> <button id='orders_add_custom_field' class='button-secondary'><?php
public function get_export_settings($mode, $id = 0) { if ($mode == 'now' or !$id) { $settings = get_option($this->settings_name_now, array()); } elseif ($mode == 'cron') { $all_jobs = get_option($this->settings_name_cron, array()); if (isset($all_jobs[$id])) { $settings = $all_jobs[$id]; } else { $settings = array(); } } $defaults = array('statuses' => array(), 'from_date' => '', 'to_date' => '', 'shipping_locations' => array(), 'product_categories' => array(), 'products' => array(), 'product_attributes' => array(), 'product_taxonomies' => array(), 'format' => 'XLS', 'format_xls_display_column_names' => 1, 'format_xls_populate_other_columns_product_rows' => 0, 'format_csv_delimiter' => ',', 'format_csv_linebreak' => '\\r\\n', 'format_csv_display_column_names' => 1, 'format_csv_add_utf8_bom' => 0, 'format_csv_populate_other_columns_product_rows' => 0, 'format_xml_root_tag' => 'Orders', 'format_xml_order_tag' => 'Order', 'format_xml_product_tag' => 'Product', 'format_xml_coupon_tag' => 'Coupon'); if (!isset($settings['format'])) { $settings['format'] = 'XLS'; } if (!isset($settings['order_fields'])) { $settings['order_fields'] = array(); } $settings['order_fields'] = $settings['order_fields'] + WC_Order_Export_Data_Extractor::get_order_fields($settings['format']); if (!isset($settings['order_product_fields'])) { $settings['order_product_fields'] = array(); } $settings['order_product_fields'] = $settings['order_product_fields'] + WC_Order_Export_Data_Extractor::get_order_product_fields($settings['format']); if (!isset($settings['order_coupon_fields'])) { $settings['order_coupon_fields'] = array(); } $settings['order_coupon_fields'] = $settings['order_coupon_fields'] + WC_Order_Export_Data_Extractor::get_order_coupon_fields($settings['format']); return array_merge($defaults, $settings); }
public static function build_file($settings, $make_mode, $output_mode, $offset = false, $limit = false, $filename = '') { global $wpdb; if ($output_mode == 'browser') { $filename = 'php://output'; while (@ob_end_clean()) { } // remove ob_xx } else { $filename = !empty($filename) ? $filename : tempnam("/tmp", $settings['format']); } //add_filter("woe_csv_output_filter",array($this,'testfilter'),10,2); $formater = self::init_formater($make_mode, $settings, $filename, $labels, $static_vals); $format = strtolower($settings['format']); if ($make_mode == 'finish') { if ($format != 'xls') { $formater->finish(); } return $filename; } //get IDs $sql = WC_Order_Export_Data_Extractor::sql_get_order_ids($settings); if ($make_mode == 'preview') { $sql .= " ORDER BY order_id DESC LIMIT 1"; } elseif ($make_mode != 'estimate') { $sql .= " ORDER BY order_id ASC"; } //UNUSED ajax get partial orders if ($make_mode == 'partial') { $offset = intval($offset); $limit = intval($limit); $sql .= " LIMIT {$offset},{$limit}"; } $order_ids = $wpdb->get_col($sql); //$order_ids = array(387); // prepare for XLS/CSV $csv_max['coupons'] = $csv_max['products'] = 1; if ($format == 'xls' or $format == 'csv') { if (@$settings['order_fields']['products']['repeat'] == 'columns') { $csv_max['products'] = WC_Order_Export_Data_Extractor::get_max_order_items("line_item", $order_ids); } if (@$settings['order_fields']['coupons']['repeat'] == 'columns') { $csv_max['coupons'] = WC_Order_Export_Data_Extractor::get_max_order_items("coupon", $order_ids); } } // try to optimize calls $filters_active = array('order' => self::check_filters($settings['order_fields'], $format, 'order'), 'products' => self::check_filters($settings['order_product_fields'], $format, 'order_product'), 'coupons' => self::check_filters($settings['order_coupon_fields'], $format, 'order_coupon')); // check it once $export['products'] = $settings['order_fields']['products']['checked']; $export['coupons'] = $settings['order_fields']['coupons']['checked']; $get_coupon_meta = ($export['coupons'] and array_diff(array_keys($labels['coupons']), array('code', 'discount_amount', 'discount_amount_tax'))); // 0 $header = ($format == 'xls' or $format == 'csv') ? self::make_header_csv($labels, $csv_max) : ''; $options = array(); if ($format == 'xls' and @$settings['format_xls_populate_other_columns_product_rows'] or $format == 'csv' and @$settings['format_csv_populate_other_columns_product_rows']) { $options['populate_other_columns_product_rows'] = 1; } if ($make_mode != 'partial') { $formater->start($header); } elseif ($format == 'json' and $offset > 0) { $formater->prev_added = true; } if ($make_mode == 'estimate') { //if estimate return total count return $wpdb->get_var(str_replace('ID as order_id', 'COUNT(ID) as order_count', $sql)); } WC_Order_Export_Data_Extractor::prepare_for_export(); foreach ($order_ids as $order_id) { $rows = WC_Order_Export_Data_Extractor::fetch_order_data($order_id, $labels, $format, $filters_active, $csv_max, $export, $get_coupon_meta, $static_vals, $options); foreach ($rows as $row) { $formater->output($row); } } if ($make_mode != 'partial' or $format == 'xls') { $formater->finish(); } return $filename; }
public static function prepare_for_export() { self::$statuses = wc_get_order_statuses(); self::$countries = WC()->countries->countries; }