51f85fa4 by Jeff Balicki

xport

Signed-off-by: Jeff <jeff@gotenzing.com>
1 parent 24351a69
Showing 157 changed files with 3344 additions and 0 deletions
1 <?php
2 /**
3 * CSV reading section of the plugin
4 *
5 * @link
6 *
7 * @package Wt_Import_Export_For_Woo
8 */
9 if (!defined('ABSPATH')) {
10 exit;
11 }
12 if(!class_exists('Wt_Import_Export_For_Woo_Basic_Csvreader')){
13 class Wt_Import_Export_For_Woo_Basic_Csvreader
14 {
15 public $delimiter=',';
16 public $fgetcsv_esc_check=0;
17 public function __construct($delimiter=',')
18 {
19 $this->delimiter=$delimiter;
20 $this->delimiter=($this->delimiter=='tab' ? "\t" : $this->delimiter);
21
22 /* version 5.3.0 onwards 5th escaping argument introduced in `fgetcsv` function */
23 $this->fgetcsv_esc_check = (version_compare(PHP_VERSION, '5.3.0') >= 0);
24 }
25
26 /**
27 * Taking sample data for mapping screen preparation
28 * This function skip empty rows and take first two non empty rows
29 */
30 public function get_sample_data($file, $grouping=false)
31 {
32 $use_mb = function_exists('mb_detect_encoding');
33 // Set locale
34 $enc = ($use_mb) ? mb_detect_encoding( $file, 'UTF-8, ISO-8859-1', true ) : false;
35 if($enc)
36 {
37 setlocale(LC_ALL, 'en_US.'.$enc);
38 }
39 @ini_set('auto_detect_line_endings', true);
40
41 $sample_data_key=array();
42 $sample_data_val=array();
43 $sample_data=array();
44
45 if(($handle=@fopen($file, "r"))!== false)
46 {
47 $row_count=0;
48 while(($row=($this->fgetcsv_esc_check) ? fgetcsv($handle, 0, $this->delimiter, '"', '"') : fgetcsv($handle, 0, $this->delimiter, '"') )!==false)
49 {
50 if(count(array_filter($row))==0)
51 {
52 continue;
53 }else
54 {
55 $row_count++;
56 }
57
58 if($row_count==1) //taking heading row
59 {
60 $sample_data_key=$row;
61 }else //taking data row
62 {
63 $sample_data_val=$row;
64 break; //only single data row needed
65 }
66 }
67
68 foreach($sample_data_key as $k => $key)
69 {
70 if(!$key)
71 {
72 continue;
73 }
74
75 $val=(isset($sample_data_val[$k]) ? $this->format_data_from_csv($sample_data_val[$k], $enc) : '');
76
77 /* removing BOM like non characters */
78 $wt_remove_bom = apply_filters('wt_import_csv_parser_keep_bom', true);
79 if ($wt_remove_bom) {
80 $key = preg_replace('/[\x00-\x1F\x80-\xFF]/', '', $key);
81 } else {
82 $key = wt_removeBomUtf8_basic($key);
83 }
84 if($grouping)
85 {
86 if(strrpos($key, ':')!==false)
87 {
88 $key_arr=explode(":", $key);
89 if(count($key_arr)>1)
90 {
91 $meta_key=$key_arr[0];
92 if(!isset($sample_data[$meta_key]))
93 {
94 $sample_data[$meta_key]=array();
95 }
96 $sample_data[$meta_key][$key]=$val;
97 }else
98 {
99 $sample_data[$key]=$val;
100 }
101 }else
102 {
103 $sample_data[$key]=$val;
104 }
105 }else
106 {
107 $sample_data[$key]=$val;
108 }
109 }
110
111 fclose($handle);
112 }
113
114 return $sample_data;
115 }
116
117 /**
118 * Get data from CSV as batch
119 */
120 public function get_data_as_batch($file, $offset, $batch_count, $module_obj, $form_data)
121 {
122 $use_mb = function_exists('mb_detect_encoding');
123 // Set locale
124 $enc = ($use_mb) ? mb_detect_encoding( $file, 'UTF-8, ISO-8859-1', true ) : false;
125 if($enc)
126 {
127 setlocale( LC_ALL, 'en_US.' . $enc );
128 }
129 @ini_set('auto_detect_line_endings', true);
130
131 $out=array(
132 'response'=>false,
133 'offset'=>$offset,
134 'data_arr'=>array(),
135 );
136
137 if(($handle=@fopen($file, "r"))!== false)
138 {
139 /**
140 * taking head
141 */
142 $head_arr=array();
143 while(($row=($this->fgetcsv_esc_check) ? fgetcsv($handle, 0, $this->delimiter, '"', '"') : fgetcsv($handle, 0, $this->delimiter, '"') )!==false)
144 {
145 if(count(array_filter($row))!=0) /* first non empty array */
146 {
147 $head_arr=$row;
148 if($offset==0) /* on first batch */
149 {
150 $offset_after_head=ftell($handle);
151 fseek($handle, $offset_after_head); /* skipping head row */
152 }
153 break;
154 }
155 }
156
157 $empty_head_columns=array();
158 foreach($head_arr as $head_key=>$head_val)
159 {
160 if(trim($head_val)=='')
161 {
162 $empty_head_columns[]=$head_key;
163 unset($head_arr[$head_key]);
164 }else
165 {
166 /* removing BOM like non characters */
167 $wt_remove_bom = apply_filters('wt_import_csv_parser_keep_bom', true);
168 if ($wt_remove_bom) {
169 $head_arr[$head_key]=preg_replace('/[\x00-\x1F\x80-\xFF]/', '', $head_val);
170 } else {
171 $head_arr[$head_key]= wt_removeBomUtf8_basic($head_val);
172 }
173 }
174 }
175
176 /* moving the pointer to corresponding batch. If not first batch */
177 if($offset!=0)
178 {
179 fseek($handle, $offset);
180 }
181
182 $out_arr=array();
183
184 $row_count=0;
185 /* taking data */
186 while(($row=($this->fgetcsv_esc_check) ? fgetcsv($handle, 0, $this->delimiter, '"', '"') : fgetcsv($handle, 0, $this->delimiter, '"') )!==false)
187 {
188 $offset=ftell($handle); /* next offset */
189
190 /*
191 * Skipping empty rows
192 */
193 if(count(array_filter($row))==0)
194 {
195 continue;
196 }
197
198 /*
199 * Remove values of empty head
200 */
201 foreach($empty_head_columns as $key)
202 {
203 unset($row[$key]);
204 }
205
206 /*
207 * Creating associative array with heading and data
208 */
209 $row_column_count=count($row);
210 $head_column_count=count($head_arr);
211 if($row_column_count<$head_column_count)
212 {
213 $empty_row=array_fill($row_column_count, ($head_column_count-$row_column_count), '');
214 $row=array_merge($row, $empty_row);
215 $empty_row=null;
216 unset($empty_row);
217 }
218 elseif($row_column_count>$head_column_count)
219 {
220 $row = array_slice($row, 0, $head_column_count); //IER-209
221 //continue;
222 }
223
224 /* clearing temp variables */
225 $row_column_count=$head_column_count=null;
226 unset($row_column_count, $head_column_count);
227 $head_arr = array_map('trim', $head_arr); //WUWCIEP-132
228 /* preparing associative array */
229 $data_row=array_combine($head_arr, $row);
230 $out_arr[]=$module_obj->process_column_val($data_row, $form_data);
231 //$out_arr[]=$data_row;
232
233 unset($data_row);
234
235 $row_count++;
236 if($row_count==$batch_count)
237 {
238 break;
239 }
240 }
241 fclose($handle);
242
243 $out=array(
244 'response'=>true,
245 'offset'=>$offset,
246 'rows_processed'=>$row_count,
247 'data_arr'=>$out_arr,
248 );
249
250 $head_arr=$form_data=$row=$out_arr=null;
251 unset($head_arr, $form_data, $row, $out_arr);
252 }
253
254 return $out;
255 }
256
257 protected function format_data_from_csv($data, $enc)
258 {
259 //return sanitize_text_field(( $enc == 'UTF-8' ) ? trim($data) : utf8_encode(trim($data))); sanitize_text_field stripping html content
260 return (( $enc == 'UTF-8' ) ? trim($data) : utf8_encode(trim($data)));
261 }
262 }
263 }
...\ No newline at end of file ...\ No newline at end of file
1 <?php
2 /**
3 * CSV writing section of the plugin
4 *
5 * @link
6 *
7 * @package Wt_Import_Export_For_Woo
8 */
9 if (!defined('ABSPATH')) {
10 exit;
11 }
12 if(!class_exists('Wt_Import_Export_For_Woo_Basic_Csvwriter')){
13 class Wt_Import_Export_For_Woo_Basic_Csvwriter
14 {
15 public $file_path='';
16 public $data_ar='';
17 public $csv_delimiter='';
18 public $use_bom=true;
19 public function __construct($file_path, $offset, $csv_delimiter=",", $use_bom=true)
20 {
21 $this->csv_delimiter=$csv_delimiter;
22 $this->file_path=$file_path;
23 $this->use_bom = $use_bom;
24 $this->get_file_pointer($offset);
25 }
26
27 /**
28 * This is used in XML to CSV converting
29 */
30 public function write_row($row_data, $offset=0, $is_last_offset=false)
31 {
32 if($is_last_offset)
33 {
34 $this->close_file_pointer();
35 }else
36 {
37 if($offset==0) /* set heading */
38 {
39 $this->fput_csv($this->file_pointer, array_keys($row_data), $this->csv_delimiter);
40 }
41 $this->fput_csv($this->file_pointer, $row_data, $this->csv_delimiter);
42 }
43 }
44
45 /**
46 * Create CSV
47 *
48 */
49 public function write_to_file($export_data, $offset, $is_last_offset, $to_export)
50 {
51 $this->export_data=$export_data;
52 $this->set_head($export_data, $offset, $this->csv_delimiter);
53 $this->set_content($export_data, $this->csv_delimiter);
54 $this->close_file_pointer();
55 }
56 private function get_file_pointer($offset)
57 {
58 if($offset==0)
59 {
60 $this->file_pointer=fopen($this->file_path, 'w');
61 $this->use_bom = apply_filters('wt_ier_include_bom_in_csv', $this->use_bom);
62 if($this->use_bom){
63 $BOM = "\xEF\xBB\xBF"; // UTF-8 BOM
64 fwrite($this->file_pointer, $BOM); // NEW LINE
65 }
66 }else
67 {
68 $this->file_pointer=fopen($this->file_path, 'a+');
69 }
70 }
71 private function close_file_pointer()
72 {
73 if($this->file_pointer!=null)
74 {
75 fclose($this->file_pointer);
76 }
77 }
78 /**
79 * Escape a string to be used in a CSV context
80 *
81 * Malicious input can inject formulas into CSV files, opening up the possibility
82 * for phishing attacks and disclosure of sensitive information.
83 *
84 * Additionally, Excel exposes the ability to launch arbitrary commands through
85 * the DDE protocol.
86 *
87 * @see http://www.contextis.com/resources/blog/comma-separated-vulnerabilities/
88 * @see https://hackerone.com/reports/72785
89 *
90 * @param string $data CSV field to escape.
91 * @return string
92 */
93 public function escape_data( $data )
94 {
95 $active_content_triggers = array( '=', '+', '-', '@' );
96
97 if ( in_array( mb_substr( $data, 0, 1 ), $active_content_triggers, true ) ) {
98 $data = "'" . $data;
99 }
100
101 return $data;
102 }
103 public function format_data( $data )
104 {
105 if ( ! is_scalar( $data ) ) {
106 if ( is_a( $data, 'WC_Datetime' ) ) {
107 $data = $data->date( 'Y-m-d G:i:s' );
108 } else {
109 $data = ''; // Not supported.
110 }
111 } elseif ( is_bool( $data ) ) {
112 $data = $data ? 1 : 0;
113 }
114
115 $use_mb = function_exists( 'mb_detect_encoding' );
116
117 if ( $use_mb ) {
118 $encoding = mb_detect_encoding( $data, 'UTF-8, ISO-8859-1', true );
119 $data = 'UTF-8' === $encoding ? $data : utf8_encode( $data );
120 }
121
122 return $this->escape_data( $data );
123 }
124 private function set_content($export_data, $delm=',')
125 {
126 if(isset($export_data) && isset($export_data['body_data']) && count($export_data['body_data'])>0)
127 {
128 $row_datas=array_values($export_data['body_data']);
129 foreach($row_datas as $row_data)
130 {
131 foreach($row_data as $key => $value)
132 {
133 $row_data[$key]=$this->format_data($value);
134 }
135 $this->fput_csv($this->file_pointer, $row_data, $delm);
136 }
137 }
138 }
139 private function set_head($export_data, $offset, $delm=',')
140 {
141 if($offset==0 && isset($export_data) && isset($export_data['head_data']) && count($export_data['head_data'])>0)
142 {
143 foreach($export_data['head_data'] as $key => $value)
144 {
145 $export_data['head_data'][$key]=$this->format_data($value);
146 }
147 $this->fput_csv($this->file_pointer, $export_data['head_data'], $delm);
148 }
149 }
150 private function fput_csv($fp, $row, $delm=',', $encloser='"' )
151 {
152 fputcsv($fp,$row,$delm,$encloser);
153 }
154 private function array_to_csv($arr, $delm=',', $encloser='"')
155 {
156 $fp=fopen('php://memory','rw');
157 foreach($arr as $row)
158 {
159 $this->fput_csv($fp, $row, $delm, $encloser);
160 }
161 rewind($fp);
162 $csv=stream_get_contents($fp);
163 fclose($fp);
164 return $csv;
165 }
166 }
167 }
...\ No newline at end of file ...\ No newline at end of file
1 <?php
2 /**
3 * Log writing section of the plugin
4 *
5 * @link
6 *
7 * @package Wt_Import_Export_For_Woo
8 */
9 if (!defined('ABSPATH')) {
10 exit;
11 }
12 if(!class_exists('Wt_Import_Export_For_Woo_Basic_Log')){
13 class Wt_Import_Export_For_Woo_Basic_Log
14 {
15 public static $log_dir=WP_CONTENT_DIR.'/webtoffee_iew_log';
16 public static $history_id='';
17 public function __construct()
18 {
19
20 }
21
22 /**
23 * Get given temp file path.
24 * If file name is empty then file path will return
25 */
26 public static function get_file_path($file_name="")
27 {
28 if(!is_dir(self::$log_dir))
29 {
30 if(!mkdir(self::$log_dir, 0700))
31 {
32 return false;
33 }else
34 {
35 $files_to_create=array('.htaccess' => 'deny from all', 'index.php'=>'<?php // Silence is golden');
36 foreach($files_to_create as $file=>$file_content)
37 {
38 if(!file_exists(self::$log_dir.'/'.$file))
39 {
40 $fh=@fopen(self::$log_dir.'/'.$file, "w");
41 if(is_resource($fh))
42 {
43 fwrite($fh, $file_content);
44 fclose($fh);
45 }
46 }
47 }
48 }
49 }
50 return self::$log_dir.'/'.$file_name;
51 }
52
53 /**
54 * Checks a log file created for the history entry for current day
55 * @param int $history_id id of history entry
56 * @return string/bool if file found returns file name otherwise false
57 */
58 public static function check_log_exists_for_entry($history_id)
59 {
60 $log_dir=self::get_file_path();
61 $exp='~^'.$history_id.'.*\.log$~';
62 $files = preg_grep($exp, scandir($log_dir));
63
64 if(count($files)>0) /* file exists */
65 {
66 foreach($files as $key => $value)
67 {
68 $file_name=pathinfo($value, PATHINFO_FILENAME);
69 $file_name_arr=explode('_', $file_name);
70 $file_date_time=end($file_name_arr);
71 $file_date_time_arr=explode(' ', $file_date_time);
72 $file_time=strtotime($file_date_time_arr[0]);
73 if($file_time) //file time exists
74 {
75 $today=strtotime(date('Y-m-d'));
76 $file_time=strtotime(date('Y-m-d', $file_time));
77 if($today==$file_time) //file exists with the current day
78 {
79 return $value;
80 }
81 }
82 }
83 }
84 return false;
85 }
86
87 /**
88 * Generate log file name
89 *
90 */
91 public static function generate_file_name($post_type='', $action_type='', $history_id='')
92 {
93 $arr=array($history_id, $post_type);
94 if(defined( 'WT_IEW_CRON' )) /* this is a cron run so add a schedule prefix */
95 {
96 $arr[]='schedule';
97 }
98 $arr[]=$action_type;
99 $arr[]=date('Y-m-d h i s A'); /* if changing this format please consider `check_log_exists_for_entry` method */
100
101 $arr=array_filter($arr);
102 return implode("_", $arr).'.log';
103 }
104 }
105 }
...\ No newline at end of file ...\ No newline at end of file
1 <?php
2 /**
3 * Log reading section of the plugin
4 *
5 * @link
6 *
7 * @package Wt_Import_Export_For_Woo
8 */
9 if (!defined('ABSPATH')) {
10 exit;
11 }
12 if(!class_exists('Wt_Import_Export_For_Woo_Basic_Logreader')){
13 class Wt_Import_Export_For_Woo_Basic_Logreader
14 {
15 private $file_path='';
16 private $file_pointer=null;
17 private $mode='';
18 public function __construct()
19 {
20
21 }
22 public function init($file_path)
23 {
24 $mode = 'r';
25 $this->file_path=$file_path;
26 $this->mode=$mode;
27 $this->file_pointer=@fopen($file_path, $mode);
28 }
29 public function close_file_pointer()
30 {
31 if($this->file_pointer!=null)
32 {
33 fclose($this->file_pointer);
34 }
35 }
36
37 public function get_full_data($file_path)
38 {
39 $out=array(
40 'response'=>false,
41 'data_str'=>'',
42 );
43 $this->init($file_path);
44 if(!is_resource($this->file_pointer))
45 {
46 return $out;
47 }
48 $data=fread($this->file_pointer, filesize($file_path));
49
50 $this->close_file_pointer();
51
52 $out=array(
53 'response'=>false,
54 'data_str'=>$data,
55 );
56 return $out;
57 }
58
59 /**
60 * Read log file as batch
61 * @param string path of file to read
62 * @param int offset in bytes. default 0
63 * @param int total row in a batch. default 50
64 * @return array response, next offset, data array, finished or not flag
65 */
66 public function get_data_as_batch($file_path, $offset=0, $batch_count=50)
67 {
68 $out=array(
69 'response'=>false,
70 'offset'=>$offset,
71 'data_arr'=>array(),
72 'finished'=>false, //end of file reached or not
73 );
74 $this->init($file_path);
75 if(!is_resource($this->file_pointer))
76 {
77 return $out;
78 }
79
80 fseek($this->file_pointer, $offset);
81 $row_count=0;
82 $next_offset=$offset;
83 $finished=false;
84 $data_arr=array();
85 while(($data=fgets($this->file_pointer))!==false)
86 {
87 $data=maybe_unserialize($data);
88 if(is_array($data))
89 {
90 $data_arr[]=$data;
91 $row_count++;
92 $next_offset=ftell($this->file_pointer);
93 }
94 if($row_count==$batch_count)
95 {
96 break;
97 }
98 }
99 if($next_offset==filesize($file_path))
100 {
101 $finished=true;
102 }
103 $this->close_file_pointer();
104
105 $out=array(
106 'response'=>true,
107 'offset'=>$next_offset,
108 'data_arr'=>$data_arr,
109 'finished'=>$finished,
110 );
111 return $out;
112 }
113 }
114 }
...\ No newline at end of file ...\ No newline at end of file
1 <?php
2 /**
3 * Log writing section of the plugin
4 *
5 * @link
6 *
7 * @package Wt_Import_Export_For_Woo
8 */
9 if (!defined('ABSPATH')) {
10 exit;
11 }
12 if(!class_exists('Wt_Import_Export_For_Woo_Basic_Logwriter')){
13 class Wt_Import_Export_For_Woo_Basic_Logwriter extends Wt_Import_Export_For_Woo_Basic_Log
14 {
15 private static $file_path='';
16 private static $file_pointer=null;
17 private static $mode='';
18 public function __construct()
19 {
20
21 }
22 public static function init($file_path, $mode="a+")
23 {
24 self::$file_path=$file_path;
25 self::$mode=$mode;
26 self::$file_pointer=@fopen($file_path, $mode);
27 }
28 public static function write_row($text, $is_writing_finished=false)
29 {
30 if(is_null(self::$file_pointer))
31 {
32 return;
33 }
34 @fwrite(self::$file_pointer, $text.PHP_EOL);
35 if($is_writing_finished)
36 {
37 self::close_file_pointer();
38 }
39 }
40 public static function close_file_pointer()
41 {
42 if(self::$file_pointer!=null)
43 {
44 fclose(self::$file_pointer);
45 }
46 }
47
48 /**
49 * Debug log writing function
50 * @param string $post_type post type
51 * @param string $action_type action type
52 * @param mixed $data array/string of data to write
53 */
54 public static function write_log( $post_type, $action_type, $data ) {
55
56 //if ( Wt_Import_Export_For_Woo_Basic_Common_Helper::get_advanced_settings( 'enable_import_log' ) == 1 ) {
57 /**
58 * Checks log file created for the current day
59 */
60 $old_file_name = self::check_log_exists_for_entry( self::$history_id );
61 if ( !$old_file_name ) {
62 $file_name = self::generate_file_name( $post_type, $action_type, self::$history_id );
63 } else {
64 $file_name = $old_file_name;
65 }
66 $file_path = self::get_file_path( $file_name );
67 self::init( $file_path );
68 $date_string = date_i18n( 'm-d-Y @ H:i:s' );
69 if ( is_array( $data ) ) {
70 foreach ( $data as $value ) {
71 self::write_row( $date_string . " - " . maybe_serialize( $value ) );
72 }
73 } else {
74 self::write_row( $date_string . " - " . $data );
75 }
76 //}
77 }
78
79 /**
80 * Import response log
81 * @param array $data array/string of import response data
82 * @param string $file_path import log file
83 */
84 public static function write_import_log($data_arr, $file_path)
85 {
86 self::init($file_path);
87 foreach($data_arr as $key => $data)
88 {
89 self::write_row(maybe_serialize($data));
90 }
91 self::close_file_pointer();
92 }
93 }
94 }
...\ No newline at end of file ...\ No newline at end of file
1 <?php // Silence is golden
...\ No newline at end of file ...\ No newline at end of file
1 !function(t){t.fn.tipTip=function(e){var o={activation:"hover",keepAlive:!1,maxWidth:"200px",edgeOffset:3,defaultPosition:"bottom",delay:400,fadeIn:200,fadeOut:200,attribute:"title",content:!1,enter:function(){},exit:function(){}},i=t.extend(o,e);if(t("#tiptip_holder").length<=0){var n=t('<div id="tiptip_holder" style="max-width:'+i.maxWidth+';"></div>'),r=t('<div id="tiptip_content"></div>'),a=t('<div id="tiptip_arrow"></div>');t("body").append(n.html(r).prepend(a.html('<div id="tiptip_arrow_inner"></div>')))}else var n=t("#tiptip_holder"),r=t("#tiptip_content"),a=t("#tiptip_arrow");return this.each(function(){function e(){i.enter.call(this),r.html(d),n.hide().removeAttr("class").css("margin","0"),a.removeAttr("style");var e=parseInt(f.offset().top),o=parseInt(f.offset().left),p=parseInt(f.outerWidth()),l=parseInt(f.outerHeight()),h=n.outerWidth(),c=n.outerHeight(),s=Math.round((p-h)/2),_=Math.round((l-c)/2),v=Math.round(o+s),m=Math.round(e+l+i.edgeOffset),g="",b="",M=Math.round(h-12)/2;"bottom"==i.defaultPosition?g="_bottom":"top"==i.defaultPosition?g="_top":"left"==i.defaultPosition?g="_left":"right"==i.defaultPosition&&(g="_right");var w=s+o<parseInt(t(window).scrollLeft()),O=h+o>parseInt(t(window).width());w&&s<0||"_right"==g&&!O||"_left"==g&&o<h+i.edgeOffset+5?(g="_right",b=Math.round(c-13)/2,M=-12,v=Math.round(o+p+i.edgeOffset),m=Math.round(e+_)):(O&&s<0||"_left"==g&&!w)&&(g="_left",b=Math.round(c-13)/2,M=Math.round(h),v=Math.round(o-(h+i.edgeOffset+5)),m=Math.round(e+_));var x=e+l+i.edgeOffset+c+8>parseInt(t(window).height()+t(window).scrollTop()),I=e+l-(i.edgeOffset+c+8)<0;x||"_bottom"==g&&x||"_top"==g&&!I?("_top"==g||"_bottom"==g?g="_top":g+="_top",b=c,m=Math.round(e-(c+5+i.edgeOffset))):(I|("_top"==g&&I)||"_bottom"==g&&!x)&&("_top"==g||"_bottom"==g?g="_bottom":g+="_bottom",b=-12,m=Math.round(e+l+i.edgeOffset)),"_right_top"==g||"_left_top"==g?m+=5:"_right_bottom"!=g&&"_left_bottom"!=g||(m-=5),"_left_top"!=g&&"_left_bottom"!=g||(v+=5),a.css({"margin-left":M+"px","margin-top":b+"px"}),n.css({"margin-left":v+"px","margin-top":m+"px"}).attr("class","tip"+g),u&&clearTimeout(u),u=setTimeout(function(){n.stop(!0,!0).fadeIn(i.fadeIn)},i.delay)}function o(){i.exit.call(this),u&&clearTimeout(u),n.fadeOut(i.fadeOut)}var f=t(this);if(i.content)d=i.content;else var d=f.attr(i.attribute);if(""!=d){i.content||f.removeAttr(i.attribute);var u=!1;"hover"==i.activation?(f.hover(function(){e()},function(){i.keepAlive||o()}),i.keepAlive&&n.hover(function(){},function(){o()})):"focus"==i.activation?f.focus(function(){e()}).blur(function(){o()}):"click"==i.activation&&(f.click(function(){return e(),!1}).hover(function(){},function(){i.keepAlive||o()}),i.keepAlive&&n.hover(function(){},function(){o()}))}})}}(jQuery);
...\ No newline at end of file ...\ No newline at end of file
1 <?php
2 if (!defined('ABSPATH')) {
3 exit;
4 }
5 ?>
6 <div class="wt_iew_export_main">
7 <p><?php echo $step_info['description']; ?></p>
8 <form class="wt_iew_export_advanced_form">
9 <table class="form-table wt-iew-form-table wt-iew-export-filter-table">
10 <?php
11 Wt_Import_Export_For_Woo_Basic_Common_Helper::field_generator($advanced_screen_fields, $advanced_form_data);
12 ?>
13 </table>
14 </form>
15 </div>
16 <?php
17
18 $file_int_field_tr_arr=array();
19 $file_int_field_tr_arr=apply_filters('wt_iew_exporter_file_into_fields_row_id_basic', $file_int_field_tr_arr);
20 ?>
21 <script type="text/javascript">
22 var file_int_field_tr_arr=<?php echo json_encode($file_int_field_tr_arr); ?>;
23 /* remote file modules can hook */
24 function wt_iew_set_file_into_fields(file_into)
25 {
26 /* first hide all */
27 if(file_int_field_tr_arr.length>0)
28 {
29 jQuery(file_int_field_tr_arr.join(', ')).hide();
30 }
31 // wt_iew_toggle_schedule_btn(0); //hide scheduler btn if exists
32 <?php
33 do_action('wt_iew_exporter_file_into_js_fn');
34 ?>
35 }
36 <?php /*
37 function wt_iew_toggle_schedule_btn(state) /* show/hide cron button
38 {
39 <?php
40 do_action('wt_iew_toggle_schedule_btn');
41 ?>
42 } */ ?>
43
44 /* custom action: other than export, save, update. Eg: schedule */
45 function wt_iew_custom_action_basic(ajx_dta, action, id)
46 {
47 ajx_dta['item_type']=ajx_dta['to_export'];
48 <?php
49 do_action('wt_iew_custom_action_basic');
50 ?>
51 }
52 </script>
...\ No newline at end of file ...\ No newline at end of file
1 <?php
2 if (!defined('ABSPATH')) {
3 exit;
4 }
5 ?>
6 <div class="wt_iew_export_main">
7 <p><?php echo $step_info['description']; ?></p>
8 <form class="wt_iew_export_filter_form">
9 <table class="form-table wt-iew-form-table wt-iew-export-filter-table">
10 <?php
11 Wt_Import_Export_For_Woo_Basic_Common_Helper::field_generator($filter_screen_fields, $filter_form_data);
12 ?>
13 </table>
14 </form>
15 </div>
...\ No newline at end of file ...\ No newline at end of file
1 <?php
2 if (!defined('ABSPATH')) {
3 exit;
4 }
5 ?>
6 <div class="wt-iew-plugin-toolbar bottom">
7 <div style="float:left; padding-top:10px;" class="wt_iew_export_template_name"> </div>
8 <div style="float:right;">
9 <div style="float:right;">
10 <?php
11 $button_types = array_column(array_values($this->step_btns), 'type');
12 $last_button_key = array_search('button', array_reverse($button_types, true));
13 $count = 0;
14 $button_standard_class = 'media-button';
15 foreach($this->step_btns as $btnk=>$btnv)
16 {
17 $css_class=(isset($btnv['class']) ? $btnv['class'] : '');
18 $action_type=(isset($btnv['action_type']) ? $btnv['action_type'] : 'non-step');
19 if($count == $last_button_key){
20 $button_standard_class = 'button-primary';
21 }
22 if($btnv['type']=='button')
23 {
24 ?>
25 <button class="button <?php echo $button_standard_class; ?> wt_iew_export_action_btn <?php echo $css_class; ?>" data-action-type="<?php echo $action_type; ?>" data-action="<?php echo $btnv['key'];?>" type="submit">
26 <?php echo $btnv['text'];?>
27 </button>
28 <?php
29
30 }
31 elseif($btnv['type']=='dropdown_button')
32 {
33 $btn_arr=(isset($btnv['items']) && is_array($btnv['items']) ? $btnv['items'] : array());
34 ?>
35 <button type="button" class="button button-primary wt_iew_drp_menu <?php echo $css_class; ?>" data-target="wt_iew_<?php echo $btnk; ?>_drp">
36 <?php echo $btnv['text'];?> <span class="dashicons dashicons-arrow-down" style="line-height: 28px;"></span>
37 </button>
38 <ul class="wt_iew_dropdown <?php echo $css_class; ?>" data-id="wt_iew_<?php echo $btnk; ?>_drp">
39 <?php
40 foreach($btn_arr as $btnkk => $btnvv)
41 {
42 $field_attr=(isset($btnvv['field_attr']) ? $btnvv['field_attr'] : '');
43 $action_type=(isset($btnvv['action_type']) ? $btnvv['action_type'] : 'non-step');
44 ?>
45 <li class="wt_iew_export_action_btn" data-action-type="<?php echo $action_type; ?>" data-action="<?php echo $btnvv['key'];?>" <?php echo $field_attr;?> ><?php echo $btnvv['text'];?></li>
46 <?php
47 }
48 ?>
49 </ul>
50 <?php
51 }
52 elseif($btnv['type']=='hidden_button')
53 {
54 ?>
55 <button style="display:none;" class="button button-primary wt_iew_export_action_btn <?php echo $css_class; ?>" data-action-type="<?php echo $action_type; ?>" data-action="<?php echo $btnv['key'];?>" type="submit">
56 <?php echo $btnv['text'];?>
57 </button>
58 <?php
59
60 }
61 elseif($btnv['type']=='text')
62 {
63 ?>
64 <span style="line-height:40px; font-weight:bold;" class="<?php echo $css_class; ?>"><?php echo $btnv['text'];?></span>
65 <?php
66 }
67 $count++;
68 }
69 ?>
70 </div>
71 </div>
72 <span class="spinner" style="margin-top:11px;"></span>
73 </div>
...\ No newline at end of file ...\ No newline at end of file
1 <?php
2 if (!defined('ABSPATH')) {
3 exit;
4 }
5 ?>
6 <div class="wt-iew-settings-header">
7 <h3>
8 <?php _e('Export'); ?><?php if($this->step!='post_type'){ ?> <span class="wt_iew_step_head_post_type_name"></span><?php } ?>: <?php echo $this->step_title; ?>
9 </h3>
10 <span class="wt_iew_step_info" title="<?php echo $this->step_summary; ?>">
11 <?php
12 echo $this->step_summary;
13 ?>
14 </span>
15 </div>
...\ No newline at end of file ...\ No newline at end of file
1 <?php
2 if (!defined('ABSPATH')) {
3 exit;
4 }
5 ?>
6 <div class="wt_iew_export_main">
7 <p><?php echo $step_info['description']; ?></p>
8 <div class="meta_mapping_box">
9 <div class="meta_mapping_box_hd_nil wt_iew_noselect">
10 <?php _e('Default fields');?>
11 <span class="meta_mapping_box_selected_count_box"><span class="meta_mapping_box_selected_count_box_num">0</span> <?php _e(' columns(s) selected'); ?></span>
12 </div>
13 <div style="clear:both;"></div>
14 <div class="meta_mapping_box_con" data-sortable="0" data-loaded="1" data-field-validated="0" data-key="" style="display:inline-block;">
15 <table class="wt-iew-mapping-tb wt-iew-exporter-default-mapping-tb">
16 <thead>
17 <tr>
18 <th>
19 <input type="checkbox" name="" class="wt_iew_mapping_checkbox_main">
20 </th>
21 <th width="35%"><?php _e('Column');?></th>
22 <th><?php _e('Column name');?></th>
23 </tr>
24 </thead>
25 <tbody>
26 <?php
27 $draggable_tooltip=__("Drag to rearrange the columns");
28 $tr_count=0;
29 foreach($form_data_mapping_fields as $key=>$val)
30 {
31 if(isset($mapping_fields[$key]))
32 {
33 $label=$mapping_fields[$key];
34 include "_export_mapping_tr_html.php";
35 unset($mapping_fields[$key]); //remove the field from default list
36 $tr_count++;
37 }
38 }
39 if(count($mapping_fields)>0)
40 {
41 foreach($mapping_fields as $key=>$label)
42 {
43 $val=array($key, 1); //enable the field
44 include "_export_mapping_tr_html.php";
45 $tr_count++;
46 }
47 }
48 if($tr_count==0)
49 {
50 ?>
51 <tr>
52 <td colspan="3" style="text-align:center;">
53 <?php _e('No fields found.'); ?>
54 </td>
55 </tr>
56 <?php
57 }
58 ?>
59 </tbody>
60 </table>
61 </div>
62 </div>
63 <div style="clear:both;"></div>
64 <?php
65 if($this->mapping_enabled_fields)
66 {
67 foreach($this->mapping_enabled_fields as $mapping_enabled_field_key=>$mapping_enabled_field)
68 {
69 $mapping_enabled_field=(!is_array($mapping_enabled_field) ? array($mapping_enabled_field, 0) : $mapping_enabled_field);
70
71 if(count($form_data_mapping_enabled_fields)>0)
72 {
73 if(in_array($mapping_enabled_field_key, $form_data_mapping_enabled_fields))
74 {
75 $mapping_enabled_field[1]=1;
76 }else
77 {
78 $mapping_enabled_field[1]=0;
79 }
80 }
81 ?>
82 <div class="meta_mapping_box">
83 <div class="meta_mapping_box_hd wt_iew_noselect">
84 <span class="dashicons dashicons-arrow-right"></span>
85 <?php echo $mapping_enabled_field[0];?>
86 <span class="meta_mapping_box_selected_count_box"><span class="meta_mapping_box_selected_count_box_num">0</span> <?php _e(' columns(s) selected'); ?></span>
87 </div>
88 <div style="clear:both;"></div>
89 <div class="meta_mapping_box_con" data-sortable="0" data-loaded="0" data-field-validated="0" data-key="<?php echo $mapping_enabled_field_key;?>"></div>
90 </div>
91 <div style="clear:both;"></div>
92 <?php
93 }
94 }
95 ?>
96 </div>
...\ No newline at end of file ...\ No newline at end of file
1 <?php
2 if (!defined('ABSPATH')) {
3 exit;
4 }
5 $checked=is_array($val) ? $val[1] : 0;
6 $val=(is_array($val) ? $val[0] : $val);
7 ?>
8 <tr id="columns_<?php echo $key;?>">
9 <td>
10 <div class="wt_iew_sort_handle"><span class="dashicons dashicons-move"></span></div>
11 <input type="checkbox" name="columns_key[]" class="columns_key wt_iew_mapping_checkbox_sub" value="<?php echo $key;?>" <?php echo ($checked==1 ? 'checked' : ''); ?>></td>
12 <td>
13 <label class="wt_iew_mapping_column_label"><?php echo $label;?></label>
14 </td>
15 <td>
16 <input type="text" name="columns_val[]" class="columns_val" value="<?php echo $val;?>">
17 </td>
18 </tr>
...\ No newline at end of file ...\ No newline at end of file
1 <?php
2 if (!defined('ABSPATH')) {
3 exit;
4 }
5 ?>
6 <table class="wt-iew-mapping-tb wt-iew-exporter-meta-mapping-tb" data-field-type="<?php echo $meta_mapping_screen_field_key; ?>">
7 <thead>
8 <tr>
9 <th>
10 <?php
11 $is_checked=(isset($meta_mapping_screen_field_val['checked']) && $meta_mapping_screen_field_val['checked']==1 ? 1 : 0);
12 $checked_attr=($is_checked==1 ? ' checked="checked"' : '');
13 ?>
14 <input type="checkbox" name="" class="wt_iew_mapping_checkbox_main" <?php echo $checked_attr; ?>>
15 </th>
16 <th width="35%"><?php _e('Column');?></th>
17 <th><?php _e('Column name');?></th>
18 </tr>
19 </thead>
20 <tbody>
21 <?php
22 $tr_count=0;
23
24 if(isset($meta_mapping_screen_field_val['fields']) && is_array($meta_mapping_screen_field_val['fields']) && count($meta_mapping_screen_field_val['fields'])>0)
25 {
26 foreach($meta_mapping_screen_field_val['fields'] as $key=>$val)
27 {
28 $val=is_array($val) ? $val : array($val, 0);
29 $label=$val[0];
30
31 if(isset($current_meta_step_form_data[$key])) /* forma data/template data available */
32 {
33 $val=(is_array($current_meta_step_form_data[$key]) ? $current_meta_step_form_data[$key] : array($current_meta_step_form_data[$key], 1));
34 }else
35 {
36 $val[1]=$is_checked; //parent is checked
37 }
38
39 include "_export_mapping_tr_html.php";
40 $tr_count++;
41 }
42 }
43
44 if($tr_count==0)
45 {
46 ?>
47 <tr>
48 <td colspan="3" style="text-align:center;">
49 <?php _e('No fields found.'); ?>
50 </td>
51 </tr>
52 <?php
53 }
54 ?>
55 </tbody>
56 </table>
...\ No newline at end of file ...\ No newline at end of file
1 <?php
2 if (!defined('ABSPATH')) {
3 exit;
4 }
5 ?>
6 <div class="wt_iew_export_main">
7 <p><?php //echo $step_info['description']; ?></p>
8
9 <div class="wt_iew_warn wt_iew_method_export_wrn" style="display:none;">
10 <?php _e('Please select an export method');?>
11 </div>
12
13 <div class="wt_iew_warn wt_iew_export_template_wrn" style="display:none;">
14 <?php _e('Please select an export template.');?>
15 </div>
16
17 <table class="form-table wt-iew-form-table">
18 <tr>
19 <th><label><?php _e('Select an export method');?></label></th>
20 <td colspan="2" style="width:75%;">
21 <div class="wt_iew_radio_block">
22 <?php
23 if(empty($this->mapping_templates)){
24 unset($this->export_obj->export_methods['template']);
25 }
26 foreach($this->export_obj->export_methods as $key => $value)
27 {
28 ?>
29 <p>
30 <input type="radio" value="<?php echo $key;?>" id="wt_iew_export_<?php echo $key;?>_export" name="wt_iew_export_method_export" <?php echo ($this->export_method==$key ? 'checked="checked"' : '');?>><b><label for="wt_iew_export_<?php echo $key;?>_export"><?php echo $value['title']; ?></label></b> <br />
31 <span><label for="wt_iew_export_<?php echo $key;?>_export"><?php echo $value['description']; ?></label></span>
32 </p>
33 <?php
34 }
35 ?>
36 </div>
37
38 </td>
39 </tr>
40 <?php if(!empty($this->mapping_enabled_fields)):?>
41 <tr class="wt-iew-export-method-options wt-iew-export-method-options-quick">
42 <th style="width:150px; text-align:left; vertical-align:top;"><label><?php _e('Include fields from the respective groups');?></label></th>
43 <td colspan="2" style="width:75%;">
44 <?php
45 foreach($this->mapping_enabled_fields as $mapping_enabled_field_key=>$mapping_enabled_field)
46 {
47 $mapping_enabled_field=(!is_array($mapping_enabled_field) ? array($mapping_enabled_field, 0) : $mapping_enabled_field);
48
49 if($this->rerun_id>0) /* check this is a rerun request */
50 {
51 if(in_array($mapping_enabled_field_key, $form_data_mapping_enabled))
52 {
53 $mapping_enabled_field[1]=1; //mark it as checked
54 }else
55 {
56 $mapping_enabled_field[1]=0; //mark it as unchecked
57 }
58 }
59 ?>
60 <div class="wt_iew_checkbox" style="padding-left:0px;">
61 <input type="checkbox" id="wt_iew_<?php echo $mapping_enabled_field_key;?>" name="wt_iew_include_these_fields[]" value="<?php echo $mapping_enabled_field_key;?>" <?php echo ($mapping_enabled_field[1]==1 ? 'checked="checked"' : '');?> />
62 <label for="wt_iew_<?php echo $mapping_enabled_field_key;?>"><?php echo $mapping_enabled_field[0];?></label>
63 </div>
64 <?php
65 }
66 ?>
67 <span class="wt-iew_form_help"><?php _e('Enabling any of these ensures that all the fields from the respective groups are included in your export.');?></span>
68 </td>
69 </tr>
70 <?php endif; ?>
71
72 <tr class="wt-iew-export-method-options wt-iew-export-method-options-template" style="display:none;">
73 <th><label><?php _e('Export template');?></label></th>
74 <td>
75 <select class="wt-iew-export-template-sele">
76 <option value="0">-- <?php _e('Select a template'); ?> --</option>
77 <?php
78 foreach($this->mapping_templates as $mapping_template)
79 {
80 ?>
81 <option value="<?php echo $mapping_template['id'];?>" <?php echo ($form_data_export_template==$mapping_template['id'] ? ' selected="selected"' : ''); ?>>
82 <?php echo $mapping_template['name'];?>
83 </option>
84 <?php
85 }
86 ?>
87 </select>
88 </td>
89 <td>
90 </td>
91 </tr>
92 </table>
93 </div>
...\ No newline at end of file ...\ No newline at end of file
1 <?php
2 if (!defined('ABSPATH')) {
3 exit;
4 }
5 ?>
6 <div class="wt_iew_export_main">
7 <p><?php echo $step_info['description']; ?></p>
8 <div class="wt_iew_warn wt_iew_post_type_wrn" style="display:none;">
9 <?php _e( 'Please select a post type', 'users-customers-import-export-for-wp-woocommerce' );?>
10 </div>
11 <table class="form-table wt-iew-form-table">
12 <tr>
13 <th><label><?php _e( 'Select a post type to export', 'users-customers-import-export-for-wp-woocommerce' ); ?></label></th>
14 <td>
15 <select name="wt_iew_export_post_type">
16 <option value="">-- <?php _e( 'Select post type', 'users-customers-import-export-for-wp-woocommerce' ); ?> --</option>
17 <?php
18 foreach($post_types as $key=>$value)
19 {
20 ?>
21 <option value="<?php echo $key;?>" <?php selected($key, $key) ?> <?php echo ($item_type==$key ? 'selected' : '');?>><?php echo $value;?></option>
22 <?php
23 }
24 ?>
25 </select>
26 </td>
27 <td></td>
28 </tr>
29 </table>
30 <br/>
31 <?php
32 $wt_iew_post_types = array(
33 'product' => array(
34 'message' => __( 'The <b>Product Import Export for WooCommerce Add-On</b> is required to export WooCommerce Products.', 'users-customers-import-export-for-wp-woocommerce' ),
35 'link' => admin_url('plugin-install.php?tab=plugin-information&plugin=product-import-export-for-woo')
36 ),
37 'product_review' => array(
38 'message' => __( 'The <b>Product Import Export for WooCommerce Add-On</b> is required to export WooCommerce Product reviews.', 'users-customers-import-export-for-wp-woocommerce' ),
39 'link' => admin_url('plugin-install.php?tab=plugin-information&plugin=product-import-export-for-woo')
40 ),
41 'product_categories' => array(
42 'message' => __( 'The <b>Product Import Export for WooCommerce Add-On</b> is required to export WooCommerce Product categories.', 'users-customers-import-export-for-wp-woocommerce' ),
43 'link' => admin_url('plugin-install.php?tab=plugin-information&plugin=product-import-export-for-woo')
44 ),
45 'product_tags' => array(
46 'message' => __( 'The <b>Product Import Export for WooCommerce Add-On</b> is required to export WooCommerce Product tags.', 'users-customers-import-export-for-wp-woocommerce' ),
47 'link' => admin_url('plugin-install.php?tab=plugin-information&plugin=product-import-export-for-woo')
48 ),
49 'order' => array(
50 'message' => __( 'The <b>Order Export & Order Import for WooCommerce Add-On</b> is required to export WooCommerce Orders.', 'users-customers-import-export-for-wp-woocommerce' ),
51 'link' => admin_url('plugin-install.php?tab=plugin-information&plugin=order-import-export-for-woocommerce')
52 ),
53 'coupon' => array(
54 'message' => __( 'The <b>Order Export & Order Import for WooCommerce Add-On</b> is required to export WooCommerce Coupons.', 'users-customers-import-export-for-wp-woocommerce' ),
55 'link' => admin_url('plugin-install.php?tab=plugin-information&plugin=order-import-export-for-woocommerce')
56 ),
57 'subscription' => array(
58 'message' => __( 'The <b>Order, Coupon, Subscription Export Import for WooCommerce</b> premium is required to export WooCommerce Subscriptions.', 'users-customers-import-export-for-wp-woocommerce' ),
59 'link' => esc_url( 'https://www.webtoffee.com/product/order-import-export-plugin-for-woocommerce/?utm_source=free_plugin_revamp_post_type&utm_medium=basic_revamp&utm_campaign=Order_Import_Export&utm_content=' . WT_U_IEW_VERSION )
60 )
61 );
62 foreach ($wt_iew_post_types as $wt_iew_post_type => $wt_iew_post_type_detail) { ?>
63
64 <div class="wt_iew_free_addon wt_iew_free_addon_warn <?php echo 'wt_iew_type_'.$wt_iew_post_type; ?>" style="display:none">
65 <p><?php echo $wt_iew_post_type_detail['message']; ?></p>
66 <?php
67 $install_now = esc_html( 'Install now for free', 'users-customers-import-export-for-wp-woocommerce' );
68 $is_pro = false;
69 if( 'subscription' === $wt_iew_post_type ){
70 $install_now = esc_html( 'Get the plugin', 'users-customers-import-export-for-wp-woocommerce' );
71 $is_pro = true;
72 }
73 ?>
74 <a target="_blank" href="<?php echo $wt_iew_post_type_detail['link']; ?>"><?php esc_attr_e( $install_now ); ?></a>
75 </div>
76
77 <?php
78 }
79 ?>
80 </div>
...\ No newline at end of file ...\ No newline at end of file
1 <?php
2 /**
3 * Main view file of export section
4 *
5 * @link
6 *
7 * @package Wt_Import_Export_For_Woo
8 */
9 if (!defined('ABSPATH')) {
10 exit;
11 }
12 ?>
13 <?php
14 do_action('wt_iew_exporter_before_head');
15 $wf_admin_view_path=plugin_dir_path(WT_U_IEW_PLUGIN_FILENAME).'admin/views/';
16 ?>
17 <style type="text/css">
18 .wt_iew_export_step{ display:none; }
19 .wt_iew_export_step_loader{ width:100%; height:400px; text-align:center; line-height:400px; font-size:14px; }
20 .wt_iew_export_step_main{ float:left; box-sizing:border-box; padding:15px; padding-bottom:0px; width:95%; margin:30px 2.5%; background:#fff; box-shadow:0px 2px 2px #ccc; border:solid 1px #efefef; }
21 .wt_iew_export_main{ padding:20px 0px; }
22 .wt_iew_file_ext_info_td{ vertical-align:top !important; }
23 .wt_iew_file_ext_info{ display:inline-block; margin-top:3px; }
24 .wt-something-went-wrong-wrap{position: absolute; margin-top: 150px; left:25%;color:#FFF;width:450px;height:275px;background: #FFF;padding: 25px; text-align: center;border: 1px solid #B32D2E;border-radius: 10px;box-shadow: 0px 0px 2px 2px #cdc8c8;}
25 </style>
26 <?php
27 Wt_Iew_IE_Basic_Helper::debug_panel($this->module_base);
28 ?>
29 <?php include WT_U_IEW_PLUGIN_PATH."/admin/views/_save_template_popup.php"; ?>
30 <h2 class="wt_iew_page_hd"><?php _e('Export'); ?><span class="wt_iew_post_type_name"></span></h2>
31 <span class="wt-webtoffee-icon" style="float: <?php echo (!is_rtl()) ? 'right' : 'left'; ?>; padding-<?php echo (!is_rtl()) ? 'right' : 'left'; ?>:30px; margin-top: -25px;">
32 <?php _e('Developed by'); ?> <a target="_blank" href="https://www.webtoffee.com">
33 <img src="<?php echo WT_U_IEW_PLUGIN_URL.'/assets/images/webtoffee-logo_small.png';?>" style="max-width:100px;">
34 </a>
35 </span>
36
37 <?php
38 if($requested_rerun_id>0 && $this->rerun_id==0)
39 {
40 ?>
41 <div class="wt_iew_warn wt_iew_rerun_warn">
42 <?php _e('Unable to handle Re-Run request.');?>
43 </div>
44 <?php
45 }
46 ?>
47
48 <div class="wt_iew_loader_info_box"></div>
49 <div class="wt_iew_overlayed_loader"></div>
50 <div class="wt_iew_export_step_main_wrapper" style="width:68%; float: left">
51
52
53 <div class="wt-something-went-wrong" style="position:relative;display:none;">
54 <div class="wt-something-went-wrong-wrap">
55 <p class="wt_iew_popup_close" style="float:right;margin-top: -15px !important;margin-right: -15px !important;line-height: 0;"><a href="javascript:void(0)"><img src="<?php echo WT_U_IEW_PLUGIN_URL.'/assets/images/wt-close-button.png';?>"/></a></p>
56 <img src="<?php echo WT_U_IEW_PLUGIN_URL.'/assets/images/wt-error-icon.png';?>"/>
57 <h3><?php esc_html_e('Something went wrong'); ?></h3>
58 <p style="color:#000;text-align: left;"><?php esc_html_e('We are unable to complete your request.Try reducing the import batch count to 5 or less and increasing the Maximum execution time in the '); ?><a target="_blank" href="<?php echo admin_url('admin.php?page=wt_import_export_for_woo_basic') ?>"><?php esc_html_e('General settings'); ?></a>.</p>
59 <p style="color:#000;text-align: left;"><?php esc_html_e(' If not resolved, contact the');?> <a target="_blank" href="https://www.webtoffee.com/contact/"><?php esc_html_e('support team'); ?></a> <?php esc_html_e('with the');?> <a target="_blank" href="<?php echo admin_url('admin.php?page=wc-status&tab=logs') ?>"><?php esc_html_e('WooCommerce fatal error log'); ?></a>, <?php esc_html_e('if any'); ?>.</p>
60 <br/>
61 <a href="javascript:void(0)" onclick='wt_iew_basic_export.refresh_export_page();' class="button button-primary"><?php esc_html_e('Try again'); ?></a>
62 </div>
63 </div>
64
65
66 <div class="wt_iew_export_step_main" style = "width:100%; float: left">
67 <?php
68 foreach($this->steps as $stepk=>$stepv)
69 {
70 ?>
71 <div class="wt_iew_export_step wt_iew_export_step_<?php echo $stepk;?>" data-loaded="0"></div>
72 <?php
73 }
74 ?>
75 </div>
76 </div>
77 <?php
78 include $wf_admin_view_path."market.php";
...\ No newline at end of file ...\ No newline at end of file
1 var wt_iew_basic_history=(function( $ ) {
2 //'use strict';
3 var wt_iew_basic_history=
4 {
5 log_offset:0,
6 Set:function()
7 {
8 this.reg_delete();
9 this.reg_view_log();
10 this.reg_bulk_action();
11 },
12 reg_view_log:function()
13 {
14 jQuery(document).on('click', ".wt_iew_view_log_btn", function(){
15 jQuery('.wt_iew_overlay, .wt_iew_popup').hide();
16 wt_iew_basic_history.show_log_popup();
17 var history_id=$(this).attr('data-history-id');
18 if(history_id>0)
19 {
20 wt_iew_basic_history.log_offset=0;
21 wt_iew_basic_history.load_page(history_id);
22 }else
23 {
24 var log_file=$(this).attr('data-log-file');
25 if(log_file!="")
26 {
27 wt_iew_basic_history.view_raw_log(log_file);
28 }
29 }
30 });
31 },
32 view_raw_log:function(log_file)
33 {
34 $('.wt_iew_log_container').html('<div class="wt_iew_log_loader">'+wt_iew_basic_params.msgs.loading+'</div>');
35 $.ajax({
36 url:wt_iew_basic_params.ajax_url,
37 data:{'action':'iew_history_ajax_basic', _wpnonce:wt_iew_basic_params.nonces.main, 'history_action':'view_log', 'log_file':log_file, 'data_type':'json'},
38 type:'post',
39 dataType:"json",
40 success:function(data)
41 {
42 if(data.status==1)
43 {
44 $('.wt_iew_log_container').html(data.html);
45 }else
46 {
47 $('.wt_iew_log_loader').html(wt_iew_basic_params.msgs.error);
48 wt_iew_notify_msg.error(wt_iew_basic_params.msgs.error);
49 }
50 },
51 error:function()
52 {
53 $('.wt_iew_log_loader').html(wt_iew_basic_params.msgs.error);
54 wt_iew_notify_msg.error(wt_iew_basic_params.msgs.error);
55 }
56 });
57 },
58 show_log_popup:function()
59 {
60 var pop_elm=$('.wt_iew_view_log');
61 var ww=$(window).width();
62 pop_w=(ww<1300 ? ww : 1300)-200;
63 pop_w=(pop_w<200 ? 200 : pop_w);
64 pop_elm.width(pop_w);
65
66 wh=$(window).height();
67 pop_h=(wh>=400 ? (wh-200) : wh);
68 $('.wt_iew_log_container').css({'max-height':pop_h+'px','overflow':'auto'});
69 wt_iew_popup.showPopup(pop_elm);
70 },
71 load_page:function(history_id)
72 {
73 var offset=wt_iew_basic_history.log_offset;
74 if(offset==0)
75 {
76 $('.wt_iew_log_container').html('<div class="wt_iew_log_loader">'+wt_iew_basic_params.msgs.loading+'</div>');
77 }else
78 {
79 $('.wt_iew_history_loadmore_btn').hide();
80 $('.wt_iew_history_loadmore_loading').show();
81 }
82 $.ajax({
83 url:wt_iew_basic_params.ajax_url,
84 data:{'action':'iew_history_ajax_basic', _wpnonce:wt_iew_basic_params.nonces.main, 'history_action':'view_log', 'offset': offset, 'history_id':history_id, 'data_type':'json'},
85 type:'post',
86 dataType:"json",
87 success:function(data)
88 {
89 $('.wt_iew_history_loadmore_btn').show();
90 $('.wt_iew_history_loadmore_loading').hide();
91 if(data.status==1)
92 {
93 wt_iew_basic_history.log_offset=data.offset;
94 if(offset==0)
95 {
96 $('.wt_iew_log_container').html(data.html);
97 }else
98 {
99 $('.log_view_tb_tbody').append(data.html);
100 }
101 if(data.finished)
102 {
103 $('.wt_iew_history_loadmore_btn').hide();
104 }else
105 {
106 if(offset==0)
107 {
108 $('.wt_iew_history_loadmore_btn').unbind('click').click(function(){
109 wt_iew_basic_history.load_page(history_id);
110 });
111 }
112 }
113 }else
114 {
115 $('.wt_iew_log_loader').html(wt_iew_basic_params.msgs.error);
116 wt_iew_notify_msg.error(wt_iew_basic_params.msgs.error);
117 }
118 },
119 error:function()
120 {
121 $('.wt_iew_log_loader').html(wt_iew_basic_params.msgs.error);
122 $('.wt_iew_history_loadmore_btn').show();
123 $('.wt_iew_history_loadmore_loading').hide();
124 wt_iew_notify_msg.error(wt_iew_basic_params.msgs.error);
125 }
126 });
127 },
128 reg_delete:function()
129 {
130 jQuery('.wt_iew_delete_history, .wt_iew_delete_log').click(function(){
131 if(confirm(wt_iew_history_basic_params.msgs.sure))
132 {
133 window.location.href=jQuery(this).attr('data-href');
134 }
135 });
136 },
137 reg_bulk_action:function()
138 {
139 var checkbox_main=$('.wt_iew_history_checkbox_main');
140 var checkbox_sub=$('.wt_iew_history_checkbox_sub');
141 var tb=$('.history_list_tb');
142 if(tb.find('.wt_iew_history_checkbox_sub:checked').length==tb.find('.wt_iew_history_checkbox_sub').length)
143 {
144 checkbox_main.prop('checked',true);
145 }else
146 {
147 checkbox_main.prop('checked',false);
148 }
149
150 checkbox_main.unbind('click').click(function()
151 {
152 if($(this).is(':checked'))
153 {
154 checkbox_sub.prop('checked',true);
155 }else
156 {
157 checkbox_sub.prop('checked',false);
158 }
159 });
160 checkbox_sub.unbind('click').click(function()
161 {
162 if($(this).is(':checked') && $('.wt_iew_history_checkbox_sub:checked').length==checkbox_sub.length)
163 {
164 checkbox_main.prop('checked',true);
165 }else
166 {
167 checkbox_main.prop('checked',false);
168 }
169 });
170
171 $('.wt_iew_bulk_action_btn').click(function(){
172 if($('.wt_iew_history_checkbox_sub:checked').length>0 && $('.wt_iew_bulk_action option:selected').val()!="")
173 {
174 var cr_action=$('.wt_iew_bulk_action option:selected').val();
175 if(cr_action=='delete')
176 {
177 if(confirm(wt_iew_history_basic_params.msgs.sure))
178 {
179 var id_arr=new Array();
180 $('.wt_iew_history_checkbox_sub:checked').each(function(){
181 id_arr.push($(this).val());
182 });
183 var delete_url=wt_iew_history_basic_params.delete_url.replace('_history_id_', id_arr.join(','));
184 window.location.href=delete_url;
185 }
186 }
187 }
188 });
189 $('.wt_iew_bulk_action_logs_btn').click(function(){
190 if($('.wt_iew_history_checkbox_sub:checked').length>0 && $('.wt_iew_bulk_action option:selected').val()!="")
191 {
192 var cr_action=$('.wt_iew_bulk_action option:selected').val();
193 if(cr_action=='delete')
194 {
195 if(confirm(wt_iew_history_basic_params.msgs.sure))
196 {
197 var id_arr=new Array();
198 $('.wt_iew_history_checkbox_sub:checked').each(function(){
199 id_arr.push($(this).val());
200 });
201 var delete_url=wt_iew_history_basic_params.delete_url.replace('_log_file_', id_arr.join(','));
202 window.location.href=delete_url;
203 }
204 }
205 }
206 });
207 }
208 }
209 return wt_iew_basic_history;
210
211 })( jQuery );
212
213 jQuery(function() {
214 wt_iew_basic_history.Set();
215 });
...\ No newline at end of file ...\ No newline at end of file
1 <?php
2 if ( ! defined( 'WPINC' ) ) {
3 die;
4 }
5 ?>
6 <div class="wt_iew_history_page">
7 <h2 class="wp-heading-inline"><?php _e('Import/Export history');?></h2>
8
9 <div style="margin-bottom:25px;">
10 <?php _e('Lists the runs and the status corresponding to every import/export with options to re-run, view detailed log or delete entry.');?>
11 </div>
12
13
14 <div class="wt_iew_history_settings">
15 <form action="admin.php">
16 <input type="hidden" name="page" value="<?php echo $this->module_id;?>">
17 <?php
18 if(array_filter(array_column($filter_by, 'values')))
19 {
20 ?>
21 <div class="wt_iew_history_settings_hd"><?php _e('Filter'); ?></div>
22 <div class="wt_iew_history_settings_form_group_box">
23 <?php
24 foreach ($filter_by as $filter_by_key => $filter_by_value)
25 {
26 if(count($filter_by_value['values'])>0)
27 {
28 ?>
29 <div class="wt_iew_history_settings_form_group">
30 <label><?php echo $filter_by_value['label']; ?></label>
31 <select name="wt_iew_history[filter_by][<?php echo $filter_by_key;?>]" class="wt_iew_select">
32 <option value=""><?php _e('All'); ?></option>
33 <?php
34 $val_labels=$filter_by_value['val_labels'];
35 foreach($filter_by_value['values'] as $val)
36 {
37 ?>
38 <option value="<?php echo $val;?>" <?php echo ($filter_by_value['selected_val']==$val ? 'selected="selected"' : '');?>><?php echo (isset($val_labels[$val]) ? $val_labels[$val] : $val);?></option>
39 <?php
40 }
41 ?>
42 </select>
43 </div>
44 <?php
45 }
46 }
47 ?>
48 </div>
49 <?php
50 }
51 ?>
52
53 <div class="wt_iew_history_settings_form_group_box">
54 <div class="wt_iew_history_settings_form_group">
55 <label><?php _e('Sort by'); ?></label>
56 <select name="wt_iew_history[order_by]" class="wt_iew_select">
57 <?php
58 foreach ($order_by as $key => $value)
59 {
60 ?>
61 <option value="<?php echo $key;?>" <?php echo ($order_by_val==$key ? 'selected="selected"' : '');?>><?php echo $value['label'];?></option>
62 <?php
63 }
64 ?>
65 </select>
66 </div>
67 <div class="wt_iew_history_settings_form_group">
68 <label><?php _e('Max record/page'); ?></label>
69 <input type="text" name="wt_iew_history[max_data]" value="<?php echo $this->max_records;?>" class="wt_iew_text" style="width:50px;">
70 </div>
71 </div>
72 <div class="wt_iew_history_settings_form_group_box">
73 <input type="hidden" name="offset" value="0">
74 <?php
75 if($list_by_cron) /* list by cron */
76 {
77 ?>
78 <input type="hidden" name="wt_iew_cron_id" value="<?php echo $cron_id;?>">
79 <?php
80 }
81 ?>
82 <button class="button button-primary" type="submit" style="float:left;"><?php _e('Apply'); ?></button>
83 </div>
84 </form>
85 </div>
86
87 <div class="wt_iew_bulk_action_box">
88 <select class="wt_iew_bulk_action wt_iew_select">
89 <option value=""><?php _e('Bulk Actions'); ?></option>
90 <option value="delete"><?php _e('Delete'); ?></option>
91 </select>
92 <button class="button button-primary wt_iew_bulk_action_btn" type="button" style="float:left;"><?php _e('Apply'); ?></button>
93 </div>
94 <?php
95 echo self::gen_pagination_html($total_records, $this->max_records, $offset, 'admin.php', $pagination_url_params);
96 ?>
97 <?php
98 if(isset($history_list) && is_array($history_list) && count($history_list)>0)
99 {
100 ?>
101 <table class="wp-list-table widefat fixed striped history_list_tb">
102 <thead>
103 <tr>
104 <th width="100">
105 <input type="checkbox" name="" class="wt_iew_history_checkbox_main">
106 <?php _e("No."); ?>
107 </th>
108 <th width="50"><?php _e("Id"); ?></th>
109 <th><?php _e("Action type"); ?></th>
110 <th><?php _e("Post type"); ?></th>
111 <th><?php _e("Started at"); ?></th>
112 <th>
113 <?php _e("Status"); ?>
114 <span class="dashicons dashicons-editor-help wt-iew-tips"
115 data-wt-iew-tip="
116 <span class='wt_iew_tooltip_span'><?php echo sprintf(__('%sSuccess%s - Process completed successfully'), '<b>', '</b>');?></span><br />
117 <span class='wt_iew_tooltip_span'><?php echo sprintf(__('%sFailed%s - Failed process triggered due to connection/permission or similar issues(unable to establish FTP/DB connection, write permission issues etc.)'), '<b>', '</b>');?> </span><br />
118 <span class='wt_iew_tooltip_span'><?php echo sprintf(__('%sRunning/Incomplete%s - Process that are running currently or that may have been terminated unknowingly(e.g, closing a browser tab while in progress etc)'), '<b>', '</b>');?> </span>">
119 </span>
120 </th>
121 <th>
122 <?php _e("Actions"); ?>
123 <span class="dashicons dashicons-editor-help wt-iew-tips"
124 data-wt-iew-tip=" <span class='wt_iew_tooltip_span'><?php _e('Re-run will take the user to the respective screen depending on the corresponding action type and the user can initiate the process accordingly.');?></span>"></span>
125 </th>
126 </tr>
127 </thead>
128 <tbody>
129 <?php
130 $i=$offset;
131 foreach($history_list as $key =>$history_item)
132 {
133 $i++;
134 ?>
135 <tr>
136 <th>
137 <input type="checkbox" value="<?php echo $history_item['id'];?>" name="history_id[]" class="wt_iew_history_checkbox_sub">
138 <?php echo $i;?>
139 </td>
140 <td><?php echo $history_item['id']; ?></td>
141 <td><?php echo ucfirst($history_item['template_type']); ?></td>
142 <td><?php echo ucfirst($history_item['item_type']); ?></td>
143 <td><?php echo date_i18n('Y-m-d h:i:s A', $history_item['created_at']); ?></td>
144 <td>
145 <?php
146 echo (isset(self::$status_label_arr[$history_item['status']]) ? self::$status_label_arr[$history_item['status']] : __('Unknown'));
147 ?>
148 </td>
149 <td>
150 <a class="wt_iew_delete_history" data-href="<?php echo str_replace('_history_id_', $history_item['id'], $delete_url);?>"><?php _e('Delete'); ?></a>
151 <?php
152 $form_data=maybe_unserialize($history_item['data']);
153 $action_type=$history_item['template_type'];
154 if($form_data && is_array($form_data))
155 {
156 $to_process=(isset($form_data['post_type_form_data']) && isset($form_data['post_type_form_data']['item_type']) ? $form_data['post_type_form_data']['item_type'] : '');
157 if($to_process!="")
158 {
159 if(Wt_Import_Export_For_Woo_Admin_Basic::module_exists($action_type))
160 {
161 $action_module_id=Wt_Import_Export_For_Woo_Basic::get_module_id($action_type);
162 $url=admin_url('admin.php?page='.$action_module_id.'&wt_iew_rerun='.$history_item['id']);
163 ?>
164 | <a href="<?php echo $url;?>" target="_blank"><?php _e("Re-Run");?></a>
165 <?php
166 }
167 }
168 }
169 if($action_type=='import' && Wt_Import_Export_For_Woo_Admin_Basic::module_exists($action_type))
170 {
171 $action_module_obj=Wt_Import_Export_For_Woo_Basic::load_modules($action_type);
172 $log_file_name=$action_module_obj->get_log_file_name($history_item['id']);
173 $log_file_path=$action_module_obj->get_file_path($log_file_name);
174 if(file_exists($log_file_path))
175 {
176 ?>
177 | <a class="wt_iew_view_log_btn" data-history-id="<?php echo $history_item['id'];?>"><?php _e("View log");?></a>
178 <?php
179 }
180 }
181 if($action_type=='export' && Wt_Import_Export_For_Woo_Admin_Basic::module_exists($action_type))
182 {
183 $export_download_url=wp_nonce_url(admin_url('admin.php?wt_iew_export_download=true&file='.$history_item['file_name']), WT_IEW_PLUGIN_ID_BASIC);
184 ?>
185 | <a class="wt_iew_export_download_btn" target="_blank" href="<?php echo $export_download_url;?>"><?php _e('Download');?></a>
186 <?php
187 }
188 ?>
189 </td>
190 </tr>
191 <?php
192 }
193 ?>
194 </tbody>
195 </table>
196 <?php
197 echo self::gen_pagination_html($total_records, $this->max_records, $offset, 'admin.php', $pagination_url_params);
198 }else
199 {
200 ?>
201 <h4 class="wt_iew_history_no_records"><?php _e("No records found."); ?></h4>
202 <?php
203 }
204 ?>
205 </div>
...\ No newline at end of file ...\ No newline at end of file
1 <?php
2 if ( ! defined( 'WPINC' ) ) {
3 die;
4 }
5 /* delete after redirect */
6 if(isset($_GET['wt_iew_delete_log']))
7 {
8 ?>
9 <script type="text/javascript">
10 window.location.href='<?php echo admin_url('admin.php?page='.$this->module_id.'_log'); ?>';
11 </script>
12 <?php
13 }
14 ?>
15 <div class="wt_iew_history_page">
16 <h2 class="wp-heading-inline"><?php _e('Import Logs');?></h2>
17 <p>
18 <?php _e('Lists developer logs mostly required for debugging purposes. Options to view detailed logs are available along with delete and download(that can be shared with the support team in case of issues).');?>
19 </p>
20
21 <?php
22 $log_path=Wt_Import_Export_For_Woo_Basic_Log::$log_dir;
23 $log_files = glob($log_path.'/*'.'.log');
24 if(is_array($log_files) && count($log_files)>0)
25 {
26 foreach ($log_files as $key => $value) {
27 $date_time = str_replace('.log','',substr($value, strrpos($value, '_') + 1));
28 $d = DateTime::createFromFormat('Y-m-d H i s A', $date_time);
29 if ($d == false) {
30 $index = $date_time;
31 } else {
32 $index = $d->getTimestamp();
33 }
34 $indexed_log_files[$index] = $value;
35 }
36 krsort($indexed_log_files);
37 $log_files = $indexed_log_files;
38
39 ?>
40 <div class="wt_iew_bulk_action_box">
41 <select class="wt_iew_bulk_action wt_iew_select">
42 <option value=""><?php _e( 'Bulk Actions' ); ?></option>
43 <option value="delete"><?php _e( 'Delete' ); ?></option>
44 </select>
45 <button class="button button-primary wt_iew_bulk_action_logs_btn" type="button" style="float:left;"><?php _e( 'Apply' ); ?></button>
46 </div>
47 <table class="wp-list-table widefat fixed striped history_list_tb log_list_tb">
48 <thead>
49 <tr>
50 <th width="100">
51 <input type="checkbox" name="" class="wt_iew_history_checkbox_main">
52 <?php _e("No."); ?>
53 </th>
54 <th class="log_file_name_col"><?php _e("File"); ?></th>
55 <th><?php _e("Actions"); ?></th>
56 </tr>
57 </thead>
58 <tbody>
59 <?php
60 $i = 0;
61 foreach($log_files as $log_file)
62 {
63 $i++;
64 $file_name=basename($log_file);
65 ?>
66 <tr>
67 <th>
68 <input type="checkbox" value="<?php echo $file_name;?>" name="logfile_name[]" class="wt_iew_history_checkbox_sub">
69 <?php echo $i;?>
70 </td>
71 <td class="log_file_name_col"><a class="wt_iew_view_log_btn" data-log-file="<?php echo $file_name;?>"><?php echo $file_name; ?></a></td>
72 <td>
73 <a class="wt_iew_delete_log" data-href="<?php echo str_replace('_log_file_', $file_name, $delete_url);?>"><?php _e('Delete'); ?></a>
74 | <a class="wt_iew_view_log_btn" data-log-file="<?php echo $file_name;?>"><?php _e("View");?></a>
75 | <a class="wt_iew_download_log_btn" href="<?php echo str_replace('_log_file_', $file_name, $download_url);?>"><?php _e("Download");?></a>
76 </td>
77 </tr>
78 <?php
79 }
80 ?>
81 </tbody>
82 </table>
83 <?php
84 }else
85 {
86 ?>
87 <h4 class="wt_iew_history_no_records"><?php _e( "No logs found." ); ?>
88 <?php if ( Wt_Import_Export_For_Woo_Basic_Common_Helper::get_advanced_settings( 'enable_import_log' ) == 0 ): ?>
89 <span> <?php _e( 'Please enable import log under' ); ?> <a target="_blank" href="<?php echo admin_url( 'admin.php?page=wt_import_export_for_woo_basic' ) ?>"><?php _e( 'settings' ); ?></a></span>
90 <?php endif; ?>
91 </h4>
92 <?php
93 }
94 ?>
95 </div>
...\ No newline at end of file ...\ No newline at end of file
1 <?php
2 /**
3 * Log table view file
4 *
5 * @link
6 *
7 * @package Wt_Import_Export_For_Woo
8 */
9 if (!defined('ABSPATH')) {
10 exit;
11 }
12
13 $summary = array(
14 'type' => array(
15 0 => array(
16 'count' => 0,
17 'description' => __('Item with same ID already exists.'),
18 'help_link' => 'https://www.webtoffee.com/how-to-resolve-id-conflict-during-import-in-woocommerce/',
19 'error_code' => 'already exists'
20 ),
21 1 => array(
22 'count' => 0,
23 'description' => __('Importing item conflicts with an existing post.'),
24 'help_link' => 'https://www.webtoffee.com/how-to-resolve-id-conflict-during-import-in-woocommerce/',
25 'error_code' => 'conflicts with an existing post'
26 ),
27 2 => array(
28 'count' => 0,
29 'description' => __('Invalid product type.'),
30 'help_link' => 'https://www.webtoffee.com/setting-up-product-import-export-plugin-for-woocommerce/',
31 'error_code' => 'Invalid product type'
32 )
33 )
34 );
35 if(isset($log_list) && is_array($log_list) && count($log_list)>0)
36 {
37 if($offset==0)
38 {
39 ?>
40 <table class="wp-list-table widefat fixed striped log_view_tb" style="margin-bottom:25px;">
41 <thead>
42 <tr>
43 <th style="width:100px;"><?php _e("Row No."); ?></th>
44 <th><?php _e("Status"); ?></th>
45 <th><?php _e("Message"); ?></th>
46 <th><?php _e("Item"); ?></th>
47 </tr>
48 </thead>
49 <tbody class="log_view_tb_tbody">
50 <?php
51 }
52 foreach($log_list as $key =>$log_item)
53 {
54 if(!$log_item['status']){
55 if(strpos($log_item['message'], 'already exists')!==false){
56 $summary['type'][0]['count'] = $summary['type'][0]['count']+1;
57 }
58 if(strpos($log_item['message'], 'conflicts with an existing post')!==false){
59 $summary['type'][1]['count'] = $summary['type'][1]['count']+1;
60 }
61 if(strpos($log_item['message'], 'Invalid product type')!==false){
62 $summary['type'][2]['count'] = $summary['type'][2]['count']+1;
63 }
64 }
65 ?>
66 <tr>
67 <td><?php echo absint($log_item['row']); ?></td>
68 <td><?php echo ($log_item['status'] ? __('Success') : __('Failed/Skipped') ); ?></td>
69 <td><?php esc_html_e($log_item['message']); ?></td>
70 <td>
71 <?php
72 if($show_item_details)
73 {
74 $item_data=$item_type_module_obj->get_item_by_id($log_item['post_id']);
75 if($item_data && isset($item_data['title']))
76 {
77 if(isset($item_data['edit_url']))
78 {
79 echo '<a href="'.$item_data['edit_url'].'" target="_blank">'.$item_data['title'].'</a>';
80 }else
81 {
82 echo $item_data['title'];
83 }
84 }else
85 {
86 echo $log_item['post_id'];
87 }
88 }else
89 {
90 echo $log_item['post_id'];
91 }
92 ?>
93 </td>
94 </tr>
95 <?php
96 }?>
97 <div style="background-color: #f6f7f7;padding: 10px;">
98 <?php
99
100 foreach ($summary['type'] as $summary_row) {
101 $summary_row_count = $summary_row['count'];
102 $summary_row_help_link = $summary_row['help_link'];
103 if($summary_row_count):
104 ?>
105 <p><?php echo $summary_row['description']."($summary_row_count)";?> - <?php _e('Please refer')?> <a href="<?php echo $summary_row_help_link; ?>" target="_blank"><?php _e('this article');?></a> <?php _e('for troubleshoot.');?></p>
106 <?php
107 endif;
108
109 }
110 ?>
111 </div>
112 <?php
113 if($offset==0)
114 {
115 ?>
116 </tbody>
117 </table>
118 <h4 style="margin-top:0px;">
119 <a class="wt_iew_history_loadmore_btn button button-primary"> <?php _e("Load more."); ?></a>
120 <span class="wt_iew_history_loadmore_loading" style="display:none;"><?php _e("Loading...."); ?></span>
121 </h4>
122 <?php
123 }
124 }else
125 {
126 ?>
127 <h4 style="margin-bottom:55px;"><?php _e("No records found."); ?> </h4>
128 <?php
129 }
130 ?>
...\ No newline at end of file ...\ No newline at end of file
1 <?php
2 if ( ! defined( 'WPINC' ) ) {
3 die;
4 }
5 ?>
6 <style type="text/css">
7 .wt_iew_history_page{ padding:15px; }
8 .history_list_tb td, .history_list_tb th{ text-align:center; }
9 .history_list_tb tr th:first-child{ text-align:left; }
10 .wt_iew_delete_history, .wt_iew_delete_log{ cursor:pointer; }
11 .wt_iew_history_settings{ float:left; width:100%; padding:15px; background:#fff; border:solid 1px #ccd0d4; box-sizing:border-box; margin-bottom:15px; }
12 .wt_iew_history_settings_hd{ float:left; width:100%; font-weight:bold; font-size:13px; }
13 .wt_iew_history_settings_form_group_box{ float:left; width:100%; box-sizing:border-box; padding:10px; padding-bottom:0px; height:auto; font-size:12px; }
14 .wt_iew_history_settings_form_group{ float:left; width:auto; margin-right:3%; min-width:200px;}
15 .wt_iew_history_settings_form_group label{ font-size:12px; font-weight:bold; }
16 .wt_iew_history_settings_form_group select, .wt_iew_history_settings_form_group input[type="text"]{ height:20px; }
17 .wt_iew_history_no_records{float:left; width:100%; margin-bottom:55px; margin-top:20px; text-align:center; background:#fff; padding:15px 0px; border:solid 1px #ccd0d4;}
18 .wt_iew_bulk_action_box{ float:left; width:auto; margin:10px 0px; }
19 select.wt_iew_bulk_action{ float:left; width:auto; height:20px; margin-right:10px; }
20 .wt_iew_view_log_btn{ cursor:pointer; }
21 .wt_iew_view_log{ }
22 .wt_iew_log_loader{ width:100%; height:200px; text-align:center; line-height:150px; font-size:14px; font-style:italic; }
23 .wt_iew_log_container{ padding:25px; }
24 .wt_iew_raw_log{ text-align:left; font-size:14px; }
25 .log_view_tb th, .log_view_tb td{ text-align:center; }
26 .log_list_tb .log_file_name_col{ text-align:left; }
27 </style>
28 <?php
29 if(isset($_GET['page']) && $_GET['page']==$this->module_id.'_log')
30 {
31 $page =$this->module_id.'_log';
32 $popup_hd_label = 'Log';
33 }else
34 {
35 $page =$this->module_id;
36 $popup_hd_label = 'History';
37 }
38 ?>
39
40 <div class="wt_iew_view_log wt_iew_popup">
41 <div class="wt_iew_popup_hd">
42 <span style="line-height:40px;" class="dashicons dashicons-media-text"></span>
43 <span class="wt_iew_popup_hd_label"><?php _e($popup_hd_label.' Details');?></span>
44 <div class="wt_iew_popup_close">X</div>
45 </div>
46 <div class="wt_iew_log_container">
47
48 </div>
49 </div>
50 <?php
51 if($page==$this->module_id.'_log')
52 {
53 include plugin_dir_path(__FILE__)."/_log_list.php";
54 }else
55 {
56 include plugin_dir_path(__FILE__)."/_history_list.php";
57 }
58 ?>
...\ No newline at end of file ...\ No newline at end of file
1 <?php
2 if (!defined('ABSPATH')) {
3 exit;
4 }
5 ?>
6 <div class="wt_iew_import_main">
7 <p><?php echo $this->step_description;?></p>
8 <form class="wt_iew_import_advanced_form">
9 <table class="form-table wt-iew-form-table">
10 <?php
11 Wt_Import_Export_For_Woo_Basic_Common_Helper::field_generator($advanced_screen_fields, $advanced_form_data);
12 ?>
13 </table>
14 </form>
15 </div>
16 <script type="text/javascript">
17 /* custom action: other than import, save, update. Eg: schedule */
18 function wt_iew_custom_action_basic(ajx_dta, action, id)
19 {
20 ajx_dta['item_type']=ajx_dta['to_import'];
21 <?php
22 do_action('wt_iew_custom_action_basic');
23 ?>
24 }
25 </script>
...\ No newline at end of file ...\ No newline at end of file
1 <?php
2 if (!defined('ABSPATH')) {
3 exit;
4 }
5 ?>
6 <div class="wt-iew-plugin-toolbar bottom">
7 <div style="float:left; padding-top:10px;" class="wt_iew_import_template_name"> </div>
8 <div style="float:right;">
9 <div style="float:right;">
10 <?php
11 $button_types = array_column(array_values($this->step_btns), 'type');
12 $last_button_key = array_search('button', array_reverse($button_types, true));
13 $count = 0;
14 $button_standard_class = 'media-button';
15 foreach($this->step_btns as $btnk=>$btnv)
16 {
17 $css_class=(isset($btnv['class']) ? $btnv['class'] : '');
18 $action_type=(isset($btnv['action_type']) ? $btnv['action_type'] : 'non-step');
19 if($count == $last_button_key){
20 $button_standard_class = 'button-primary';
21 }
22 if($btnv['type']=='button')
23 {
24 ?>
25 <button class="button <?php echo $button_standard_class; ?> wt_iew_import_action_btn <?php echo $css_class; ?>" data-action-type="<?php echo $action_type; ?>" data-action="<?php echo $btnv['key'];?>" type="submit">
26 <?php echo $btnv['text'];?>
27 </button>
28 <?php
29
30 }
31 elseif($btnv['type']=='dropdown_button')
32 {
33 $btn_arr=(isset($btnv['items']) && is_array($btnv['items']) ? $btnv['items'] : array());
34 ?>
35 <button type="button" class="button button-primary wt_iew_drp_menu <?php echo $css_class; ?>" data-target="wt_iew_<?php echo $btnk; ?>_drp">
36 <?php echo $btnv['text'];?> <span class="dashicons dashicons-arrow-down" style="line-height: 28px;"></span>
37 </button>
38 <ul class="wt_iew_dropdown <?php echo $css_class; ?>" data-id="wt_iew_<?php echo $btnk; ?>_drp">
39 <?php
40 foreach($btn_arr as $btnkk => $btnvv)
41 {
42 $field_attr=(isset($btnvv['field_attr']) ? $btnvv['field_attr'] : '');
43 $action_type=(isset($btnvv['action_type']) ? $btnvv['action_type'] : 'non-step');
44 ?>
45 <li class="wt_iew_import_action_btn" data-action-type="<?php echo $action_type; ?>" data-action="<?php echo $btnvv['key'];?>" <?php echo $field_attr;?> ><?php echo $btnvv['text'];?></li>
46 <?php
47 }
48 ?>
49 </ul>
50 <?php
51 }
52 elseif($btnv['type']=='hidden_button')
53 {
54 ?>
55 <button style="display:none;" class="button button-primary wt_iew_import_action_btn <?php echo $css_class; ?>" data-action-type="<?php echo $action_type; ?>" data-action="<?php echo $btnv['key'];?>" type="submit">
56 <?php echo $btnv['text'];?>
57 </button>
58 <?php
59
60 }
61 elseif($btnv['type']=='text')
62 {
63 ?>
64 <span style="line-height:40px; font-weight:bold;" class="<?php echo $css_class; ?>"><?php echo $btnv['text'];?></span>
65 <?php
66 }
67 $count++;
68 }
69 ?>
70 </div>
71 </div>
72 <span class="spinner" style="margin-top:11px;"></span>
73 </div>
...\ No newline at end of file ...\ No newline at end of file
1 <?php
2 if (!defined('ABSPATH')) {
3 exit;
4 }
5 ?>
6 <div class="wt-iew-settings-header">
7 <h3>
8 <?php _e('Import'); ?><?php if($this->step!='post_type'){ ?> <span class="wt_iew_step_head_post_type_name"></span><?php } ?>: <?php echo $this->step_title; ?>
9 </h3>
10 <span class="wt_iew_step_info" title="<?php echo $this->step_summary; ?>">
11 <?php /* step count summary */
12 echo $this->step_summary;
13 ?>
14 </span>
15 </div>
...\ No newline at end of file ...\ No newline at end of file
1 <?php
2 if (!defined('ABSPATH')) {
3 exit;
4 }
5 ?>
6 <tr id="columns_<?php echo $key;?>">
7 <td>
8 <input type="checkbox" name="columns_key[]" class="columns_key wt_iew_mapping_checkbox_sub" value="<?php echo $key;?>" <?php echo ($checked==1 ? 'checked' : ''); ?>>
9 </td>
10 <td>
11 <label class="wt_iew_mapping_column_label"><?php echo $label;?></label>
12 </td>
13 <td>
14 <input type="hidden" name="columns_val[]" class="columns_val" value="<?php echo $val;?>" data-type="<?php echo $type;?>">
15 <span data-wt_iew_popover="1" data-title="" data-content-container=".wt_iew_mapping_field_editor_container" class="wt_iew_mapping_field_val"><?php echo $val;?></span>
16 </td>
17 <td>
18 <span style="margin-left:20px;cursor:pointer" data-wt_iew_popover="1" data-title="" data-content-container=".wt_iew_mapping_field_editor_container" class="dashicons dashicons-edit wt-iew-tips" data-wt-iew-tip="<span class='wt_iew_tooltip_span'><?php _e('Use expression');?></span>"></span>
19 </td>
20 </tr>
...\ No newline at end of file ...\ No newline at end of file
1 <?php
2 if (!defined('ABSPATH')) {
3 exit;
4 }
5 ?>
6 <table class="wt-iew-mapping-tb wt-iew-importer-meta-mapping-tb wt-iew-mapping-tb-imp" data-field-type="<?php echo $meta_mapping_screen_field_key; ?>"> <thead>
7 <tr>
8 <th>
9 <?php
10 $is_checked=$meta_mapping_screen_field_val['checked'];
11 $checked_attr=($is_checked==1 ? ' checked="checked"' : '');
12 ?>
13 <input type="checkbox" name="" class="wt_iew_mapping_checkbox_main" <?php echo $checked_attr; ?>>
14 </th>
15 <th width="35%"><span class="wt_iew_step_head_post_type_name"></span> <?php esc_html_e( 'fields' );?></th>
16 <th><?php _e('File columns');?></th>
17 <th><?php esc_html_e( 'Transform' );?></th>
18 </tr>
19 </thead>
20 <tbody>
21 <?php
22 $tr_count=0;
23
24 foreach($meta_mapping_screen_field_val['fields'] as $key=>$val_arr)
25 {
26 extract($val_arr);
27 include "_import_mapping_tr_html.php";
28 $tr_count++;
29 }
30
31 if($tr_count==0)
32 {
33 ?>
34 <tr>
35 <td colspan="3" style="text-align:center;">
36 <?php _e('No fields found.'); ?>
37 </td>
38 </tr>
39 <?php
40 }
41 ?>
42 </tbody>
43 </table>
...\ No newline at end of file ...\ No newline at end of file
1 <?php
2 if (!defined('ABSPATH')) {
3 exit;
4 }
5 ?>
6 <div class="wt_iew_import_main">
7 <p><?php //echo $this->step_description;?></p>
8 <div class="wt_iew_warn wt_iew_method_import_wrn" style="display:none;">
9 <?php _e('Please select an import template.');?>
10 </div>
11 <table class="form-table wt-iew-form-table">
12 <tr>
13 <th><label><?php _e('Import method');?></label></th>
14 <td colspan="2" style="width:75%;">
15 <div class="wt_iew_radio_block">
16 <?php
17 if(empty($this->mapping_templates)){
18 unset($this->import_obj->import_methods['template']);
19 }
20 foreach($this->import_obj->import_methods as $key => $value)
21 {
22 ?>
23 <p>
24 <input type="radio" value="<?php echo $key;?>" id="wt_iew_import_<?php echo $key;?>_import" name="wt_iew_import_method_import" <?php echo ($this->import_method==$key ? 'checked="checked"' : '');?>><b><label for="wt_iew_import_<?php echo $key;?>_import"><?php echo $value['title']; ?></label></b> <br />
25 <span><label for="wt_iew_import_<?php echo $key;?>_import"><?php echo $value['description']; ?></label></span>
26 </p>
27 <?php
28 }
29 ?>
30 </div>
31 </td>
32 </tr>
33 <tr><div id="user-required-field-message" class="updated" style="margin-left:0px;display: none;background: #dceff4;"><p><?php _e('Ensure the import file has the user\'s email ID for a successful import. Use default column name <b>user_email</b> or map the column accordingly if you are using a custom column name.'); ?></p></div></tr>
34 <tr class="wt-iew-import-method-options wt-iew-import-method-options-template wt-iew-import-template-sele-tr" style="display:none;">
35 <th><label><?php _e('Import template');?></label></th>
36 <td>
37 <select class="wt-iew-import-template-sele">
38 <option value="0">-- <?php _e('Select a template'); ?> --</option>
39 <?php
40 foreach($this->mapping_templates as $mapping_template)
41 {
42 ?>
43 <option value="<?php echo $mapping_template['id'];?>" <?php echo ($form_data_import_template==$mapping_template['id'] ? ' selected="selected"' : ''); ?>>
44 <?php echo $mapping_template['name'];?>
45 </option>
46 <?php
47 }
48 ?>
49 </select>
50 </td>
51 <td>
52 </td>
53 </tr>
54 </table>
55 <form class="wt_iew_import_method_import_form">
56 <table class="form-table wt-iew-form-table">
57 <?php
58 Wt_Import_Export_For_Woo_Basic_Common_Helper::field_generator($method_import_screen_fields, $method_import_form_data);
59 ?>
60 </table>
61 </form>
62 </div>
63 <script type="text/javascript">
64 /* remote file modules can hook */
65 function wt_iew_set_file_from_fields(file_from)
66 {
67 <?php
68 do_action('wt_iew_importer_file_from_js_fn');
69 ?>
70 }
71
72 function wt_iew_set_validate_file_info(file_from)
73 {
74 <?php
75 do_action('wt_iew_importer_set_validate_file_info');
76 ?>
77 }
78 </script>
...\ No newline at end of file ...\ No newline at end of file
1 <?php
2 if (!defined('ABSPATH')) {
3 exit;
4 }
5 ?>
6 <div class="wt_iew_import_main">
7 <p><?php echo $this->step_description;?></p>
8 <div class="wt_iew_warn wt_iew_post_type_wrn" style="display:none;">
9 <?php _e('Please select a post type');?>
10 </div>
11 <table class="form-table wt-iew-form-table">
12 <tr>
13 <th><label><?php _e( 'Select a post type to import', 'users-customers-import-export-for-wp-woocommerce' ); ?></label></th>
14 <td>
15 <select name="wt_iew_import_post_type">
16 <option value="">-- <?php _e( 'Select post type', 'users-customers-import-export-for-wp-woocommerce' ); ?> --</option>
17 <?php
18 $item_type = isset($item_type) ? $item_type : 'user';
19 foreach($post_types as $key=>$value)
20 {
21 ?>
22 <option value="<?php echo $key;?>" <?php echo ($item_type==$key ? 'selected' : '');?>><?php echo $value;?></option>
23 <?php
24 }
25 ?>
26 </select>
27 </td>
28 <td></td>
29 </tr>
30 </table>
31 <br/>
32 <?php
33 $wt_iew_post_types = array(
34 'product' => array(
35 'message' => __('The <b>Product Import Export for WooCommerce Add-On</b> is required to export WooCommerce Products.', 'users-customers-import-export-for-wp-woocommerce' ),
36 'link' => admin_url('plugin-install.php?tab=plugin-information&plugin=product-import-export-for-woo')
37 ),
38 'product_review' => array(
39 'message' => __('The <b>Product Import Export for WooCommerce Add-On</b> is required to export WooCommerce Product reviews.', 'users-customers-import-export-for-wp-woocommerce' ),
40 'link' => admin_url('plugin-install.php?tab=plugin-information&plugin=product-import-export-for-woo')
41 ),
42 'product_categories' => array(
43 'message' => __('The <b>Product Import Export for WooCommerce Add-On</b> is required to export WooCommerce Product categories.', 'users-customers-import-export-for-wp-woocommerce' ),
44 'link' => admin_url('plugin-install.php?tab=plugin-information&plugin=product-import-export-for-woo')
45 ),
46 'product_tags' => array(
47 'message' => __('The <b>Product Import Export for WooCommerce Add-On</b> is required to export WooCommerce Product tags.', 'users-customers-import-export-for-wp-woocommerce' ),
48 'link' => admin_url('plugin-install.php?tab=plugin-information&plugin=product-import-export-for-woo')
49 ),
50 'order' => array(
51 'message' => __('The <b>Order Export & Order Import for WooCommerce Add-On</b> is required to export WooCommerce Orders.', 'users-customers-import-export-for-wp-woocommerce' ),
52 'link' => admin_url('plugin-install.php?tab=plugin-information&plugin=order-import-export-for-woocommerce')
53 ),
54 'coupon' => array(
55 'message' => __('The <b>Order Export & Order Import for WooCommerce Add-On</b> is required to export WooCommerce Coupons.', 'users-customers-import-export-for-wp-woocommerce' ),
56 'link' => admin_url('plugin-install.php?tab=plugin-information&plugin=order-import-export-for-woocommerce')
57 ),
58 'subscription' => array(
59 'message' => __('The <b>Order, Coupon, Subscription Export Import for WooCommerce</b> premium is required to import WooCommerce Subscriptions.', 'users-customers-import-export-for-wp-woocommerce' ),
60 'link' => esc_url( 'https://www.webtoffee.com/product/order-import-export-plugin-for-woocommerce/?utm_source=free_plugin_revamp_post_type&utm_medium=basic_revamp&utm_campaign=Order_Import_Export&utm_content=' . WT_U_IEW_VERSION )
61 )
62 );
63 foreach ($wt_iew_post_types as $wt_iew_post_type => $wt_iew_post_type_detail) { ?>
64
65 <div class="wt_iew_free_addon wt_iew_free_addon_warn <?php echo 'wt_iew_type_'.$wt_iew_post_type; ?>" style="display:none">
66 <p><?php echo $wt_iew_post_type_detail['message']; ?></p>
67 <?php
68 $install_now = esc_html( 'Install now for free', 'users-customers-import-export-for-wp-woocommerce' );
69 $is_pro = false;
70 if( 'subscription' === $wt_iew_post_type ){
71 $install_now = esc_html( 'Get the plugin', 'users-customers-import-export-for-wp-woocommerce' );
72 $is_pro = true;
73 }
74 ?>
75 <a target="_blank" href="<?php echo $wt_iew_post_type_detail['link']; ?>"><?php esc_attr_e( $install_now ); ?></a>
76 </div>
77
78 <?php
79 }
80 ?>
81 </div>
...\ No newline at end of file ...\ No newline at end of file
1 <?php
2 /**
3 * Main view file of import section
4 *
5 * @link
6 *
7 * @package Wt_Import_Export_For_Woo
8 */
9 if (!defined('ABSPATH')) {
10 exit;
11 }
12 ?>
13 <?php
14 do_action('wt_iew_importer_before_head');
15 $wf_admin_view_path=plugin_dir_path(WT_U_IEW_PLUGIN_FILENAME).'admin/views/';
16 ?>
17 <style type="text/css">
18 .wt_iew_import_step{ display:none; }
19 .wt_iew_import_step_loader{ width:100%; height:400px; text-align:center; line-height:400px; font-size:14px; }
20 .wt_iew_import_step_main{ float:left; box-sizing:border-box; padding:15px; padding-bottom:0px; width:95%; margin:30px 2.5%; background:#fff; box-shadow:0px 2px 2px #ccc; border:solid 1px #efefef; }
21 .wt_iew_import_main{ padding:20px 0px; }
22 select[name=wt_iew_file_from]{visibility: hidden;}
23 .wt-something-went-wrong-wrap{position: absolute; margin-top: 150px; left:25%;color:#FFF;width:450px;height:275px;background: #FFF;padding: 25px; text-align: center;border: 1px solid #B32D2E;border-radius: 10px;box-shadow: 0px 0px 2px 2px #cdc8c8;}
24 </style>
25 <div class="wt_iew_view_log wt_iew_popup" style="text-align:left">
26 <div class="wt_iew_popup_hd">
27 <span style="line-height:40px;" class="dashicons dashicons-media-text"></span>
28 <span class="wt_iew_popup_hd_label"><?php _e('History Details');?></span>
29 <div class="wt_iew_popup_close">X</div>
30 </div>
31 <div class="wt_iew_log_container" style="padding:25px;">
32
33 </div>
34 </div>
35
36 <div class="wt_iew_import_progress_wrap wt_iew_popup">
37 <div class="wt_iew_popup_hd wt_iew_import_progress_header">
38 <span style="line-height:40px;" class="dashicons dashicons-media-text"></span>
39 <span class="wt_iew_popup_hd_label"><?php _e('Import progress');?></span>
40 <div class="wt_iew_popup_close">X</div>
41 </div>
42 <div class="wt_iew_import_progress_content" style="max-height:620px;overflow: auto;">
43 <table id="wt_iew_import_progress" class="widefat_importer widefat wt_iew_import_progress wp-list-table fixed striped history_list_tb log_list_tb">
44 <thead>
45 <tr>
46 <th style="width:15%" class="row"><?php _e( 'Row' ); ?></th>
47 <th style="width:20%"><?php _e( 'Item' ); ?></th>
48 <th style="width:50%"><?php _e( 'Message' ); ?></th>
49 <th style="width:20%" class="reason"><?php _e( 'Status' ); ?></th>
50 </tr>
51 </thead>
52 <tbody id="wt_iew_import_progress_tbody"></tbody>
53 </table>
54 </div>
55 <br/>
56 <div id="wt_iew_import_progress_end"></div>
57 <div class="progressa">
58 <div class="progressab" style="background-color: rgb(178, 222, 75);width:5px; "></div>
59 </div>
60
61 <div class="wt-iew-import-completed" style="display:none;border-top: 1px outset;">
62 <h3><?php _e('Import Completed'); ?><span style="color:green" class="dashicons dashicons-yes-alt"></span></h3>
63 <div class="wt-iew-import-results">
64 <div class="wt-iew-import-result-row">
65 <div class="wt-iew-import-results-total wt-iew-import-result-column"><?php _e('Total records identified'); ?>:<span id="wt-iew-import-results-total-count"></span></div>
66 <div style="color:green" class="wt-iew-import-results-imported wt-iew-import-result-column"><?php _e('Imported successfully'); ?>:<span id="wt-iew-import-results-imported-count"></span></div>
67 <div style="color:red" class="wt-iew-import-results-failed wt-iew-import-result-column"><?php _e('Failed/Skipped'); ?>:<span id="wt-iew-import-results-failed-count"></span></div>
68 </div>
69 </div>
70 </div>
71
72
73 <div class="wt-iew-plugin-toolbar bottom" style="padding:5px;margin-left:-10px;">
74 <div style="float: left">
75 <div class="wt-iew-import-time" style="display:none;padding-left: 40px;margin-top:10px;" ><?php _e( 'Time taken to complete' );?>:<span id="wt-iew-import-time-taken"></span></div>
76 </div>
77 <div style="float:right;">
78 <div style="float:right;">
79 <a target="_blank" href="#" class="button button-primary wt_iew_view_imported_items" data-log-file="" style="display:none" type="button" style="margin-right:10px;"><?php _e( 'View Item' );?></a>
80 <button class="button button-primary wt_iew_view_log_btn" data-log-file="" style="display:none" type="button" style="margin-right:10px;"><?php _e( 'View Log' );?></button>
81 <button class="button button-primary wt_iew_popup_cancel_btn" type="button" style="margin-right:10px;"><?php _e( 'Cancel' );?></button>
82 <button class="button button-primary wt_iew_popup_close_btn" style="display:none" type="button" style="margin-right:10px;"><?php _e( 'Close' );?></button>
83 </div>
84 </div>
85 </div>
86 </div>
87
88 <?php
89 Wt_Iew_IE_Basic_Helper::debug_panel($this->module_base);
90 ?>
91 <?php include WT_U_IEW_PLUGIN_PATH."/admin/views/_save_template_popup.php"; ?>
92
93 <h2 class="wt_iew_page_hd"><?php _e('Import'); ?><span class="wt_iew_post_type_name"></span></h2>
94 <span class="wt-webtoffee-icon" style="float: <?php echo (!is_rtl()) ? 'right' : 'left'; ?>; padding-<?php echo (!is_rtl()) ? 'right' : 'left'; ?>:30px; margin-top: -25px;">
95 <?php _e('Developed by'); ?> <a target="_blank" href="https://www.webtoffee.com">
96 <img src="<?php echo WT_U_IEW_PLUGIN_URL.'/assets/images/webtoffee-logo_small.png';?>" style="max-width:100px;">
97 </a>
98 </span>
99
100 <?php
101 if($requested_rerun_id>0 && $this->rerun_id==0)
102 {
103 ?>
104 <div class="wt_iew_warn wt_iew_rerun_warn">
105 <?php _e('Unable to handle Re-Run request.');?>
106 </div>
107 <?php
108 }
109 ?>
110
111 <div class="wt_iew_loader_info_box"></div>
112 <div class="wt_iew_overlayed_loader"></div>
113
114 <div class="wt_iew_import_step_main_wrapper" style="width:68%; float: left">
115
116
117 <div class="wt-something-went-wrong" style="position:relative;display:none;">
118 <div class="wt-something-went-wrong-wrap">
119 <p class="wt_iew_popup_close" style="float:right;margin-top: -15px !important;margin-right: -15px !important;line-height: 0;"><a href="javascript:void(0)"><img src="<?php echo WT_U_IEW_PLUGIN_URL.'/assets/images/wt-close-button.png';?>"/></a></p>
120 <img src="<?php echo WT_U_IEW_PLUGIN_URL.'/assets/images/wt-error-icon.png';?>"/>
121 <h3><?php esc_html_e('Something went wrong'); ?></h3>
122 <p style="color:#000;text-align: left;"><?php esc_html_e('We are unable to complete your request.Try reducing the import batch count to 5 or less and increasing the Maximum execution time in the '); ?><a target="_blank" href="<?php echo admin_url('admin.php?page=wt_import_export_for_woo_basic') ?>"><?php esc_html_e('General settings'); ?></a>.</p>
123 <p style="color:#000;text-align: left;"><?php esc_html_e(' If not resolved, contact the');?> <a target="_blank" href="https://www.webtoffee.com/contact/"><?php esc_html_e('support team'); ?></a> <?php esc_html_e('with the');?> <a target="_blank" href="<?php echo admin_url('admin.php?page=wc-status&tab=logs') ?>"><?php esc_html_e('WooCommerce fatal error log'); ?></a>, <?php esc_html_e('if any'); ?>.</p>
124 <br/>
125 <a href="javascript:void(0)" onclick='wt_iew_basic_import.refresh_import_page();' class="button button-primary"><?php esc_html_e('Try again'); ?></a>
126 </div>
127 </div>
128
129
130
131 <div class="wt_iew_import_step_main" style = "width:100%; float: left">
132 <?php
133 foreach($this->steps as $stepk=>$stepv)
134 {
135 ?>
136 <div class="wt_iew_import_step wt_iew_import_step_<?php echo $stepk;?>" data-loaded="0"></div>
137 <?php
138 }
139 ?>
140 </div>
141 </div>
142 <?php
143 include $wf_admin_view_path."market.php";
144 ?>
145 <script type="text/javascript">
146 /* external modules can hook */
147 function wt_iew_importer_validate_basic(action, action_type, is_previous_step)
148 {
149 var is_continue=true;
150 <?php
151 do_action('wt_iew_importer_validate_basic');
152 ?>
153 return is_continue;
154 }
155 function wt_iew_importer_reset_form_data_basic()
156 {
157 <?php
158 do_action('wt_iew_importer_reset_form_data_basic');
159 ?>
160 }
161 </script>
...\ No newline at end of file ...\ No newline at end of file
1 <?php
2
3 if (!defined('ABSPATH')) {
4 exit;
5 }
6
7 global $wpdb;
8 $columns = array(
9 'ID' => 'ID',
10 'customer_id' => 'customer_id',
11 'user_login' => 'user_login',
12 'user_pass' => 'user_pass',
13 'user_nicename' => 'user_nicename',
14 'user_email' => 'user_email',
15 'user_url' => 'user_url',
16 'user_registered' => 'user_registered',
17 'display_name' => 'display_name',
18 'first_name' => 'first_name',
19 'last_name' => 'last_name',
20 'user_status' => 'user_status',
21 'roles' => 'roles'
22 );
23 // default meta
24 $columns['nickname'] = 'nickname';
25 $columns['first_name'] = 'first_name';
26 $columns['last_name'] = 'last_name';
27 $columns['description'] = 'description';
28 $columns['rich_editing'] = 'rich_editing';
29 $columns['syntax_highlighting'] = 'syntax_highlighting';
30 $columns['admin_color'] = 'admin_color';
31 $columns['use_ssl'] = 'use_ssl';
32 $columns['show_admin_bar_front'] = 'show_admin_bar_front';
33 $columns['locale'] = 'locale';
34 $columns[$wpdb->prefix.'user_level'] = $wpdb->prefix.'user_level';
35 $columns['dismissed_wp_pointers'] = 'dismissed_wp_pointers';
36 $columns['show_welcome_panel'] = 'show_welcome_panel';
37 $columns['session_tokens'] = 'session_tokens';
38 $columns['last_update'] = 'last_update';
39
40
41 if (!function_exists( 'is_plugin_active' ) )
42 require_once( ABSPATH . '/wp-admin/includes/plugin.php' );
43
44 if( is_plugin_active( 'woocommerce/woocommerce.php' ) ):
45
46 $columns['total_spent'] = 'total_spent';
47 $columns['billing_first_name'] = 'billing_first_name';
48 $columns['billing_last_name'] = 'billing_last_name';
49 $columns['billing_company'] = 'billing_company';
50 $columns['billing_email'] = 'billing_email';
51 $columns['billing_phone'] = 'billing_phone';
52 $columns['billing_address_1'] = 'billing_address_1';
53 $columns['billing_address_2'] = 'billing_address_2';
54 $columns['billing_postcode'] = 'billing_postcode';
55 $columns['billing_city'] = 'billing_city';
56 $columns['billing_state'] = 'billing_state';
57 $columns['billing_country'] = 'billing_country';
58 $columns['shipping_first_name'] = 'shipping_first_name';
59 $columns['shipping_last_name'] = 'shipping_last_name';
60 $columns['shipping_company'] = 'shipping_company';
61 $columns['shipping_phone'] = 'shipping_phone';
62 $columns['shipping_address_1'] = 'shipping_address_1';
63 $columns['shipping_address_2'] = 'shipping_address_2';
64 $columns['shipping_postcode'] = 'shipping_postcode';
65 $columns['shipping_city'] = 'shipping_city';
66 $columns['shipping_state'] = 'shipping_state';
67 $columns['shipping_country'] = 'shipping_country';
68
69 endif;
70
71 /*
72 global $wpdb;
73
74 $meta_keys = $wpdb->get_col("SELECT distinct(meta_key) FROM $wpdb->usermeta");
75
76 foreach ($meta_keys as $meta_key) {
77 if (empty($columns[$meta_key])) {
78 $columns['meta:'.$meta_key] = 'meta:'.$meta_key; // adding an extra prefix for identifying meta while import process
79 }
80 }
81 */
82 return apply_filters('hf_csv_customer_post_columns', $columns);
...\ No newline at end of file ...\ No newline at end of file
1 <?php
2 if (!defined('ABSPATH')) {
3 exit;
4 }
5
6 $columns = array(
7 'ID' => array('title'=>'ID','description'=>'Customer/User ID'),
8 'customer_id' => array('title'=>'Customer ID','description'=>'Customer ID'),
9 'user_login' => array('title'=>'User Login','description'=>'User Login'),
10 'user_pass' => array('title'=>'user_pass','description'=>'user_pass'),
11 'user_nicename' => array('title'=>'user_nicename','description'=>'user_nicename'),
12 'user_email' => array('title'=>'user_email','description'=>'user_email'),
13 'user_url' => array('title'=>'user_url','description'=>'user_url'),
14 'user_registered' => array('title'=>'user_registered','description'=>'user_registered'),
15 'display_name' => array('title'=>'display_name','description'=>'display_name'),
16 'first_name' => array('title'=>'first_name','description'=>'first_name'),
17 'last_name' => array('title'=>'last_name','description'=>'last_name'),
18 'user_status' => array('title'=>'user_status','description'=>'user_status'),
19 'roles' => array('title'=>'roles','description'=>'roles'),
20 );
21
22 // default meta
23 $columns['nickname'] = array('title'=>'nickname','description'=>'');
24 $columns['first_name'] = array('title'=>'first_name','description'=>'');
25 $columns['last_name'] = array('title'=>'last_name','description'=>'');
26 $columns['description'] = array('title'=>'description','description'=>'');
27 $columns['rich_editing'] = array('title'=>'rich_editing','description'=>'');
28 $columns['syntax_highlighting'] = array('title'=>'syntax_highlighting','description'=>'');
29 $columns['admin_color'] = array('title'=>'admin_color','description'=>'');
30 $columns['use_ssl'] = array('title'=>'use_ssl','description'=>'');
31 $columns['show_admin_bar_front'] = array('title'=>'show_admin_bar_front','description'=>'');
32 $columns['locale'] = array('title'=>'locale','description'=>'');
33 $columns['wp_user_level'] = array('title'=>'wp_user_level','description'=>'');
34 $columns['dismissed_wp_pointers'] = array('title'=>'dismissed_wp_pointers','description'=>'');
35 $columns['show_welcome_panel'] = array('title'=>'show_welcome_panel','description'=>'');
36 $columns['session_tokens'] = array('title'=>'session_tokens','description'=>'');
37 $columns['last_update'] = array('title'=>'last_update','description'=>'');
38
39
40 if( is_plugin_active( 'woocommerce/woocommerce.php' ) ):
41
42 $columns['total_spent'] = array('title'=>'total_spent','description'=>'');
43 $columns['billing_first_name'] = array('title'=>'Billing first name','description'=>'');
44 $columns['billing_last_name'] = array('title'=>'Billing last name','description'=>'');
45 $columns['billing_company'] = array('title'=>'Billing company','description'=>'');
46 $columns['billing_email'] = array('title'=>'Billing email','description'=>'');
47 $columns['billing_phone'] = array('title'=>'Billing phone','description'=>'');
48 $columns['billing_address_1'] = array('title'=>'Billing address 1','description'=>'');
49 $columns['billing_address_2'] = array('title'=>'Billing address 2','description'=>'');
50 $columns['billing_postcode'] = array('title'=>'Billing postcode','description'=>'');
51 $columns['billing_city'] = array('title'=>'Billing city','description'=>'');
52 $columns['billing_state'] = array('title'=>'Billing state','description'=>'');
53 $columns['billing_country'] = array('title'=>'Billing country','description'=>'');
54 $columns['shipping_first_name'] = array('title'=>'Shipping first name','description'=>'');
55 $columns['shipping_last_name'] = array('title'=>'Shipping last name','description'=>'');
56 $columns['shipping_company'] = array('title'=>'Shipping company','description'=>'');
57 $columns['shipping_phone'] = array('title'=>'Shipping phone','description'=>'');
58 $columns['shipping_address_1'] = array('title'=>'Shipping address 1','description'=>'');
59 $columns['shipping_address_2'] = array('title'=>'Shipping address 2','description'=>'');
60 $columns['shipping_postcode'] = array('title'=>'Shipping postcode','description'=>'');
61 $columns['shipping_city'] = array('title'=>'Shipping city','description'=>'');
62 $columns['shipping_state'] = array('title'=>'Shipping state','description'=>'');
63 $columns['shipping_country'] = array('title'=>'Shipping country','description'=>'');
64
65 endif;
66
67
68
69
70 //global $wpdb;
71 //
72 //$meta_keys = $wpdb->get_col("SELECT distinct(meta_key) FROM $wpdb->usermeta WHERE meta_key NOT IN ('wp_capabilities')");
73 //
74 //foreach ($meta_keys as $meta_key) {
75 // if (empty($columns[$meta_key])) {
76 // $columns['meta:'.$meta_key] = array('title'=>'meta:'.$meta_key,'description'=>'');
77 // }
78 //}
79 return apply_filters('hf_csv_customer_import_columns', $columns);
...\ No newline at end of file ...\ No newline at end of file
1 <?php
2
3 if (!defined('ABSPATH')) {
4 exit;
5 }
6
7 class Wt_Import_Export_For_Woo_Basic_User_Bulk_Export {
8
9 /**
10 * Customer Exporter
11 * @param array $user_IDS [optional]<p>Array of User Id.</p>
12 */
13 public static function do_export($user_IDS = array(), $ftp = null) {
14 global $wpdb;
15
16 $csv_columns = include_once( __DIR__ . '/../data/data-user-columns.php' );
17
18 $user_columns_name = !empty($_POST['columns_name']) ? $_POST['columns_name'] : $csv_columns;
19 $export_columns = !empty($_POST['columns']) ? $_POST['columns'] : array();
20 $delimiter = !empty($_POST['delimiter']) ? $_POST['delimiter'] : ',';
21
22 $wpdb->hide_errors();
23 @set_time_limit(0);
24 if (function_exists('apache_setenv'))
25 @apache_setenv('no-gzip', 1);
26 @ini_set('zlib.output_compression', 0);
27 @ob_end_clean();
28
29 $file_name = apply_filters('wt_iew_product_bulk_export_user_filename', 'user_export_' . date('Y-m-d-h-i-s') . '.csv');
30
31 header('Content-Type: text/csv; charset=UTF-8');
32 header('Content-Disposition: attachment; filename=' . $file_name);
33 header('Pragma: no-cache');
34 header('Expires: 0');
35
36 $fp = fopen('php://output', 'w');
37
38 $args = array(
39 'fields' => 'ID'
40 );
41
42 if (!empty($user_IDS)) {
43 $args['include'] = $user_IDS; // An array of user IDs to include. Default empty array.
44 }
45
46 $users = get_users($args);
47
48 // Variable to hold the CSV data we're exporting
49 $row = array();
50
51 // Export header rows
52 foreach ($csv_columns as $column => $value) {
53
54 if (!$export_columns || in_array($column, $export_columns)) {
55 $temp_head = esc_attr($user_columns_name[$column]);
56 $row[] = $temp_head;
57 }
58 }
59
60 $row = array_map('Wt_Import_Export_For_Woo_Basic_User_Bulk_Export::wrap_column', apply_filters('wt_user_alter_csv_header', $row));
61 fwrite($fp, implode($delimiter, $row) . "\n");
62 $header_row = $row;
63 unset($row);
64
65 // Loop users
66 foreach ($users as $user) {
67 $data = self::get_customers_csv_row($user, $export_columns, $csv_columns, $header_row);
68 $data = apply_filters('hf_customer_csv_exclude_admin', $data);
69 $row = array_map('Wt_Import_Export_For_Woo_Basic_User_Bulk_Export::wrap_column', $data);
70 fwrite($fp, implode($delimiter, $row) . "\n");
71 unset($row);
72 unset($data);
73 }
74
75
76
77 fclose($fp);
78 exit;
79 }
80
81 public static function format_data($data) {
82 //if (!is_array($data));
83 //$data = (string) urldecode($data);
84 $enc = mb_detect_encoding($data, 'UTF-8, ISO-8859-1', true);
85 $data = ( $enc == 'UTF-8' ) ? $data : utf8_encode($data);
86 return $data;
87 }
88
89 /**
90 * Wrap a column in quotes for the CSV
91 * @param string data to wrap
92 * @return string wrapped data
93 */
94 public static function wrap_column($data) {
95 return '"' . str_replace('"', '""', $data) . '"';
96 }
97
98 /**
99 * Get the customer data for a single CSV row
100 * @since 3.0
101 * @param int $customer_id
102 * @param array $export_columns - user selected columns / all
103 * @return array $meta_keys customer/user meta data
104 */
105 public static function get_customers_csv_row($id, $export_columns, $csv_columns, $header_row) {
106 $user = get_user_by('id', $id);
107
108 $customer_data = array();
109 foreach ($csv_columns as $key) {
110 if (!$export_columns || in_array($key, $export_columns)) {
111 $key = trim(str_replace('meta:', '', $key));
112 if ($key == 'roles') {
113 $user_roles = (!empty($user->roles)) ? $user->roles : array();
114 $customer_data['roles'] = implode(', ', $user_roles);
115 continue;
116 }
117 if ( 'session_tokens' == $key ) {
118 $customer_data[$key] = !empty($user->{$key}) ? base64_encode(json_encode(maybe_unserialize($user->{$key}))) : '';
119 continue;
120 }
121 if ($key != 'customer_id') {
122 $customer_data[$key] = !empty($user->{$key}) ? maybe_serialize($user->{$key}) : '';
123 } else {
124 $customer_data[$key] = !empty($user->ID) ? maybe_serialize($user->ID) : '';
125 }
126 } else {
127 continue;
128 }
129 }
130
131 /*
132 * CSV Customer Export Row.
133 * Filter the individual row data for the customer export
134 * @since 3.0
135 * @param array $customer_data
136 */
137 return apply_filters('hf_customer_csv_export_data', $customer_data, $header_row);
138 }
139
140 }
1 <?php
2 if (!defined('ABSPATH')) {
3 exit;
4 }
5 $wf_admin_view_path=WT_U_IEW_PLUGIN_PATH.'admin/views/';
6 $wf_img_path=WT_U_IEW_PLUGIN_URL.'images/';
7 ?>
8 <div class="wrap" id="<?php echo WT_IEW_PLUGIN_ID_BASIC;?>">
9 <h2 class="wp-heading-inline">
10 <?php _e('Import Export for WooCommerce');?>
11 </h2>
12 <div class="nav-tab-wrapper wp-clearfix wt-iew-tab-head">
13 <?php
14 $tab_head_arr=array(
15 'wt-advanced'=>__('General'),
16 'wt-help'=>__('Help Guide'),
17 'wt-pro-upgrade'=>__('Pro Upgrade'),
18 'wt-other-solutions' => __('Other Solutions')
19 );
20 if(isset($_GET['debug']))
21 {
22 $tab_head_arr['wt-debug']='Debug';
23 }
24 Wt_Import_Export_For_Woo_Basic::generate_settings_tabhead($tab_head_arr);
25 ?>
26 </div>
27 <div class="wt-iew-tab-container">
28 <?php
29 //inside the settings form
30 $setting_views_a=array(
31 'wt-advanced'=>'admin-settings-advanced.php',
32 );
33
34 //outside the settings form
35 $setting_views_b=array(
36 'wt-help'=>'admin-settings-help.php',
37 'wt-other-solutions'=>'admin-settings-other-solutions.php'
38 );
39 $setting_views_b['wt-pro-upgrade']='admin-settings-marketing.php';
40 if(isset($_GET['debug']))
41 {
42 $setting_views_b['wt-debug']='admin-settings-debug.php';
43 }
44 ?>
45 <form method="post" class="wt_iew_settings_form_basic">
46 <?php
47 // Set nonce:
48 if (function_exists('wp_nonce_field'))
49 {
50 wp_nonce_field(WT_IEW_PLUGIN_ID_BASIC);
51 }
52 foreach ($setting_views_a as $target_id=>$value)
53 {
54 $settings_view=$wf_admin_view_path.$value;
55 if(file_exists($settings_view))
56 {
57 include $settings_view;
58 }
59 }
60 ?>
61 <?php
62 //settings form fields for module
63 do_action('wt_iew_plugin_settings_form');?>
64 </form>
65 <?php
66 foreach ($setting_views_b as $target_id=>$value)
67 {
68 $settings_view=$wf_admin_view_path.$value;
69 if(file_exists($settings_view))
70 {
71 include $settings_view;
72 }
73 }
74 ?>
75 <?php do_action('wt_iew_plugin_out_settings_form');?>
76 </div>
77 <?php //include $wf_admin_view_path."market.php"; ?>
78 </div>
...\ No newline at end of file ...\ No newline at end of file
1 <?php
2 /**
3 * Template saving popup HTML for Import/Export
4 *
5 * @link
6 *
7 * @package Wt_Import_Export_For_Woo
8 */
9 if (!defined('ABSPATH')) {
10 exit;
11 }
12 ?>
13 <div class="wt_iew_template_name wt_iew_popup" data-save-label="<?php _e('Save');?>" data-saveas-label="<?php _e('Save as');?>">
14 <div class="wt_iew_popup_hd">
15 <span style="line-height:40px;" class="dashicons dashicons-edit"></span>
16 <span class="wt_iew_popup_hd_label"></span>
17 <div class="wt_iew_popup_close">X</div>
18 </div>
19 <div class="wt_iew_warn_box">
20 <div class="wt_iew_warn wt_iew_template_name_wrn">
21 <?php _e('Please enter name');?>
22 </div>
23 </div>
24 <div class="wt_iew_template_name_box">
25 <label class="wt_iew_template_name_label"><?php _e('Template name');?></label>
26 <input type="text" name="wt_iew_template_name_field" class="wt_iew_text_field wt_iew_template_name_field">
27 <div class="wt_iew_popup_footer">
28 <button type="button" name="" class="button-secondary wt_iew_popup_cancel">
29 <?php _e('Cancel');?>
30 </button>
31 <button type="button" name="" class="button-primary wt_iew_template_create_btn"></button>
32 </div>
33 </div>
34 </div>
...\ No newline at end of file ...\ No newline at end of file
1 <?php
2 if ( ! defined( 'WPINC' ) ) {
3 die;
4 }
5 ?>
6 <div class="wt-iew-tab-content" data-id="<?php echo $target_id;?>">
7 <?php
8 $fields=Wt_Import_Export_For_Woo_Basic_Common_Helper::get_advanced_settings_fields();
9
10 $advanced_settings=Wt_Import_Export_For_Woo_Basic_Common_Helper::get_advanced_settings();
11 ?>
12 <table class="form-table wt-iew-form-table">
13 <?php
14 Wt_Import_Export_For_Woo_Basic_Common_Helper::field_generator($fields, $advanced_settings);
15 ?>
16 </table>
17 <?php
18 include "admin-settings-pre-saved-templates.php";
19 ?>
20 <?php
21 include "admin-settings-save-button.php";
22 ?>
23 </div>
...\ No newline at end of file ...\ No newline at end of file
1 <?php
2 if ( ! defined( 'WPINC' ) ) {
3 die;
4 }
5 ?>
6 <div class="wt-iew-tab-content" data-id="<?php echo $target_id;?>">
7
8 </div>
...\ No newline at end of file ...\ No newline at end of file
1 <?php
2 if ( ! defined( 'WPINC' ) ) {
3 die;
4 }
5 ?>
6 <div class="wt-iew-tab-content" data-id="<?php echo $target_id;?>">
7 <ul class="wt_iew_sub_tab">
8 <li style="border-left:none; padding-left: 0px;" data-target="help-links"><a><?php _e('Help Links'); ?></a></li>
9 <li data-target="help-doc"><a><?php _e('Sample CSV');?></a></li>
10 </ul>
11 <div class="wt_iew_sub_tab_container">
12 <div class="wt_iew_sub_tab_content" data-id="help-links" style="display:block;">
13 <!--<h3><?php //_e('Help Links'); ?></h3>-->
14 <ul class="wf-help-links">
15 <li>
16 <img src="<?php echo WT_U_IEW_PLUGIN_URL;?>assets/images/documentation.png">
17 <h3><?php _e('Documentation'); ?></h3>
18 <p><?php _e('Refer to our documentation to set up and get started.'); ?></p>
19 <a target="_blank" href="https://www.webtoffee.com/user-import-export-plugin-wordpress-user-guide/" class="button button-primary">
20 <?php _e('Documentation'); ?>
21 </a>
22 </li>
23 <li>
24 <img src="<?php echo WT_U_IEW_PLUGIN_URL;?>assets/images/support.png">
25 <h3><?php _e('Help and Support'); ?></h3>
26 <p><?php _e('We would love to help you on any queries or issues.'); ?></p>
27 <a target="_blank" href="https://www.webtoffee.com/support/" class="button button-primary">
28 <?php _e('Contact Us'); ?>
29 </a>
30 </li>
31 </ul>
32 </div>
33 <div class="wt_iew_sub_tab_content" data-id="help-doc">
34 <h3><?php //_e( 'Help Docs' ); ?></h3>
35 <ul class="wf-help-links">
36 <?php do_action( 'wt_user_addon_basic_help_content' ); ?>
37 <?php do_action( 'wt_order_addon_basic_help_content' ); ?>
38 <?php do_action( 'wt_coupon_addon_basic_help_content' ); ?>
39 <?php do_action( 'wt_product_addon_basic_help_content' ); ?>
40 </ul>
41 </div>
42 </div>
43 </div>
...\ No newline at end of file ...\ No newline at end of file
1 <?php
2 if (!defined('WPINC')) {
3 die;
4 }
5
6 global $wpdb;
7 $tb = $wpdb->prefix . Wt_Import_Export_For_Woo_Basic::$template_tb;
8 $val = $wpdb->get_results("SELECT * FROM $tb ORDER BY id DESC", ARRAY_A);
9 $pre_saved_templates = ($val ? $val : array());
10 if (!empty($pre_saved_templates)):
11 ?>
12
13
14 <style>
15 .wt_ier_template_list_table {
16 width: 50%;
17 border-spacing: 0px;
18 border-collapse: collapse;
19 margin-top: 15px;
20 }
21 .wt_ier_template_list_table th {
22 padding: 5px 5px;
23 background: #f9f9f9;
24 color: #333;
25 text-align: center;
26 border: solid 1px #e1e1e1;
27 font-weight: bold;
28 }
29 .wt_ier_template_list_table td {
30 padding: 5px 5px;
31 background: #fff;
32 color: #000;
33 text-align: center;
34 border: solid 1px #e1e1e1;
35 }
36 </style>
37 <div class="wt-ier-import-export-templates">
38 <h3><?php _e('Import export pre-saved templates'); ?></h3>
39 <div class="wt_ier_template_list_table_data">
40 <table class="wt_ier_template_list_table">
41 <thead>
42 <tr>
43 <th style="width:50px;">#</th>
44 <th><?php _e('Name'); ?></th>
45 <th><?php _e('Item'); ?></th>
46 <th><?php _e('Type'); ?></th>
47 <th><?php _e('Action'); ?></th>
48 </tr>
49 </thead>
50 <tbody>
51 <?php
52 $num = 1;
53 foreach ($pre_saved_templates as $key => $value):
54 ?>
55 <tr data-row-id="<?php echo absint($value['id']); ?>">
56 <td><?php echo $num; ?></td>
57 <td><?php echo $value['name']; ?></td>
58 <td><?php echo $value['item_type']; ?></td>
59 <td><?php echo $value['template_type']; ?></td>
60 <td><button data-id="<?php echo absint($value['id']); ?>" title="<?php _e('Delete'); ?>" class="button button-secondary wt_ier_delete_template"><span><?php _e('Delete'); ?></span></button></td>
61 </tr>
62 <?php
63 $num++;
64 endforeach;
65 ?>
66 </tbody>
67 </table>
68 </div>
69 </div>
70 <?php endif; ?>
...\ No newline at end of file ...\ No newline at end of file
1 <?php
2 // If this file is called directly, abort.
3 if ( ! defined( 'WPINC' ) ) {
4 die;
5 }
6 $settings_button_title=isset($settings_button_title) ? $settings_button_title : 'Update Settings';
7 $before_button_text=isset($before_button_text) ? $before_button_text : '';
8 $after_button_text=isset($after_button_text) ? $after_button_text : '';
9 ?>
10 <div style="clear: both;"></div>
11 <div class="wt-iew-plugin-toolbar bottom">
12 <div class="left">
13 </div>
14 <div class="right">
15 <?php echo $before_button_text; ?>
16 <input type="submit" name="wt_iew_update_admin_settings_form" value="<?php _e($settings_button_title); ?>" class="button button-primary" style="float:right;"/>
17 <?php echo $after_button_text; ?>
18 <span class="spinner" style="margin-top:11px"></span>
19 </div>
20 </div>
...\ No newline at end of file ...\ No newline at end of file
1 <?php
2 if (!defined('ABSPATH')) {
3 exit;
4 }
5 ?>
6
7 <div class="wt-import-export-upsell-wrapper market-box table-box-main">
8 <div class="ier-premium-upgrade wt-ierpro-sidebar">
9
10 <div class="ier_pro_plugins_section_small">
11
12 <div class="wt-import-export-upsell-small-wrapper market-box table-box-main wt-ier-advt-order wt-ier-advt-coupon wt-ier-advt-subscription" style="display:none;">
13 <div class="ier-premium-upgrade wt-ierpro-sidebar">
14 <div class="wt-ierpro-header">
15 <div class="wt-ierpro-name-small">
16 <img src="<?php echo WT_U_IEW_PLUGIN_URL; ?>assets/images/gopro/order-ie.svg" alt="featured img" width="36" height="36">
17 <h4 class="wt-ier-product-name-small"><?php _e('Order, Coupon, Subscription Import Export for WooCommerce'); ?></h4>
18 </div>
19 <p class="wt-ierpro-name-small-p"><?php _e('Get the most from premium version Get the most from premium version'); ?></p>
20
21 <div class="wt-hide-features-view-plugin">
22 <div style="float:left;margin-left: 5px;margin-right: 75px;">
23 <a class="wt-hide-features wt-hide-features-post-types wt-hide-features-order wt-hide-features-coupon wt-hide-features-subscription" href="#"><?php _e('Show features'); ?></a><span style="color:#3176FD;font-size: 18px;" class="dashicons dashicons-arrow-down-alt"></span>
24 </div>
25 <div style="float:right;">
26 <a class="wt-view-plugin" href="<?php echo esc_url("https://www.webtoffee.com/product/order-import-export-plugin-for-woocommerce/?utm_source=free_plugin_revamp&utm_medium=basic_revamp&utm_campaign=Order_Import_Export&utm_content=" . WT_U_IEW_VERSION); ?>"><?php _e('View plugin'); ?> <span style="font-size: 18px;" class="dashicons dashicons-arrow-right-alt"></span></a>
27 </div>
28 </div>
29
30 <div class="wt-ier-product-features wt-ier-gopro-cta-small wt-ierpro-features wt-ier-gopro-cta-small-order wt-ier-gopro-cta-small-coupon wt-ier-gopro-cta-small-subscription" style="display:none;">
31 <ul class="ticked-list wt-ierpro-allfeat">
32 <li><?php _e('Import & export in Excel, XML, CSV, and TSV formats'); ?></li>
33 <li><?php _e('Advanced filters and customizations for better control'); ?></li>
34 <li><?php _e('Customize and send emails to new users on import'); ?></li>
35 <li><?php _e('Export and import custom fields and third-party plugin fields '); ?></li>
36 <li><?php _e('Schedule automated import & export '); ?></li>
37 </ul>
38 </div>
39 </div>
40 </div>
41 </div>
42
43 <div class="wt-import-export-upsell-small-wrapper market-box table-box-main wt-ier-advt-product wt-ier-advt-product_categories wt-ier-advt-product_review wt-ier-advt-product_tags" style="display:none;">
44 <div class="ier-premium-upgrade wt-ierpro-sidebar">
45 <div class="wt-ierpro-header">
46 <div class="wt-ierpro-name-small">
47 <img src="<?php echo WT_U_IEW_PLUGIN_URL; ?>assets/images/gopro/product-ie.svg" alt="featured img" width="36" height="36">
48 <h4 class="wt-ier-product-name-small"><?php _e('Product Import Export Plugin For WooCommerce'); ?></h4>
49 </div>
50
51 <p class="wt-ierpro-name-small-p"><?php _e('Get the most from premium version Get the most from premium version'); ?></p>
52 <div class="wt-hide-features-view-plugin">
53 <div style="float:left;margin-left: 5px;margin-right: 75px;">
54 <a class="wt-hide-features wt-hide-features-post-types wt-hide-features-product wt-hide-features-product_categories wt-hide-features-prroduct_tags wt-hide-features-prroduct_review" href="#"><?php _e('Show features'); ?></a><span style="color:#3176FD;font-size: 18px;" class="dashicons dashicons-arrow-down-alt"></span>
55 </div>
56 <div style="float:right;">
57 <a class="wt-view-plugin" href="<?php echo esc_url("https://www.webtoffee.com/product/product-import-export-woocommerce/?utm_source=free_plugin_revamp&utm_medium=basic_revamp&utm_campaign=Product_Import_Export&utm_content=" . WT_U_IEW_VERSION); ?>"><?php _e('View plugin'); ?> <span style="font-size: 18px;" class="dashicons dashicons-arrow-right-alt"></span></a>
58 </div>
59 </div>
60
61 <div class="wt-ier-product-features wt-ier-gopro-cta-small wt-ierpro-features wt-ier-gopro-cta-small-product wt-ier-gopro-cta-small-product_review wt-ier-gopro-cta-small-product_tags wt-ier-gopro-cta-small-product_categories" style="display:none;">
62 <ul class="ticked-list wt-ierpro-allfeat">
63 <li><?php _e('Export and import variable products, subscription'); ?></li>
64 <li><?php _e('Import & export in Excel, XML, CSV, and TSV formats'); ?></li>
65 <li><?php _e('Schedule automated import & export'); ?></li>
66 <li><?php _e('Advanced filters and customizations for better control'); ?></li>
67 <li><?php _e('Export product images in a separate zip file'); ?></li>
68 </ul>
69 </div>
70 </div>
71 </div>
72 </div>
73
74 <div class="wt-import-export-upsell-small-wrapper market-box table-box-main wt-ier-advt-user">
75 <div class="ier-premium-upgrade wt-ierpro-sidebar">
76 <div class="wt-ierpro-header">
77 <div class="wt-ierpro-name-small">
78 <img src="<?php echo WT_U_IEW_PLUGIN_URL; ?>assets/images/gopro/user-ie.svg" alt="featured img" width="36" height="36">
79 <h4 class="wt-ier-product-name-small"><?php _e('WordPress Users & WooCommerce Customers Import Export'); ?></h4>
80 </div>
81
82 <p class="wt-ierpro-name-small-p"><?php _e('Get the most from premium version Get the most from premium version'); ?></p>
83 <div class="wt-hide-features-view-plugin">
84 <div style="float:left;margin-left: 5px;margin-right: 75px;">
85 <a class="wt-hide-features wt-hide-features-post-types wt-hide-features-user" href="#"><?php _e('Show features'); ?></a><span style="color:#3176FD;font-size: 18px;" class="dashicons dashicons-arrow-down-alt"></span>
86 </div>
87 <div style="float:right;">
88 <a class="wt-view-plugin" href="<?php echo esc_url("https://www.webtoffee.com/product/wordpress-users-woocommerce-customers-import-export/?utm_source=free_plugin_revamp&utm_medium=basic_revamp&utm_campaign=User_Import_Export&utm_content=" . WT_U_IEW_VERSION); ?>"><?php _e('View plugin'); ?> <span style="font-size: 18px;" class="dashicons dashicons-arrow-right-alt"></span></a>
89 </div>
90 </div>
91
92 <div class="wt-ier-product-features wt-ier-gopro-cta-small wt-ierpro-features wt-ier-gopro-cta-small-user" style="display:none;">
93 <ul class="ticked-list wt-ierpro-allfeat">
94 <li><?php _e('Import & export in Excel, XML, CSV, and TSV formats'); ?></li>
95 <li><?php _e('Advanced filters and customizations for better control'); ?></li>
96 <li><?php _e('Customize and send emails to new users on import'); ?></li>
97 <li><?php _e('Export and import custom fields and third-party plugin fields '); ?></li>
98 <li><?php _e('Schedule automated import & export '); ?></li>
99 </ul>
100 </div>
101 </div>
102 </div>
103 </div>
104 </div>
105
106
107 <p style="font-size:16px;font-weight:500;margin-top: -200px;padding:2px 4px;" class="wt-you-may-like"><?php _e('Want to export/import all WooCommerce data?'); ?></p>
108 <div class="wt-ierpro-header">
109 <div class="wt-ierpro-name">
110 <div style="float: left"><img src="<?php echo WT_U_IEW_PLUGIN_URL; ?>assets/images/gopro/suite.svg" alt="featured img" width="36" height="36"></div>
111 <div style="float: right">
112 <h4 class="wt-ier-product-name"><?php _e('Import Export Suite for WooCommerce'); ?></h4>
113 </div>
114 </div>
115 <div class="wt-ier-all-in-one-text">
116 <p class="wt-ier-all-in-one-text-sp"><?php esc_html_e('An All-In-One Plugin To Import & Export All Your WooCommerce Store Data'); ?></p>
117 </div>
118
119 <div class="wt-ier-order wt-ier-coupon wt-ier-gopro-cta wt-ierpro-features">
120 <div class="wt-ier-suite-main-points">
121 <div class="wt-ier-suite-sub-points-left" style="float:left;">
122 <ul class="ticked-list wt-ierpro-allfeat">
123 <li><?php _e('Products'); ?></li>
124 <li><?php _e('Orders '); ?></li>
125 <li><?php _e('Subscriptions '); ?></li>
126 <li><?php _e('Coupons '); ?></li>
127 </ul>
128 </div>
129 <div class="wt-ier-suite-sub-points-right" style="float: right;">
130 <ul class="ticked-list wt-ierpro-allfeat">
131 <li><?php _e('Customers'); ?></li>
132 <li><?php _e('WordPress Users'); ?></li>
133 <li><?php _e('Categories & Tags '); ?></li>
134 <li><?php _e('Reviews'); ?></li>
135 </ul>
136 </div>
137 </div>
138 </div>
139
140 <div class="wt-ierpro-mainfeatures">
141 <div class="wt-ierpro-btn-wrapper">
142 <a href="<?php echo esc_url("https://www.webtoffee.com/product/woocommerce-import-export-suite/?utm_source=free_plugin_revamp&utm_medium=basic_revamp&utm_campaign=Import_Export_Suite&utm_content=" . WT_U_IEW_VERSION); ?>" class="wt-ierpro-blue-btn-suite" target="_blank"><?php _e('GET THE PLUGIN'); ?> <span style="font-size: 18px;" class="dashicons dashicons-arrow-right-alt"></span></a>
143 </div>
144 </div>
145
146 </div>
147
148 <div class="wt-cs-rating-money-back">
149 <div class="wt-money-back">
150 <img src="<?php echo WT_U_IEW_PLUGIN_URL; ?>assets/images/upgrade/wt-money-back.svg" alt="alt"/>
151 <p><?php echo sprintf(__('You are covered by our %s 30-day money back guarantee %s'), '<b>', '</b>'); ?></p>
152 </div>
153 <div class="wt-cs-rating">
154 <img src="<?php echo WT_U_IEW_PLUGIN_URL; ?>assets/images/upgrade/wt-satisfaction-rating.svg"" alt="alt"/>
155 <p><?php echo sprintf(__('Supported by a team with %s %s customer satisfaction %s score'), '<b>', '99%', '</b>'); ?></p>
156 </div>
157 </div>
158
159 </div>
160 </div>
...\ No newline at end of file ...\ No newline at end of file
1 <svg width="18" height="15" viewBox="0 0 18 15" fill="none" xmlns="http://www.w3.org/2000/svg">
2 <path d="M16.3764 1.74463C15.5229 1.76076 14.814 2.59947 14.8574 3.55108C14.8718 4.08334 15.1033 4.53495 15.4505 4.8414C13.6566 7.51882 11.8338 7.7285 9.72168 3.29302C10.4739 2.87366 10.8935 1.80915 10.3437 0.744629C10.0833 0.2285 9.54807 -0.0295643 9.0128 0.00269373C8.99834 0.00269373 8.99834 0.00269373 8.98387 0.00269373C8.98387 0.00269373 8.9694 0.00269373 8.95494 0.00269373C8.41967 -0.0134353 7.89886 0.2285 7.62399 0.744629C7.07426 1.80915 7.49379 2.87366 8.24606 3.29302C6.13391 7.7285 4.3111 7.51882 2.51722 4.8414C2.86442 4.53495 3.09589 4.06721 3.11036 3.55108C3.13929 2.59947 2.44489 1.76076 1.59135 1.74463C0.708872 1.7285 0 2.50269 0 3.48656C0 4.43818 0.694405 5.2285 1.56241 5.2285C1.62028 5.2285 1.69261 5.2285 1.75048 5.21237L2.34362 11.6962C2.38702 12.2124 2.77762 12.5995 3.24056 12.5995H8.98387H14.7272C15.1901 12.5995 15.5807 12.2124 15.6241 11.6962L16.2173 5.21237C16.2751 5.2285 16.333 5.2285 16.4053 5.2285C17.2589 5.2285 17.9677 4.45431 17.9677 3.48656C17.9677 2.50269 17.2444 1.7285 16.3764 1.74463Z" fill="#007FFF"/>
3 <rect x="2.45898" y="13.5484" width="13.0201" height="1.45161" rx="0.725806" fill="#007FFF"/>
4 </svg>
1 <svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
2 <g clip-path="url(#clip0)">
3 <path d="M7.91834 15.111C7.26143 14.9525 6.59362 14.8298 5.95033 14.6273C5.03053 14.3379 4.23313 13.8144 3.51161 13.1736C3.06407 12.7767 2.99422 12.3332 3.32053 11.9597C3.6414 11.5925 4.09127 11.6048 4.54173 11.9936C7.72881 14.7437 12.5037 13.634 14.0049 9.74467C14.9177 7.37984 14.4799 5.17853 12.7137 3.37231C10.921 1.53982 8.70854 1.07238 6.33521 2.0102C4.04574 2.91488 2.808 4.70443 2.59512 7.18788C2.58617 7.29259 2.59395 7.39886 2.59395 7.54787C2.81111 7.54787 3.00006 7.53082 3.18472 7.5518C3.51784 7.58944 3.68908 7.9012 3.50247 8.17923C3.0526 8.84784 2.58676 9.50664 2.09991 10.1484C1.90533 10.4043 1.63291 10.3752 1.44339 10.1184C0.981639 9.49095 0.527488 8.85842 0.0927893 8.21236C-0.122225 7.89296 0.0538711 7.57983 0.441481 7.54905C0.615049 7.53532 0.790565 7.54669 0.909649 7.54669C1.07135 6.74025 1.15754 5.95851 1.38735 5.22402C2.42273 1.91314 5.57673 -0.247975 8.98621 0.0224092C12.6662 0.314557 15.4407 2.97075 15.9252 6.53202C15.9379 6.62515 15.9745 6.71476 16 6.80652V8.28668C15.9745 8.37765 15.9396 8.46707 15.9249 8.55981C15.4802 11.357 13.9827 13.3595 11.4041 14.48C10.6695 14.799 9.84472 14.9071 9.06113 15.1118L7.91834 15.111Z" fill="#007FFF"/>
4 <path d="M8.97734 10.9693C8.91897 11.4006 9.09682 11.9553 8.44341 12.0555C8.08226 12.1108 7.95112 11.8724 7.83553 11.0428C7.46583 10.9699 7.09184 10.9126 6.72641 10.8189C6.26077 10.6995 6.04906 10.3722 6.15219 9.98459C6.2631 9.56754 6.58864 9.44441 7.093 9.54538C7.54232 9.63625 7.99916 9.68405 8.45742 9.68813C8.81254 9.69009 9.14021 9.52519 9.21104 9.12501C9.28304 8.71737 8.99953 8.49758 8.68216 8.33935C8.45236 8.22406 8.20407 8.14661 7.96882 8.04131C7.63472 7.89191 7.28427 7.76681 6.97644 7.57172C5.74512 6.79331 5.78268 5.14709 7.04513 4.41398C7.31113 4.25947 7.61196 4.16575 7.9194 4.03418C7.95676 3.63772 7.82717 3.11108 8.45489 3.0303C8.79892 2.98598 8.92403 3.20048 9.05596 3.97007C9.35775 4.02438 9.66734 4.05987 9.96583 4.13869C10.3665 4.24437 10.5523 4.58103 10.4478 4.952C10.3527 5.28983 10.0314 5.43806 9.63523 5.37355C9.24918 5.31081 8.85573 5.25591 8.46637 5.2616C8.14667 5.26552 7.83534 5.38943 7.76587 5.76785C7.70166 6.11765 7.94937 6.30137 8.21128 6.42666C8.73665 6.67861 9.29102 6.87488 9.80686 7.14428C10.7103 7.61486 11.0609 8.36954 10.8576 9.31893C10.7214 9.95263 10.3299 10.3895 9.76424 10.6677C9.52373 10.7865 9.26143 10.8622 8.97734 10.9693Z" fill="#007FFF"/>
5 </g>
6 <defs>
7 <clipPath id="clip0">
8 <rect width="16" height="15.1111" fill="white"/>
9 </clipPath>
10 </defs>
11 </svg>
1 <svg width="43" height="21" viewBox="0 0 43 21" fill="none" xmlns="http://www.w3.org/2000/svg">
2 <rect x="6" width="36.1395" height="21" rx="2" fill="#6E6ADD"/>
3 <path d="M0 9.8125L6 5V16L0 9.8125Z" fill="#6E6ADD"/>
4 </svg>
1 <svg width="76" height="76" viewBox="0 0 76 76" fill="none" xmlns="http://www.w3.org/2000/svg">
2 <g clip-path="url(#clip0_214:471)">
3 <rect width="76" height="76" rx="5" fill="white"/>
4 <path d="M70.9062 -1H5.09375C1.72826 -1 -1 1.72826 -1 5.09375V70.9062C-1 74.2717 1.72826 77 5.09375 77H70.9062C74.2717 77 77 74.2717 77 70.9062V5.09375C77 1.72826 74.2717 -1 70.9062 -1Z" fill="#1E9BE9"/>
5 <path d="M26.2824 16.7548H23.9074C22.9723 16.7548 22.4052 17.3188 22.4052 18.2391V52.264C22.4052 53.2258 22.9663 53.778 23.9371 53.778C26.9652 53.778 34.4613 53.778 37.4924 53.778V56.5479C34.3752 56.5479 26.9147 56.5479 23.7976 56.533C21.7818 56.5093 20.336 55.3218 19.7363 53.306C19.7126 53.2288 19.7363 53.1249 19.6354 53.0893V17.4435C19.8521 15.9324 20.7249 14.926 22.0579 14.258C22.4141 14.0799 22.803 14.1037 23.1682 13.9998H26.2824V16.7548Z" fill="white"/>
6 <path d="M42.5927 16.752H44.0948C44.368 16.752 44.4511 16.8143 44.4481 17.0993C44.4333 18.75 44.4481 20.4006 44.4481 22.0512C44.4481 23.877 45.6059 25.02 47.4406 25.02C49.0912 25.02 50.7419 25.02 52.3925 25.02C52.6567 25.02 52.728 25.0823 52.722 25.3495C52.722 26.5103 52.722 46.3682 52.722 46.3682L55.4919 46.3207C55.4919 46.3207 55.4652 25.6048 55.4919 24.0106C55.5059 23.7114 55.4541 23.4129 55.3403 23.1359C55.2264 22.8589 55.0532 22.6103 54.8328 22.4075C52.2836 19.884 49.7454 17.3477 47.218 14.7986C46.9208 14.4746 46.5692 14.2053 46.1789 14.0029H42.6164L42.5927 16.752Z" fill="white"/>
7 <path d="M36.3614 16.7548H32.3001V13.9998H36.3614V16.7548Z" fill="white"/>
8 <path d="M30.6315 8.45735C31.1866 8.70079 31.3796 9.11938 31.3796 9.72204C31.3648 14.4334 31.3796 15.3181 31.3618 20.0266C31.3618 20.3234 31.4509 20.3769 31.718 20.3709C32.5374 20.3709 33.3568 20.3709 34.1762 20.3709C34.3885 20.3491 34.6023 20.3947 34.7873 20.5012C34.9722 20.6078 35.1188 20.77 35.2063 20.9647C35.2881 21.1481 35.3125 21.352 35.2765 21.5496C35.2405 21.7471 35.1457 21.9292 35.0045 22.072C33.4211 23.974 31.8378 25.877 30.2545 27.7809C29.7438 28.3895 29.0966 28.3895 28.589 27.7809C26.9859 25.8671 25.3857 23.9483 23.7885 22.0245C23.6555 21.8809 23.5681 21.701 23.5374 21.5077C23.5067 21.3143 23.5342 21.1162 23.6162 20.9385C23.6982 20.7607 23.8312 20.6114 23.9982 20.5093C24.1653 20.4072 24.3589 20.357 24.5545 20.365C25.4065 20.365 26.2555 20.365 27.1046 20.365C27.3748 20.365 27.4609 20.3145 27.4609 20.0206C27.4609 15.3122 27.4609 14.4275 27.4609 9.7161C27.4609 9.12235 27.6509 8.69485 28.206 8.45142L30.6315 8.45735Z" fill="white"/>
9 <path d="M38.297 22.82C37.7418 22.5796 37.5489 22.158 37.5489 21.5554C37.5667 16.8439 37.5489 16.5085 37.5667 11.7852C37.5667 11.4883 37.4806 11.4349 37.2104 11.4408C36.3911 11.4586 35.5717 11.4408 34.7523 11.4408C34.5417 11.4639 34.3291 11.4205 34.1443 11.3167C33.9596 11.2129 33.812 11.0538 33.7222 10.8619C33.6364 10.6742 33.6106 10.4645 33.6483 10.2616C33.686 10.0586 33.7854 9.87225 33.9329 9.72785C35.5212 7.82785 37.1036 5.91895 38.6829 4.01895C39.1936 3.41035 39.8407 3.41035 40.3514 4.01895C41.9545 5.93676 43.5537 7.85556 45.1489 9.77535C45.2814 9.91935 45.3684 10.0994 45.3989 10.2927C45.4293 10.4861 45.4019 10.6841 45.32 10.8619C45.2381 11.0396 45.1054 11.1892 44.9386 11.2917C44.7719 11.3942 44.5785 11.445 44.3829 11.4379C43.5339 11.4379 42.6818 11.4379 41.8328 11.4379C41.5626 11.4379 41.4765 11.4913 41.4765 11.7822C41.4765 16.4907 41.4765 16.8291 41.4765 21.5524C41.4765 22.1461 41.2865 22.5766 40.7314 22.8171L38.297 22.82Z" fill="white"/>
10 <path d="M34.6839 41.1907H14.7488C13.1616 41.1907 11.875 42.4773 11.875 44.0644V62.061C11.875 63.6481 13.1616 64.9347 14.7488 64.9347H34.6839C36.271 64.9347 37.5577 63.6481 37.5577 62.061V44.0644C37.5577 42.4773 36.271 41.1907 34.6839 41.1907Z" fill="white"/>
11 <path d="M62.7623 41.5625H43.4803C42.913 41.5625 42.4531 42.0224 42.4531 42.5897V50.3916C42.4531 50.9589 42.913 51.4188 43.4803 51.4188H62.7623C63.3296 51.4188 63.7895 50.9589 63.7895 50.3916V42.5897C63.7895 42.0224 63.3296 41.5625 62.7623 41.5625Z" fill="white"/>
12 <path d="M46.5587 49.5038C46.2104 49.3174 45.9291 49.0268 45.7542 48.6726C45.5572 48.2639 45.4615 47.8138 45.4751 47.3604V45.5791C45.4616 45.1247 45.5573 44.6737 45.7542 44.264C45.9291 43.9098 46.2104 43.6191 46.5587 43.4327C46.9513 43.2277 47.3895 43.1256 47.8323 43.1358C48.2149 43.1298 48.5927 43.2207 48.9307 43.4C49.2583 43.5839 49.5332 43.8486 49.7293 44.169C49.9536 44.542 50.1019 44.9556 50.1657 45.3861H48.8921C48.8526 45.1904 48.7782 45.0034 48.6724 44.834C48.5797 44.6914 48.4558 44.5716 48.3103 44.4836C48.164 44.4031 47.9992 44.3622 47.8323 44.3649C47.6255 44.3578 47.4205 44.406 47.2385 44.5044C47.0759 44.6004 46.9472 44.7446 46.8704 44.9171C46.7798 45.1226 46.7361 45.3457 46.7428 45.5702V47.3515C46.7362 47.574 46.7799 47.7952 46.8704 47.9986C46.9467 48.1707 47.0756 48.3141 47.2385 48.4083C47.4197 48.5092 47.6251 48.5585 47.8323 48.5508C48.0012 48.5539 48.1679 48.513 48.3162 48.4321C48.4636 48.3477 48.5879 48.2284 48.6784 48.0847C48.7833 47.9145 48.8558 47.7263 48.8921 47.5296H50.1598C50.0922 47.96 49.942 48.3734 49.7174 48.7468C49.5232 49.0669 49.249 49.3308 48.9218 49.5127C48.5855 49.6938 48.2082 49.7848 47.8263 49.7769C47.3877 49.7921 46.9522 49.6983 46.5587 49.5038V49.5038Z" fill="#007FFF"/>
13 <path d="M52.4219 49.6938C52.1332 49.6341 51.8523 49.5414 51.5847 49.4177C51.333 49.3019 51.0967 49.1553 50.8811 48.9813L51.4511 47.969C51.7104 48.1787 52.0049 48.3405 52.3209 48.4469C52.6471 48.5571 52.989 48.6133 53.3333 48.6132C53.6569 48.631 53.9792 48.5601 54.2655 48.4083C54.3677 48.3523 54.4525 48.2691 54.5106 48.1681C54.5687 48.067 54.5979 47.9519 54.595 47.8354V47.8354C54.5991 47.7604 54.5884 47.6853 54.5634 47.6145C54.5385 47.5437 54.4998 47.4785 54.4495 47.4227C54.3418 47.317 54.209 47.2404 54.0636 47.2001C53.8638 47.1433 53.6605 47.0997 53.455 47.0694H53.4253H53.4016H53.3036C52.9355 47.0172 52.5728 46.9317 52.22 46.8141C51.929 46.7078 51.6752 46.5191 51.4897 46.2708C51.2708 45.9481 51.1663 45.5614 51.1928 45.1724V45.1724C51.1849 44.792 51.288 44.4175 51.4897 44.0947C51.6862 43.7877 51.9722 43.5483 52.3091 43.409C52.7211 43.2434 53.1625 43.1636 53.6064 43.1744C53.8471 43.1752 54.087 43.2021 54.3219 43.2546C54.5673 43.3098 54.8069 43.3884 55.0374 43.4891C55.2697 43.5895 55.4915 43.7128 55.6994 43.8572L55.1799 44.8963C54.9373 44.7264 54.6726 44.5905 54.3931 44.4926C54.1408 44.4009 53.8748 44.3528 53.6064 44.3501C53.3043 44.3325 53.0029 44.3961 52.7336 44.5341C52.6421 44.5869 52.5664 44.6632 52.5142 44.755C52.462 44.8469 52.4353 44.951 52.4367 45.0566V45.0566C52.4323 45.1382 52.4442 45.2199 52.4717 45.2969C52.4992 45.3739 52.5419 45.4446 52.597 45.5049C52.7093 45.6155 52.8469 45.697 52.9978 45.7424C53.2163 45.809 53.4383 45.8635 53.6628 45.9057H53.6984H53.737H53.7875H53.838C54.1915 45.9697 54.5376 46.0691 54.8711 46.2026C55.1498 46.318 55.3898 46.5106 55.5628 46.7577C55.7649 47.0674 55.8627 47.4335 55.8419 47.8027C55.8507 48.1795 55.7473 48.5505 55.545 48.8685C55.3375 49.1753 55.0413 49.4114 54.6959 49.5454C54.2681 49.7096 53.8122 49.7883 53.3541 49.7769C53.0413 49.7823 52.7288 49.7545 52.4219 49.6938V49.6938Z" fill="#007FFF"/>
14 <path d="M56.1716 43.2072H57.4363L58.8198 47.5504L60.2062 43.2072H61.4679L59.3007 49.7147H58.3418L56.1716 43.2072Z" fill="#007FFF"/>
15 <path d="M20.9449 44.5312H14.5469V48.5417H17.96V58.4844H28.9794V48.7421H32.3594V44.5312H25.8772C25.6196 44.9467 25.2628 45.2904 24.8394 45.531C24.4159 45.7716 23.9395 45.9014 23.4534 45.9086C22.9674 45.9157 22.4874 45.8 22.0572 45.572C21.627 45.3439 21.2603 45.0109 20.9908 44.6032L20.9449 44.5312Z" fill="#26A8F6"/>
16 <rect x="24.1078" y="52.782" width="9.32434" height="9.55177" fill="white"/>
17 <path d="M34.5269 52.1475H23.1557V55.5588H23.7243V61.8129C23.7243 62.1145 23.8441 62.4038 24.0573 62.617C24.2706 62.8303 24.5598 62.9501 24.8614 62.9501H32.8212C33.1228 62.9501 33.412 62.8303 33.6252 62.617C33.8385 62.4038 33.9583 62.1145 33.9583 61.8129V55.5588H34.5269V52.1475ZM24.2928 53.2846H33.3897V54.4217H24.2928V53.2846ZM32.8212 61.8129H24.8614V55.5588H32.8212V61.8129ZM29.4098 56.1274V59.0668L30.8824 57.5999L31.6841 58.4016L28.8413 61.2444L25.9985 58.4016L26.8002 57.5942L28.2727 59.0668V56.1274H29.4098Z" fill="#358CDB"/>
18 <path fill-rule="evenodd" clip-rule="evenodd" d="M53.0575 55.5157L53.0575 53.1407L55.8125 53.1407L55.8125 56.2549C55.7722 56.3967 55.7511 56.542 55.7299 56.6876C55.6966 56.9171 55.6632 57.1473 55.5542 57.3652C54.8863 58.6982 53.8798 59.571 52.3688 59.7877L35.9219 59.7877L35.9219 57.0179L51.5731 57.0179C52.4934 57.0179 53.0575 56.4508 53.0575 55.5157Z" fill="white"/>
19 <rect x="33.5469" y="30.2812" width="15.4375" height="2.375" rx="1.1875" fill="white"/>
20 <rect x="33.5469" y="34.4375" width="11.5781" height="2.375" rx="1.1875" fill="white"/>
21 </g>
22 <defs>
23 <clipPath id="clip0_214:471">
24 <rect width="76" height="76" rx="5" fill="white"/>
25 </clipPath>
26 </defs>
27 </svg>
1 <svg width="76" height="76" viewBox="0 0 76 76" fill="none" xmlns="http://www.w3.org/2000/svg">
2 <g clip-path="url(#clip0_214:534)">
3 <rect width="76" height="76" rx="5" fill="white"/>
4 <path d="M70.8281 -1H4.17188C2.53499 -1 0.965152 -0.349751 -0.1923 0.8077C-1.34975 1.96515 -2 3.53499 -2 5.17188L-2 71.8281C-2 73.465 -1.34975 75.0348 -0.1923 76.1923C0.965152 77.3498 2.53499 78 4.17188 78H70.8281C72.465 78 74.0348 77.3498 75.1923 76.1923C76.3498 75.0348 77 73.465 77 71.8281V5.17188C77 3.53499 76.3498 1.96515 75.1923 0.8077C74.0348 -0.349751 72.465 -1 70.8281 -1Z" fill="#5351D4"/>
5 <path fill-rule="evenodd" clip-rule="evenodd" d="M23.8494 14.3173C24.0525 14.1141 24.328 14 24.6153 14H44.9793C45.5775 14 46.0625 14.485 46.0625 15.0832V18.1161H43.8961V16.1664H25.064L16.1664 25.064V55.1613H22.8822V57.3277H15.0832C14.485 57.3277 14 56.8427 14 56.2445V24.6153C14 24.328 14.1141 24.0525 14.3173 23.8494L23.8494 14.3173ZM30.0312 20.7158C30.0312 20.1176 30.5162 19.6326 31.1144 19.6326H51.4785C51.7741 19.6326 52.0569 19.7534 52.2612 19.9671L61.7933 29.9324C61.9861 30.134 62.0937 30.4022 62.0937 30.6812V61.0106C62.0937 61.6088 61.6088 62.0938 61.0106 62.0938H35.8805V59.9274H59.9274V31.1158L51.0156 21.799H32.1976V29.8146H30.0312V20.7158Z" fill="white"/>
6 <path fill-rule="evenodd" clip-rule="evenodd" d="M50.6429 30.9251V21.1567H52.7462V29.815H60.9487V32.0351H51.6946C51.1138 32.0351 50.6429 31.5381 50.6429 30.9251Z" fill="white"/>
7 <path fill-rule="evenodd" clip-rule="evenodd" d="M26.3096 25.1412V14.8588H24.0311V23.9727H15.145V26.3097H25.1704C25.7996 26.3097 26.3096 25.7865 26.3096 25.1412Z" fill="white"/>
8 <path fill-rule="evenodd" clip-rule="evenodd" d="M26.403 43.0528L26.403 51.3127L23.8694 51.3127C23.467 51.3127 23.1042 51.5527 22.9502 51.9208C22.7962 52.289 22.8813 52.7127 23.1658 52.9944L30.3296 60.0876C30.7182 60.4724 31.3481 60.4724 31.7367 60.0876L38.9005 52.9944C39.185 52.7127 39.2701 52.289 39.1161 51.9208C38.9621 51.5527 38.5989 51.3127 38.1965 51.3127L35.6414 51.3127L35.6414 43.0528C35.6414 42.0273 34.7973 41.1959 33.756 41.1959L28.2884 41.1959C27.2471 41.1959 26.403 42.0273 26.403 43.0528Z" fill="white"/>
9 <path fill-rule="evenodd" clip-rule="evenodd" d="M46.5417 43.6332L46.5417 35.3732L49.0753 35.3732C49.4777 35.3732 49.8405 35.1332 49.9945 34.7651C50.1485 34.397 50.0634 33.9732 49.7789 33.6915L42.6151 26.5983C42.2265 26.2136 41.5966 26.2136 41.208 26.5983L34.0442 33.6915C33.7597 33.9732 33.6746 34.397 33.8286 34.7651C33.9826 35.1332 34.3458 35.3732 34.7482 35.3732L37.3033 35.3732L37.3033 43.6332C37.3033 44.6587 38.1474 45.49 39.1887 45.49L44.6563 45.49C45.6976 45.49 46.5417 44.6587 46.5417 43.6332Z" fill="white"/>
10 </g>
11 <defs>
12 <clipPath id="clip0_214:534">
13 <rect width="76" height="76" rx="5" fill="white"/>
14 </clipPath>
15 </defs>
16 </svg>
1 <svg width="17" height="16" viewBox="0 0 17 16" fill="none" xmlns="http://www.w3.org/2000/svg">
2 <g clip-path="url(#clip0)">
3 <path d="M3.14868 7.11195C3.13058 7.27931 3.10619 7.43562 3.09675 7.59192C3.01648 8.7898 3.29751 9.98418 3.90327 11.0196C4.40986 11.9003 5.13497 12.6346 6.00811 13.151C6.77239 13.6081 7.63064 13.8841 8.51739 13.9578C9.74326 14.0676 10.9722 13.7837 12.0268 13.1471C12.933 12.6138 13.6867 11.8549 14.215 10.9438C14.5699 10.3399 14.791 9.68547 14.9704 9.01367C15.0436 8.73737 15.1718 8.6687 15.4425 8.74528C15.8532 8.86132 16.2648 8.9742 16.6747 9.09182C16.8856 9.15261 16.9611 9.28682 16.9108 9.49365C16.6503 10.5412 16.26 11.5319 15.6424 12.4232C14.525 14.0344 13.0418 15.1554 11.1573 15.6803C8.55201 16.405 6.16627 15.8919 4.0512 14.2199C2.58608 13.061 1.67333 11.5272 1.26416 9.69888C1.03987 8.7099 1.01552 7.68584 1.19256 6.68725C1.21065 6.58541 1.17997 6.5491 1.08397 6.52462C0.809358 6.45436 0.537896 6.37306 0.266431 6.29491C-0.0239181 6.21202 -0.0852938 5.97282 0.132665 5.75889C1.05748 4.84842 1.98361 3.939 2.91105 3.03064C3.11563 2.83013 3.35955 2.89249 3.43037 3.16721C3.75823 4.43713 4.08373 5.7081 4.40686 6.98012C4.47453 7.24458 4.28883 7.41905 4.02209 7.348C3.78052 7.28327 3.53975 7.21301 3.29818 7.14591C3.2549 7.13328 3.20848 7.12537 3.14868 7.11195Z" fill="#007FFF" stroke="white" stroke-width="0.25"/>
4 <path d="M8.47776 6.22241e-05C8.70044 -0.007832 8.81375 0.0932141 8.83499 0.315831C8.87591 0.756329 8.91788 1.19656 8.96089 1.63653C8.9845 1.87336 8.88221 2.00835 8.64143 2.03124C8.53048 2.0423 8.41953 2.05492 8.30859 2.06123C8.104 2.07386 7.98126 1.98782 7.95922 1.78731C7.90677 1.31049 7.86218 0.833166 7.82546 0.355302C7.8113 0.172946 7.9191 0.0624212 8.10401 0.034002H8.13154L8.47776 6.22241e-05Z" fill="#007FFF" stroke="white" stroke-width="0.25"/>
5 <path d="M14.9365 7.04011C14.9365 6.82302 15.0097 6.71408 15.1954 6.68645C15.6675 6.61804 16.1396 6.55568 16.6117 6.49937C16.65 6.49314 16.6892 6.49491 16.7268 6.50457C16.7643 6.51424 16.7995 6.53158 16.8301 6.55551C16.8607 6.57945 16.886 6.60947 16.9045 6.64369C16.923 6.6779 16.9342 6.71558 16.9375 6.75435C16.9616 6.88698 16.9805 7.02038 16.9941 7.15458C17.0122 7.34956 16.9273 7.47036 16.7337 7.50193C16.2663 7.57035 15.7976 7.63244 15.3276 7.68823C15.1348 7.71112 15.0184 7.61719 14.9829 7.42299C14.9617 7.28642 14.9499 7.14669 14.9365 7.04011Z" fill="#007FFF" stroke="white" stroke-width="0.25"/>
6 <path d="M5.95115 2.8419C5.87954 2.78507 5.77174 2.73769 5.72689 2.65559C5.49634 2.23641 5.27838 1.81013 5.06357 1.38226C5.04352 1.34909 5.03062 1.31206 5.02569 1.27358C5.02077 1.2351 5.02393 1.19601 5.03497 1.15883C5.04602 1.12165 5.0647 1.08719 5.08982 1.05769C5.11494 1.02819 5.14593 1.0043 5.18081 0.987552C5.3079 0.911818 5.43927 0.843543 5.57424 0.783085C5.60605 0.76516 5.64119 0.753999 5.67748 0.750282C5.71377 0.746565 5.75044 0.750373 5.7852 0.76148C5.81996 0.772586 5.85207 0.790739 5.87954 0.814827C5.907 0.838916 5.92924 0.868421 5.94485 0.901498C6.1754 1.33173 6.40202 1.76355 6.61368 2.20326C6.63228 2.24901 6.64012 2.29847 6.63657 2.34776C6.63302 2.39705 6.61819 2.44485 6.59322 2.48745C6.43821 2.66981 6.20609 2.74007 5.95115 2.8419Z" fill="#007FFF" stroke="white" stroke-width="0.25"/>
7 <path d="M16.1737 4.42399C16.1139 4.50293 16.0675 4.60397 15.9864 4.65212C15.5804 4.89447 15.1673 5.12578 14.7519 5.35314C14.7199 5.37427 14.6838 5.38842 14.646 5.39469C14.6082 5.40096 14.5695 5.3992 14.5324 5.38952C14.4953 5.37985 14.4607 5.36249 14.4307 5.33855C14.4008 5.3146 14.3761 5.2846 14.3584 5.25051C14.2779 5.12549 14.2049 4.99579 14.1397 4.8621C14.1207 4.83084 14.1082 4.79601 14.1032 4.75974C14.0981 4.72347 14.1005 4.68653 14.1102 4.65123C14.12 4.61593 14.1368 4.58302 14.1598 4.55452C14.1827 4.52602 14.2112 4.50256 14.2436 4.48556C14.6685 4.2369 15.0957 3.99374 15.5301 3.76402C15.5732 3.7452 15.6202 3.73675 15.6672 3.73935C15.7142 3.74196 15.7599 3.75554 15.8007 3.77902C15.9841 3.9369 16.0746 4.16111 16.1737 4.42399Z" fill="#007FFF" stroke="white" stroke-width="0.25"/>
8 <path d="M14.3337 2.08334C14.3032 2.16044 14.2656 2.23446 14.2211 2.30438C13.9352 2.67278 13.6467 3.03698 13.3556 3.39695C13.3334 3.43037 13.3044 3.45866 13.2705 3.47998C13.2365 3.5013 13.1985 3.51514 13.1588 3.52059C13.1192 3.52604 13.0788 3.52297 13.0405 3.51159C13.0021 3.50021 12.9665 3.48078 12.9362 3.45458C12.8188 3.37099 12.7063 3.28058 12.5994 3.18381C12.5682 3.16073 12.5421 3.13127 12.523 3.09739C12.5039 3.06351 12.4922 3.02597 12.4885 2.98721C12.4849 2.94845 12.4894 2.90936 12.5019 2.87249C12.5144 2.83563 12.5345 2.80183 12.5609 2.7733C12.852 2.39911 13.1468 2.02783 13.4453 1.65943C13.5696 1.50786 13.7191 1.49443 13.8757 1.6089C13.9863 1.68655 14.0915 1.77175 14.1904 1.86388C14.2456 1.93185 14.2936 2.0054 14.3337 2.08334V2.08334Z" fill="#007FFF" stroke="white" stroke-width="0.25"/>
9 <path d="M11.7426 0.693164C11.7198 0.772107 11.6899 0.878675 11.6584 0.985247C11.5522 1.3468 11.4483 1.70836 11.3374 2.06833C11.2587 2.31305 11.1367 2.37779 10.8944 2.30516C10.7787 2.27121 10.6583 2.242 10.5481 2.20016C10.379 2.13779 10.3066 2.0115 10.3561 1.83625C10.4868 1.37101 10.6237 0.907614 10.7669 0.446065C10.776 0.410629 10.7922 0.377428 10.8145 0.348447C10.8368 0.319467 10.8647 0.295321 10.8965 0.277465C10.9284 0.259609 10.9635 0.248401 10.9998 0.244547C11.036 0.240692 11.0727 0.244263 11.1076 0.255031C11.2562 0.289722 11.4028 0.332671 11.5467 0.383698C11.6733 0.429484 11.7402 0.524228 11.7426 0.693164Z" fill="#007FFF" stroke="white" stroke-width="0.25"/>
10 <path d="M8.53825 8.46115C9.13206 9.05446 9.82003 9.62228 10.092 9.35037C10.481 8.96145 10.7211 8.62241 11.5793 9.31212C12.4372 10.0014 11.7781 10.4612 11.4012 10.8378C10.966 11.2728 9.344 10.861 7.74075 9.25849C6.13787 7.65555 5.72711 6.03387 6.16262 5.59882C6.53962 5.22153 6.99726 4.56295 7.68673 5.42067C8.37657 6.2784 8.03784 6.51842 7.64809 6.90772C7.37726 7.17962 7.94481 7.86745 8.53825 8.46115Z" fill="#007FFF" stroke="#007FFF" stroke-width="0.5"/>
11 </g>
12 <defs>
13 <clipPath id="clip0">
14 <rect width="17" height="16" fill="white"/>
15 </clipPath>
16 </defs>
17 </svg>
1 <svg width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg">
2 <circle cx="9" cy="9" r="9" fill="#5DDF62"/>
3 <path d="M4.5 9L7.5 12L13.5 6" stroke="white" stroke-width="2.5" stroke-linecap="round"/>
4 </svg>
1 <svg width="18" height="15" viewBox="0 0 18 15" fill="none" xmlns="http://www.w3.org/2000/svg">
2 <path d="M16.3764 1.74463C15.5229 1.76076 14.814 2.59947 14.8574 3.55108C14.8718 4.08334 15.1033 4.53495 15.4505 4.8414C13.6566 7.51882 11.8338 7.7285 9.72168 3.29302C10.4739 2.87366 10.8935 1.80915 10.3437 0.744629C10.0833 0.2285 9.54807 -0.0295643 9.0128 0.00269373C8.99834 0.00269373 8.99834 0.00269373 8.98387 0.00269373C8.98387 0.00269373 8.9694 0.00269373 8.95494 0.00269373C8.41967 -0.0134353 7.89886 0.2285 7.62399 0.744629C7.07426 1.80915 7.49379 2.87366 8.24606 3.29302C6.13391 7.7285 4.3111 7.51882 2.51722 4.8414C2.86442 4.53495 3.09589 4.06721 3.11036 3.55108C3.13929 2.59947 2.44489 1.76076 1.59135 1.74463C0.708872 1.7285 0 2.50269 0 3.48656C0 4.43818 0.694405 5.2285 1.56241 5.2285C1.62028 5.2285 1.69261 5.2285 1.75048 5.21237L2.34362 11.6962C2.38702 12.2124 2.77762 12.5995 3.24056 12.5995H8.98387H14.7272C15.1901 12.5995 15.5807 12.2124 15.6241 11.6962L16.2173 5.21237C16.2751 5.2285 16.333 5.2285 16.4053 5.2285C17.2589 5.2285 17.9677 4.45431 17.9677 3.48656C17.9677 2.50269 17.2444 1.7285 16.3764 1.74463Z" fill="white"/>
3 <rect x="2.45898" y="13.5483" width="13.0201" height="1.45161" rx="0.725806" fill="white"/>
4 </svg>