PluginProbe
Import Users & Customers with Meta | WP Ultimate CSV Importer Add-on / 2.1
Import Users & Customers with Meta | WP Ultimate CSV Importer Add-on v2.1
2.1 2.0 1.7.1 1.2.9 1.3 1.4 1.4.1 1.4.2 1.4.3 1.5 1.6 1.7 trunk 1.0 1.1 1.2 1.2.1 1.2.2 1.2.3 1.2.4 1.2.5 1.2.6 1.2.7 1.2.8
← All changes | importExtensions/MediaHandling.php +458 -572 1.2.6 → 2.1 View file →
@@ -7,45 +7,30 @@
7 7
8 8 namespace Smackcoders\SMUSERS;
9 9
10 10 if ( ! defined( 'ABSPATH' ) )
11 -exit; // Exit if accessed directly
11 + exit; // Exit if accessed directly
12 12
13 13 class MediaHandling{
14 - private static $instance=null;
15 - public $header_array;
14 + private static $instance=null,$smack_instance;
15 + public $header_array,$core_instance;
16 16 public $value_array;
17 17
18 18 public function __construct(){
19 19
20 - require_once(ABSPATH.'wp-load.php');
21 - require_once(ABSPATH . 'wp-admin/includes/image.php');
22 - require_once(ABSPATH . 'wp-admin/includes/file.php');
20 + include_once(ABSPATH . 'wp-admin/includes/image.php');
23 21 add_action('wp_ajax_image_options', array($this , 'imageOptions'));
24 22 add_action('wp_ajax_delete_image' , array($this , 'deleteImage'));
25 - add_action('wp_ajax_media_report' , array($this , 'mediaReport'));
26 23 }
27 24
28 - public static function imageOptions(){
29 - $media_settings['use_ExistingImage'] = $_POST['use_ExistingImage'];
30 - $media_settings['overwriteImage'] = $_POST['overwriteImage'];
31 - $media_settings['title'] = $_POST['title'];
32 - $media_settings['caption'] = $_POST['caption'];
33 - $media_settings['alttext'] = $_POST['alttext'];
34 - $media_settings['description'] = $_POST['description'];
35 - $media_settings['file_name'] = $_POST['file_name'];
36 - $media_settings['thumbnail'] = $_POST['thumbnail'];
37 - $media_settings['media_handle_option'] = $_POST['media_handle_option'];
38 - $media_settings['medium'] = $_POST['medium'];
39 - $media_settings['medium_large'] = $_POST['medium_large'];
40 - $media_settings['large'] = $_POST['large'];
41 - $media_settings['custom'] = $_POST['custom'];
42 - $media_settings['custom_slug'] = $_POST['custom_slug'];
43 - $media_settings['custom_slug'] = $_POST['custom_width'];
44 - $media_settings['custom_height'] = $_POST['custom_height'];
25 + public static function imageOptions(){
26 + check_ajax_referer('smack-ultimate-csv-importer', 'securekey');
27 + $media_settings['media_handle_option'] = sanitize_text_field($_POST['media_handle_option']);
28 + $media_settings['use_ExistingImage'] = sanitize_text_field($_POST['use_ExistingImage']);
29 + $media_settings['enable_postcontent_image'] = sanitize_text_field($_POST['postContent_image_option']);
45 30 $image_info = array(
46 - 'media_settings' => $media_settings
47 - );
31 + 'media_settings' => $media_settings
32 + );
48 33 update_option( 'smack_image_options', $image_info );
49 34 $result['success'] = 'true';
50 35 echo wp_json_encode($result);
51 36 wp_die();
@@ -52,9 +37,8 @@
52 37 }
53 38 public static function getInstance() {
54 39 if (MediaHandling::$instance == null) {
55 40 MediaHandling::$instance = new MediaHandling;
56 - //MediaHandling::$instance->featured_image();
57 41 return MediaHandling::$instance;
58 42 }
59 43 return MediaHandling::$instance;
60 44 }
@@ -59,9 +43,10 @@
59 43 return MediaHandling::$instance;
60 44 }
61 45
62 46 public function deleteImage(){
63 - $image = $_POST['image'];
47 + check_ajax_referer('smack-ultimate-csv-importer', 'securekey');
48 + $image = sanitize_text_field($_POST['image']);
64 49 $media_dir = wp_get_upload_dir();
65 50 $names = glob($media_dir['path'].'/'.'*.*');
66 51 foreach($names as $values){
67 52 if (strpos($values, $image) !== false) {
@@ -71,105 +56,180 @@
71 56 $result['success'] = 'true';
72 57 echo wp_json_encode($result);
73 58 wp_die();
74 59 }
75 - public function media_handling($img_url , $post_id , $data_array = null ,$module = null, $image_type = null ,$hash_key = null, $header_array = null , $value_array = null){
60 + public function media_handling($img_url , $post_id , $data_array = null,$module = null, $image_type = null ,$hash_key = null,$templatekey = null,$header_array=null,$value_array=null,$indexs=null,$acf_wpname_element=null,$acf_image_meta=null){
76 61 $encodedurl = urlencode($img_url);
77 62 $img_url = urldecode($encodedurl);
63 + $url = parse_url($img_url);
64 + if($hash_key == null)
65 + $hash_key = "";
78 66 $media_handle = get_option('smack_image_options');
79 - $image_name = basename($img_url);
80 - $image_title = sanitize_file_name( pathinfo( $image_name, PATHINFO_FILENAME ) );
67 + if(isset($url['scheme']) && $url['scheme'] == 'http' || $url['scheme'] == 'https' ){
68 + $image_name = basename($img_url);
69 + $image_title = sanitize_file_name( pathinfo( $image_name, PATHINFO_FILENAME ) );
70 + }else{
71 + $image_title=preg_replace('/\\.[^.\\s]{3,4}$/', '', $img_url);
72 + }
81 73 global $wpdb;
74 + if($media_handle['media_settings']['use_ExistingImage'] == 'true'){
75 + if(is_numeric($img_url)){
76 + $attach_id=$img_url;
77 + if(!empty($data_array['featured_image'])) {
78 + set_post_thumbnail( $post_id, $attach_id );
79 + }
80 + return $attach_id;
81 + }
82 + else{
83 + $attachment_id = $wpdb->get_results(
84 + $wpdb->prepare(
85 + "SELECT ID FROM {$wpdb->prefix}posts WHERE post_type = 'attachment' AND guid LIKE %s",
86 + '%' . $wpdb->esc_like( $image_title ) . '%'
87 + ),
88 + ARRAY_A
89 + );
82 90
83 - if($media_handle['media_settings']['media_handle_option'] == 'true'){
84 - if($media_handle['media_settings']['use_ExistingImage'] == 'true'){
85 - $guid_url = $img_url;
86 - $attachment_id = $wpdb->get_results("select ID from {$wpdb->prefix}posts where guid = '$guid_url'" ,ARRAY_A);
87 - if(!empty($attachment_id)){
88 - foreach($attachment_id as $value){
89 - $attach_id = $value['ID'];
90 - if(!wp_get_attachment_url($attach_id)){
91 - $attach_id = $this->image_function($img_url , $post_id , $data_array, '', 'use_existing_image',$header_array , $value_array );
91 + }
92 + if(is_array($attachment_id) && !empty($attachment_id[0]['ID']) && $image_type != 'Featured'){
93 + $table_name = $wpdb->prefix . 'smackcsv_file_events';
94 + $post_title = $wpdb->get_var(
95 + $wpdb->prepare(
96 + "SELECT post_title FROM {$wpdb->prefix}posts WHERE ID = %d AND post_status != 'trash'",
97 + absint( $post_id )
98 + )
99 + );
100 + $file_name = $wpdb->get_var(
101 + $wpdb->prepare(
102 + "SELECT file_name FROM $table_name WHERE hash_key = %s",
103 + $hash_key
104 + )
105 + );
106 + $shortcode_table = $wpdb->prefix . "ultimate_csv_importer_shortcode_manager";
107 + $attach_id = $attachment_id[0]['ID'];
108 + $check_id = $wpdb->get_results(
109 + $wpdb->prepare(
110 + "SELECT ID FROM {$wpdb->prefix}posts WHERE ID = %d AND post_title ='image-failed' AND post_type = 'attachment' AND guid LIKE %s",
111 + absint( $attach_id ),
112 + '%' . $wpdb->esc_like( $image_title ) . '%'
113 + ),
114 + ARRAY_A
115 + );
116 + if(!empty($check_id)){
117 + $failed_ids = $wpdb->get_results(
118 + $wpdb->prepare(
119 + "SELECT * FROM {$wpdb->prefix}ultimate_csv_importer_shortcode_manager WHERE post_id = %d AND media_id = %d",
120 + absint( $post_id ),
121 + absint( $attach_id )
122 + )
123 + );
124 + if(!empty($failed_ids) && $failed_ids[0]->post_id != $post_id){
125 + $attach_id = $check_id[0]['ID'];;
126 + $insert_status = $wpdb->insert($shortcode_table,
127 + array(
128 + 'post_id' => $post_id,
129 + 'post_title' => $post_title,
130 + 'image_shortcode' => $image_type.'_image__'.$acf_wpname_element,
131 + 'media_id' => $attach_id,
132 + 'original_image' => $img_url,
133 + 'indexs' => $indexs,
134 + 'image_meta' => $acf_image_meta,
135 + 'hash_key' => $hash_key,
136 + 'import_type' => $module,
137 + 'file_name' => $file_name
138 + ),
139 + array('%d','%s','%s','%d','%s','%d','%s','%s','%s','%s')
140 + );
141 + if($insert_status){
142 + $this->store_failed_image_ids($attach_id);
143 + }
144 +
145 + }elseif(($failed_ids[0]->post_id == $post_id) && ($check_id[0]['ID'] == $failed_ids[0]->media_id)){
146 + $attach_id = $check_id[0]['ID'];
147 + $insert_status = $wpdb->insert($shortcode_table,
148 + array(
149 + 'post_id' => $post_id,
150 + 'post_title' => $post_title,
151 + 'image_shortcode' => $image_type.'_image__'.$acf_wpname_element,
152 + 'media_id' => $attach_id,
153 + 'original_image' => $img_url,
154 + 'indexs' => $indexs,
155 + 'image_meta' => $acf_image_meta,
156 + 'hash_key' => $hash_key,
157 + 'import_type' => $module,
158 + 'file_name' => $file_name
159 + ),
160 + array('%d','%s','%s','%d','%s','%d','%s','%s','%s','%s')
161 + );
162 + if($insert_status){
163 + $this->store_failed_image_ids($attach_id);
164 + }
92 165 }
93 - }
94 - }
95 - else{
96 - $attach_id = $this->image_function($img_url , $post_id , $data_array , '', 'use_existing_image',$header_array , $value_array);
97 - }
98 - }
99 - elseif($media_handle['media_settings']['overwriteImage'] == 'true'){
100 - $get_id = $wpdb->get_results("SELECT ID FROM {$wpdb->prefix}posts WHERE post_title = '$image_title' AND post_type = 'attachment' limit 1");
101 - if(!empty($get_id)){
102 - foreach($get_id as $value){
103 - $attach_id = $value->ID;
104 - $this->overwrite($attach_id , $img_url);
105 - if(!empty($data_array['featured_image'])) {
106 - set_post_thumbnail( $post_id, $attach_id );
166 + elseif(empty($failed_ids) ){
167 + $insert_status = $wpdb->insert($shortcode_table,
168 + array(
169 + 'post_id' => $post_id,
170 + 'post_title' => $post_title,
171 + 'image_shortcode' => $image_type.'_image__'.$acf_wpname_element,
172 + 'media_id' => $attach_id,
173 + 'original_image' => $img_url,
174 + 'indexs'=>$indexs,
175 + 'hash_key' => $hash_key,
176 + 'import_type' => $module,
177 + 'file_name' => $file_name,
178 + ),
179 + array('%d','%s','%s','%d','%s','%d','%s','%s','%s')
180 + );
181 + if($insert_status){
182 + $this->store_failed_image_ids($attach_id);
183 + }
107 184 }
108 - }
109 - }
110 - else{
111 - $attach_id = $this->image_function($img_url , $post_id , $data_array,'','',$header_array , $value_array);
112 - }
185 +
186 + //return $attach_id;
187 + }
113 188 }
114 189 else{
115 - $attach_id = $this->image_function($img_url , $post_id , $data_array,'','',$header_array , $value_array);
190 + $attach_id = $this->image_function($img_url , $post_id , $data_array,'','use_existing_image',$header_array,$value_array);
116 191 }
192 +
117 193 }
118 194 else{
119 - $guid_url = $img_url;
120 - $attachment_id = $wpdb->get_results("select ID from {$wpdb->prefix}posts where guid = '$guid_url'" ,ARRAY_A);
195 + $img_url = is_array($img_url) ? implode(',', array_filter($img_url)) : $img_url;
196 + $hash_key = is_array($hash_key) ? implode(',', array_filter($hash_key)) : $hash_key;
197 + $templatekey = is_array($templatekey) ? implode(',', array_filter($templatekey)) : $templatekey;
198 + $module = is_array($module) ? implode(',', array_filter($module)) : $module;
199 + $image_type = is_array($image_type) ? implode(',', array_filter($image_type)) : $image_type;
200 + $img_url = esc_sql($img_url);
201 + $hash_key = esc_sql($hash_key);
202 + $templatekey = esc_sql($templatekey);
203 + $module = esc_sql($module);
204 + $image_type = esc_sql($image_type);
205 +
206 + $attach_id = $this->image_function($img_url, $post_id, $data_array,'','',$header_array,$value_array);
207 + // if ($attach_id != null) {
208 + // global $wpdb;
209 + // $image_table = $wpdb->prefix . "ultimate_csv_importer_media";
210 + // $wpdb->query($wpdb->prepare("INSERT INTO $image_table (image_url, attach_id, post_id, hash_key, templatekey, module, image_type, status) VALUES (%s, %d, %d, %s, %s, %s, %s, 'Completed')",$img_url,$attach_id,$post_id,$hash_key,$templatekey,$module,$image_type));
211 + // }
121 212
122 - if(!empty($attachment_id)){
123 -
124 - foreach($attachment_id as $value){
125 - $attach_id = $value['ID'];
126 - if($_wp_attachment_metadata = get_post_meta($attach_id, '_wp_attachment_metadata', true)){
127 - // When an attachment is available on Media and not has attachment link
128 - if(!is_array($_wp_attachment_metadata)){
129 - $attach_id = $this->image_function($img_url , $post_id , $data_array,'','',$header_array , $value_array);
130 - }
131 - }
132 - //set_post_thumbnail( $post_id, $attach_id );
133 - }
134 - }
135 213 }
136 214 return $attach_id;
137 215 }
138 216
139 - public function mediaReport(){
140 - global $wpdb;
141 - $list_of_images = $wpdb->get_results("select * from {$wpdb->prefix}ultimate_csv_importer_media GROUP BY `hash_key`,`image_type` ",ARRAY_A);
142 - foreach( $list_of_images as $list_key => $list_val )
143 - {
144 - if(!empty($list_val['hash_key'])){
145 - $file_name = $wpdb->get_results("select file_name from {$wpdb->prefix}smackcsv_file_events where hash_key = '{$list_val['hash_key']}'",ARRAY_A);
146 - }
147 - $filename[$list_key]= $file_name[0]['file_name'];
148 - $module[$list_key] = $list_val['module'];
149 - $image_type[$list_key] = $list_val['image_type'];
150 - $image_status[$list_key] = $list_val['status'];
151 - $number_of_images = $wpdb->get_results("select image_url from {$wpdb->prefix}ultimate_csv_importer_media where hash_key = '{$list_val['hash_key']}' and image_type = '{$image_type[$list_key]}' ",ARRAY_A);
152 - $count[$list_key] = count($number_of_images);
153 - }
154 - $response['file_name'] = $filename ;
155 - $response['module'] = $module ;
156 - $response['count'] = $count;
157 - $response['image_type'] = $image_type;
158 - $response['status'] = $image_status;
159 - echo wp_json_encode($response);
160 - wp_die();
161 - }
162 -
163 217 public function image_function($f_img , $post_id , $data_array = null,$option_name = null, $use_existing_image = false,$header_array = null , $value_array = null){
164 -
218 +
165 219 global $wpdb;
220 + $f_img = urldecode($f_img);
221 + // $image = explode("?", $f_img);
222 + // $f_img=$image[0];
166 223 $media_handle = get_option('smack_image_options');
167 - $media_settings = array_combine($header_array,$value_array);
224 + if(!empty($header_array) && !empty($value_array) ){
225 + $media_settings = array_combine($header_array,$value_array);
226 + }
168 227 if(isset($media_handle['media_settings']['alttext'])) {
169 - $alttext ['_wp_attachment_image_alt'] = $media_settings[$media_handle['media_settings']['alttext']];
228 + $alttext ['_wp_attachment_image_alt'] = isset($media_settings[$media_handle['media_settings']['alttext']]) ? $media_settings[$media_handle['media_settings']['alttext']] :'';
170 229 }
171 - if(preg_match_all('/\b(?:(?:https?|?:http?|ftp|file):\/\/|www\.|ftp\.)[-A-Z0-9+&@#\/%=~_|$?!:,.]*[A-Z0-9+&@#\/%=~_|$]/i', $f_img , $matchedlist, PREG_PATTERN_ORDER)) {
230 +
231 + if(preg_match_all('/\b(?:(?:https?|http|ftp|file):\/\/|www\.|ftp\.)[-A-Z0-9+&@#\/%=~_|$?!:,.]*[A-Z0-9+&@#\/%=~_|$]/i', $f_img , $matchedlist, PREG_PATTERN_ORDER)) {
172 232 $f_img = $f_img;
173 233 }
174 234 else{
175 235 $media_dir = wp_get_upload_dir();
@@ -179,18 +239,20 @@
179 239 $f_img = $media_dir['url'].'/'.$f_img;
180 240 }
181 241 }
182 242 }
243 +
183 244 $image_name = pathinfo($f_img);
184 - if(!empty($media_handle['media_settings']['file_name'])){
185 - $file_type = wp_check_filetype( $f_img, null );
186 - $ext = '.'. $file_type['ext'];
187 - $fimg_name = $media_settings[$media_handle['media_settings']['file_name']].$ext;
188 - }
189 - else{
245 + //if(!empty($media_handle['media_settings']['file_name'])){
246 + //$file_type = wp_check_filetype( $f_img, null );
247 + //$ext = '.'. $file_type['ext'];
248 + // if(!empty($media_settings[$media_handle['media_settings']['file_name']])){
249 + // $fimg_name = $media_settings[$media_handle['media_settings']['file_name']].$ext;
250 + // }
251 + //}
252 + //else{
190 253 $fimg_name = $image_name['basename'];
191 - }
192 -
254 + //}
193 255 $file_type = wp_check_filetype( $fimg_name, null );
194 256 if($use_existing_image){
195 257 if(empty($file_type['ext'])){
196 258 $fimg_name = @basename($f_img);
@@ -196,10 +258,14 @@
196 258 $fimg_name = @basename($f_img);
197 259 $fimg_name = str_replace(' ', '-', trim($fimg_name));
198 260 $fimg_name = preg_replace('/[^a-zA-Z0-9._\-\s]/', '', $fimg_name);
199 261 }
200 - $attachment_id = $wpdb->get_var("SELECT ID FROM ".$wpdb->prefix."posts WHERE post_type = 'attachment' AND guid LIKE '%$fimg_name'");
201 -
262 + $attachment_id = $wpdb->get_var(
263 + $wpdb->prepare(
264 + "SELECT ID FROM ".$wpdb->prefix."posts WHERE post_type = 'attachment' AND guid LIKE %s",
265 + '%' . $wpdb->esc_like( $fimg_name )
266 + )
267 + );
202 268 if($attachment_id){
203 269 if(!empty($data_array['featured_image'])){
204 270 set_post_thumbnail( $post_id, $attachment_id );
205 271 return $attachment_id;
@@ -209,13 +275,20 @@
209 275 }
210 276 }
211 277
212 278 $attachment_title = sanitize_file_name( pathinfo( $fimg_name, PATHINFO_FILENAME ) );
213 - $file_type = wp_check_filetype( $fimg_name, null );
279 + $file_type = wp_check_filetype( $fimg_name, null );
214 280 $dir = wp_upload_dir();
215 281 $dirname = date('Y') . '/' . date('m');
216 - $uploaddir_paths = $dir ['basedir'] . '/' . $dirname ;
217 - $uploaddir_url = $dir ['baseurl'] . '/' . $dirname;
282 + $uploads_use_yearmonth = get_option('uploads_use_yearmonth_folders');
283 + if($uploads_use_yearmonth == 1){
284 + $uploaddir_paths = $dir ['basedir'] . '/' . $dirname ;
285 + $uploaddir_url = $dir ['baseurl'] . '/' . $dirname;
286 + }
287 + else{
288 + $uploaddir_paths = $dir ['basedir'];
289 + $uploaddir_url = $dir ['baseurl'];
290 + }
218 291 $f_img = str_replace(" ","%20",$f_img);
219 292 if(empty($file_type['ext'])){
220 293 $fimg_name = @basename($f_img);
221 294 $fimg_name = str_replace(' ', '-', trim($fimg_name));
@@ -221,13 +294,25 @@
221 294 $fimg_name = str_replace(' ', '-', trim($fimg_name));
222 295 $fimg_name = preg_replace('/[^a-zA-Z0-9._\-\s]/', '', $fimg_name);
223 296 }
224 297 if ($uploaddir_paths != "" && $uploaddir_paths) {
298 + if (strpos($fimg_name, ' ') !== false) {
299 + $fimg_name = str_replace(' ', '-', $fimg_name);
300 + $fimg_name = preg_replace('/[^a-zA-Z0-9._\-\s]/', '', $fimg_name);
301 + }
225 302 $uploaddir_path = $uploaddir_paths . "/" . $fimg_name;
226 303 }
227 - //Removed curl and added wordpress http api
228 - $response = wp_remote_get($f_img, array( 'timeout' => 10));
229 - $rawdata = wp_remote_retrieve_body($response);
304 +
305 + if($file_type['ext'] == 'jpeg'){
306 + $response = wp_safe_remote_get($f_img, array( 'timeout' => 30));
307 + }else{
308 + $response = wp_safe_remote_get($f_img, array( 'timeout' => 10));
309 + }
310 + if(is_wp_error($response)) {
311 + return null;
312 + }
313 + $rawdata = wp_remote_retrieve_body($response);
314 +
230 315 $http_code = wp_remote_retrieve_response_code($response);
231 316 if($http_code == 404){
232 317 return null;
233 318 }
@@ -232,494 +317,295 @@
232 317 return null;
233 318 }
234 319
235 320 if ( $http_code != 200 && strpos( $rawdata, 'Not Found' ) != 0 ) {
236 - $rawdata = null;
321 + return null;
237 322 }
323 + if(is_plugin_active('exmage-wp-image-links/exmage-wp-image-links.php')){
324 + $guid =$fimg_name;
325 + }
238 326 if ($rawdata == false) {
239 327 return null;
240 328 } else {
329 + if(is_plugin_active('exmage-wp-image-links/exmage-wp-image-links.php')){
330 + $link = new \EXMAGE_WP_IMAGE_LINKS;
331 + $postID = $link->add_image($data_array['featured_image'],$value);
332 + wp_update_post(array(
333 + 'ID' => $postID['id'],
334 + 'post_title' => $data_array['title'],
335 + 'post_content' => $data_array['description'],
336 + 'post_excerpt' => $data_array['caption']
337 + ));
338 + // if($postID['id'] != null && isset($data_array['alt_text'])){
339 + //update_post_meta($postID['id'], '_wp_attachment_image_alt', $data_array['alt_text']);
340 + //}
341 + }
342 + else{
343 + // Never write a file the web server could execute.
344 + if (preg_match('/^\.|\.(php[0-9]*|pht|phtml|phar|phps|cgi|pl|py|sh|shtml|asp|aspx|jsp)(\.|$)/i', basename($uploaddir_path))) {
345 + return null;
346 + }
347 + if (file_exists($uploaddir_path)) {
348 + $i = 1;
349 + $exist = true;
350 + while($exist){
351 + $fimg_name = $attachment_title . "-" . $i . "." . $file_type['ext'];
352 + $uploaddir_path = $uploaddir_paths . "/" . $fimg_name;
241 353
242 - if (file_exists($uploaddir_path)) {
243 - $i = 1;
244 - $exist = true;
245 - while($exist){
246 - $fimg_name = $attachment_title . "-" . $i . "." . $file_type['ext'];
247 - $uploaddir_path = $uploaddir_paths . "/" . $fimg_name;
248 -
249 - if (file_exists($uploaddir_path)) {
250 - $i = $i + 1;
354 + if (file_exists($uploaddir_path)) {
355 + $i = $i + 1;
356 + }
357 + else{
358 + $exist = false;
359 + }
251 360 }
252 - else{
253 - $exist = false;
254 - }
255 361 }
362 + $fp = fopen($uploaddir_path, 'x');
363 + fwrite($fp, $rawdata);
364 + fclose($fp);
256 365 }
257 -
258 - $fp = fopen($uploaddir_path, 'x');
259 - fwrite($fp, $rawdata);
260 - fclose($fp);
261 366 }
262 367 if(empty($file_type['type'])){
263 368 $file_type['type'] = 'image/jpeg';
264 369 }
265 - $post_info = array(
266 - 'guid' => $uploaddir_url . "/" . $fimg_name,
267 - 'post_mime_type' => $file_type['type'],
268 - 'post_title' => $attachment_title,
269 - 'post_content' => '',
270 - 'post_status' => 'inherit',
271 - );
272 - //unset( $post_info['ID'] );
273 - $attach_id = wp_insert_attachment( $post_info,$uploaddir_path, $post_id );
274 - $attach_data = wp_generate_attachment_metadata( $attach_id, $uploaddir_path );
275 - wp_update_attachment_metadata( $attach_id, $attach_data );
276 - if($media_handle['media_settings']['thumbnail'] = 'true') {
277 - $thumbnail_width = get_option('thumbnail_size_w');
278 - $thumbnail_height = get_option('thumbnail_size_h');
279 - $metadata = wp_get_attachment_metadata($attach_id);
280 - $metadata['width'] = $thumbnail_width;
281 - $metadata['height'] = $thumbnail_height;
282 - wp_update_attachment_metadata($attach_id,$metadata);
370 + if(is_plugin_active('exmage-wp-image-links/exmage-wp-image-links.php')){
371 + $guids =$data_array['featured_image'];
283 372 }
284 - elseif($media_handle['media_settings']['medium_'] = 'true'){
285 - $medium_width = get_option('medium_size_w');
286 - $medium_height = get_option('medium_size_h');
287 - $metadata = wp_get_attachment_metadata($attach_id);
288 - $metadata['width'] = $medium_width;
289 - $metadata['height'] = $medium_height;
290 - wp_update_attachment_metadata($attach_id,$metadata);
373 + else{
374 + $guids=$uploaddir_url . "/" . $fimg_name;
291 375 }
292 - elseif($media_handle['media_settings']['medium_large'] = 'true') {
293 - $medium_large_width = get_option('medium_large_size_w');
294 - $medium_large_height = get_option('medium_large_size_h');
295 - //add_image_size( 'medium_large', $medium_large_width, $medium_large_height, true );
296 - $metadata = wp_get_attachment_metadata($attach_id);
297 - $metadata['width'] = $medium_large_width;
298 - $metadata['height'] = $medium_large_height;
299 - wp_update_attachment_metadata($attach_id,$metadata);
376 + if(!empty($data_array['title'])){
377 + $attachment_title = $data_array['title'];
378 + }else{
379 + $attachment_title = str_replace('-', ' ', $attachment_title);
300 380 }
301 - elseif($media_handle['media_settings']['large'] = 'true'){
302 - $large_width = get_option('large_size_w');
303 - $large_height = get_option('large_size_h');
304 - $metadata = wp_get_attachment_metadata($attach_id);
305 - $metadata['width'] = $large_width;
306 - $metadata['height'] = $large_height;
307 - wp_update_attachment_metadata($attach_id,$metadata);
381 + $post_info = array(
382 + 'guid' => $guids,
383 + 'post_mime_type' => $file_type['type'],
384 + 'post_title' => $attachment_title,
385 + 'post_content' => '',
386 + 'post_status' => 'inherit',
387 + );
388 + if(!is_plugin_active('exmage-wp-image-links/exmage-wp-image-links.php')){
389 + $attach_id = wp_insert_attachment( $post_info,$uploaddir_path, $post_id );
390 + $attach_data = wp_generate_attachment_metadata( $attach_id, $uploaddir_path );
391 + wp_update_attachment_metadata( $attach_id, $attach_data );
308 392 }
309 - if(isset($media_handle['media_settings']['description'])){
310 - $media_handle['media_settings']['description'] = $media_settings[$media_handle['media_settings']['description']];
311 - }
312 - if(isset($media_handle['media_settings']['caption'])){
313 - $media_handle['media_settings']['caption'] = $media_settings[$media_handle['media_settings']['caption']];
314 - }
315 - if(isset($media_handle['media_settings']['title'])){
316 - $media_handle['media_settings']['title'] = $media_settings[$media_handle['media_settings']['title']];
317 - }
318 - if(isset($media_handle['media_settings']['caption']) || isset($media_handle['media_settings']['description'])){
319 - wp_update_post(array(
320 - 'ID' =>$attach_id,
321 - 'post_content' =>$media_handle['media_settings']['description'],
322 - 'post_excerpt' =>$media_handle['media_settings']['caption']
323 - ));
324 - }
325 - if(isset($media_handle['media_settings']['title'])){
326 - wp_update_post(array(
327 - 'ID' =>$attach_id,
328 - 'post_title' =>$media_handle['media_settings']['title']
329 - ));
330 - }
331 - if($attach_id != null && isset($alttext['_wp_attachment_image_alt'])){
332 - update_post_meta($attach_id, '_wp_attachment_image_alt', $alttext['_wp_attachment_image_alt']);
333 - }
393 +
334 394 if(!empty($data_array['featured_image'])) {
335 395 set_post_thumbnail( $post_id, $attach_id );
336 396 }
337 - delete_option( $option_name );
338 397 return $attach_id;
339 398 }
340 399
341 -
342 - public function image_import($data_array){
343 - $encodedurl = urlencode($data_array['featured_image']);
344 - $data_array['featured_image'] = urldecode($encodedurl);
345 - if(isset($data_array['alt_text'])) {
346 - $alttext ['_wp_attachment_image_alt'] = $data_array['alt_text'];
347 - }
348 - if(preg_match_all('/\b(?:(?:https?|http|ftp|file):\/\/|www\.|ftp\.)[-A-Z0-9+&@#\/%=~_|$?!:,.]*[A-Z0-9+&@#\/%=~_|$]/i', $data_array['featured_image'] , $matchedlist, PREG_PATTERN_ORDER))
349 - {
350 - $f_img = $data_array['featured_image'];
351 - }
352 - else{
353 - $media_dir = wp_get_upload_dir();
354 - $names = glob($media_dir['path'].'/'.'*.*');
355 - $f_img = $data_array['featured_image'];
356 - foreach($names as $values){
357 - if (strpos($values, $f_img) !== false) {
358 - $f_img = $media_dir['url'].'/'.$f_img;
359 - }
360 - }
361 - }
362 - $image_name = pathinfo($f_img);
363 - $attachment_title = sanitize_file_name( pathinfo( $f_img, PATHINFO_FILENAME ) );
364 - $file_type = wp_check_filetype( $f_img, null );
365 - $dir = wp_upload_dir();
366 - $dirname = date('Y') . '/' . date('m');
367 - $uploaddir_paths = $dir ['basedir'] . '/' . $dirname ;
368 - $uploaddir_url = $dir ['baseurl'] . '/' . $dirname;
369 - if(empty($file_type['ext']) || empty($data_array['file_name'])){
370 - $fimg_name = @basename($f_img);
371 - $fimg_name = str_replace(' ', '-', trim($fimg_name));
372 - $fimg_name = preg_replace('/[^a-zA-Z0-9._\-\s]/', '', $fimg_name);
373 - }
374 - if(!empty($data_array['file_name'])){
375 - $file_type = wp_check_filetype( $f_img, null );
376 - $ext = '.'. $file_type['ext'];
377 - $fimg_name = $data_array['file_name'].$ext;
378 - }
379 - if ($uploaddir_paths != "" && $uploaddir_paths) {
380 - $uploaddir_path = $uploaddir_paths . "/" . $fimg_name;
381 - }
382 - if (strstr($f_img, 'https://drive.google.com')){
383 - $page_content = file_get_contents($f_img);
384 - $dom_obj = new \DOMDocument();
385 - $dom_obj->loadHTML($page_content);
386 - $meta_val = null;
387 - foreach($dom_obj->getElementsByTagName('meta') as $meta) {
388 - if($meta->getAttribute('property')=='og:image'){
389 - $meta_val = $meta->getAttribute('content');
390 - }
391 - }
392 - $ch = curl_init($meta_val);
393 - curl_setopt($ch, CURLOPT_HEADER, 0);
394 - curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
395 - curl_setopt($ch, CURLOPT_BINARYTRANSFER,1);
396 - $rawdata=curl_exec ($ch);
397 - }
398 - //Removed curl and added wordpress http api
399 - else{
400 - if($file_type['ext'] == 'jpeg'){
401 - $response = wp_remote_get($f_img, array( 'timeout' => 30));
402 - }else{
403 - $response = wp_remote_get($f_img, array( 'timeout' => 10));
404 - }
405 - $rawdata = wp_remote_retrieve_body($response);
406 - }
407 - $http_code = wp_remote_retrieve_response_code($response);
408 -
409 - if($http_code == 404){
410 - return null;
411 - }
412 -
413 - // When
414 - if ( $http_code != 200 && strpos( $rawdata, 'Not Found' ) != 0 ) {
415 - return null;
416 - }
417 -
418 - if ($rawdata == false) {
419 -
420 - return null;
421 - } else {
422 -
423 - if (file_exists($uploaddir_path)) {
424 - $i = 1;
425 - $exist = true;
426 - while($exist){
427 - $fimg_name = $attachment_title . "-" . $i . "." . $file_type['ext'];
428 - $uploaddir_path = $uploaddir_paths . "/" . $fimg_name;
429 -
430 - if (file_exists($uploaddir_path)) {
431 - $i = $i + 1;
432 - }
433 - else{
434 - $exist = false;
435 - }
436 - }
400 + public function get_filename_path($image_url){
401 + $image_name = pathinfo($image_url);
402 + $fimg_name = $image_name['basename'];
403 + $fimg_name_without_ext = $image_name['filename'];
404 + if(empty($fimg_name_without_ext)){
405 + $fimg_name_without_ext = $fimg_name;
437 406 }
438 - $fp = fopen($uploaddir_path, 'x');
439 - fwrite($fp, $rawdata);
440 - fclose($fp);
441 - }
442 - if(empty($file_type['type'])){
443 - $file_type['type'] = 'image/jpeg';
444 - }
445 - //Removed curl and added wordpress http api
446 - $post_info = array(
447 - 'guid' => $uploaddir_url . "/" . $fimg_name,
448 - 'post_mime_type' => $file_type['type'],
449 - 'post_title' => $attachment_title,
450 - 'post_content' => '',
451 - 'post_status' => 'inherit',
452 - );
453 - unset( $post_info['ID'] );
454 - $attach_id = wp_insert_attachment( $post_info,$uploaddir_path );
455 - $attach_data = wp_generate_attachment_metadata( $attach_id, $uploaddir_path );
456 - wp_update_attachment_metadata( $attach_id, $attach_data );
457 - wp_update_post(array(
458 - 'ID' => $attach_id,
459 - 'post_title' => $data_array['title'],
460 - 'post_content' => $data_array['description'],
461 - 'post_excerpt' => $data_array['caption']
462 - ));
463 - if($attach_id != null && isset($alttext['_wp_attachment_image_alt'])){
464 - update_post_meta($attach_id, '_wp_attachment_image_alt', $alttext['_wp_attachment_image_alt']);
465 - }
466 - return $attach_id;
467 - }
407 + $file_type = wp_check_filetype( $fimg_name, null );
408 + if(empty($file_type['ext'])){
409 + $fimg_name = @basename($image_url);
410 + $fimg_name = str_replace(' ', '-', trim($fimg_name));
411 + $fimg_name = preg_replace('/[^a-zA-Z0-9._\-\s]/', '', $fimg_name);
412 + }
468 413
469 -
470 - function overwrite($post_id , $img_url){
471 -
472 - global $wpdb;
473 - $sql = "SELECT post_mime_type FROM {$wpdb->prefix}posts WHERE ID = $post_id";
474 - list($current_filetype) = $wpdb->get_row($sql, ARRAY_N);
475 - $current_filename = wp_get_attachment_url($post_id);
476 -
477 - $current_guid = $current_filename;
478 - $current_filename = substr($current_filename, (strrpos($current_filename, "/") + 1));
479 -
480 - $ID = $post_id;
481 -
482 - //$current_file = get_attached_file($ID, apply_filters( 'emr_unfiltered_get_attached_file', true ));
483 - $current_file = get_attached_file($ID);
484 - $current_path = substr($current_file, 0, (strrpos($current_file, "/")));
485 - $current_file = preg_replace("|(?<!:)/{2,}|", "/", $current_file);
486 - $current_filename = basename($current_file);
487 - $current_metadata = wp_get_attachment_metadata( $post_id );
488 -
489 - // $original_file_perms = fileperms($current_file) & 0777;
490 -
491 - $data = file_get_contents($img_url);
492 -
493 - $new_filename = basename($img_url);
494 - $file_type = wp_check_filetype( $new_filename, null );
495 - $new_filetype = $file_type["type"];
496 - if(empty($new_filetype['ext'])){
497 - $new_filename = @basename($img_url);
498 - $new_filename = str_replace(' ', '-', trim($new_filename));
499 - $new_filename = preg_replace('/[^a-zA-Z0-9._\-\s]/', '', $new_filename);
500 - }
501 - if(empty($new_filetype)){
502 - $new_filetype = 'image/jpeg';
503 - }
504 -
505 - $original_file_perms = fileperms($current_file) & 0777;
506 -
507 - $this->emr_delete_current_files( $current_file, $current_metadata , $post_id );
508 -
509 - $new_filename = wp_unique_filename( $current_path, $new_filename );
510 - $new_file = $current_path . "/" . $new_filename;
511 - file_put_contents($new_file, $data);
512 -
513 - @chmod($current_file, $original_file_perms);
514 -
515 - $new_filetitle = preg_replace('/\.[^.]+$/', '', basename($new_file));
516 - $new_guid = str_replace($current_filename, $new_filename, $current_guid);
517 -
518 - $post_date = gmdate( 'Y-m-d H:i:s' );
519 -
520 - $sql = $wpdb->prepare(
521 - "UPDATE {$wpdb->prefix}posts SET post_title = '$new_filetitle', post_name = '$new_filetitle', guid = '$new_guid', post_mime_type = '$new_filetype', post_date = '$post_date', post_date_gmt = '$post_date' WHERE ID = %d;",
522 - $post_id
523 - );
524 - $wpdb->query($sql);
525 -
526 -
527 - $sql = $wpdb->prepare(
528 - "SELECT meta_value FROM {$wpdb->prefix}postmeta WHERE meta_key = '_wp_attached_file' AND post_id = %d;",
529 - $post_id
530 - );
531 -
532 - $old_meta_name = $wpdb->get_row($sql, ARRAY_A);
533 - $old_meta_name = $old_meta_name["meta_value"];
534 -
535 - // Make new postmeta _wp_attached_file
536 - $new_meta_name = str_replace($current_filename, $new_filename, $old_meta_name);
537 - $sql = $wpdb->prepare(
538 - "UPDATE {$wpdb->prefix}postmeta SET meta_value = '$new_meta_name' WHERE meta_key = '_wp_attached_file' AND post_id = %d;",
539 - $post_id
540 - );
541 - $wpdb->query($sql);
542 -
543 - $new_metadata = wp_generate_attachment_metadata( $post_id, $new_file );
544 - wp_update_attachment_metadata( $post_id, $new_metadata );
545 -
546 -
547 -
548 - $current_base_url = $this->emr_get_match_url( $current_guid ); // .wp-contet.uplodas/ dae name without ext
549 -
550 - $sql = $wpdb->prepare(
551 - "SELECT ID, post_content FROM {$wpdb->prefix}posts WHERE post_status = 'publish' AND post_content LIKE %s;",
552 - '%' . $current_base_url . '%'
553 - );
554 -
555 -
556 - $rs = $wpdb->get_results( $sql, ARRAY_A );
557 -
558 - $number_of_updates = 0;
559 -
560 -
561 - if ( ! empty( $rs ) ) {
562 - $search_urls = $this->emr_get_file_urls( $current_guid, $current_metadata );
563 - $replace_urls = $this->emr_get_file_urls( $new_guid, $new_metadata );
564 - $replace_urls = $this->emr_normalize_file_urls( $search_urls, $replace_urls );
565 -
566 - foreach ( $rs AS $rows ) {
567 -
568 - $number_of_updates = $number_of_updates + 1;
569 -
570 - // replace old URLs with new URLs.
571 - $post_content = $rows["post_content"];
572 -
573 - $post_content = addslashes( str_replace( $search_urls, $replace_urls, $post_content ) );
574 -
575 - $sql = $wpdb->prepare(
576 - "UPDATE {$wpdb->prefix}posts SET post_content = '$post_content' WHERE ID = %d;",
577 - $rows["ID"]
578 - );
579 -
580 - $wpdb->query( $sql );
414 + if (strstr($image_url, 'https://drive.google.com')){
415 + preg_match('/[?&]id=([^&]+)/', $image_url, $matches);
416 + $fimg_name = isset($matches[1]) ? $matches[1] : basename($image_url);
581 417 }
582 - }
583 - update_attached_file( $post_id, $new_file );
584 -
585 - }
586 -
587 -
588 - function emr_delete_current_files( $current_file, $metadta = null , $post_id ) {
589 - // Delete old file
590 -
591 - // Find path of current file
592 - $current_path = substr($current_file, 0, (strrpos($current_file, "/")));
593 -
594 - // Check if old file exists first
595 - if (file_exists($current_file)) {
596 - // Now check for correct file permissions for old file
597 - clearstatcache();
598 - if (is_writable($current_file)) {
599 - // Everything OK; delete the file
600 - unlink($current_file);
418 + $dir = wp_upload_dir();
419 + $dirname = date('Y') . '/' . date('m');
420 + $uploads_use_yearmonth = get_option('uploads_use_yearmonth_folders');
421 + if($uploads_use_yearmonth == 1){
422 + $uploaddir_paths = $dir ['basedir'] . '/' . $dirname ;
423 + $uploaddir_url = $dir ['baseurl'] . '/' . $dirname;
601 424 }
602 - else {
603 - // File exists, but has wrong permissions. Let the user know.
604 - printf( esc_html__('The file %1$s can not be deleted by the web server, most likely because the permissions on the file are wrong.'), $current_file);
605 - exit;
425 + else{
426 + $uploaddir_paths = $dir ['basedir'];
427 + $uploaddir_url = $dir ['baseurl'];
606 428 }
607 - }
608 -
609 - // Delete old resized versions if this was an image
610 - $suffix = substr($current_file, (strlen($current_file)-4));
611 - $prefix = substr($current_file, 0, (strlen($current_file)-4));
612 -
613 - if (strtolower($suffix) === ".pdf") {
614 - $prefix .= "-pdf";
615 - $suffix = ".jpg";
616 - }
617 -
618 - $imgAr = array(".png", ".gif", ".jpg", ".jpeg");
619 - if (in_array($suffix, $imgAr)) {
620 - // It's a png/gif/jpg based on file name
621 - // Get thumbnail filenames from metadata
622 - if ( empty( $metadata ) ) {
623 - $metadata = wp_get_attachment_metadata( $post_id );
429 + if ($uploaddir_paths != "" && $uploaddir_paths) {
430 + $uploaddir_path = $uploaddir_paths . "/" . $fimg_name;
624 431 }
625 - // var_dump($metadata);exit;
626 432
627 - if (is_array($metadata)) { // Added fix for error messages when there is no metadata (but WHY would there not be? I don't know…)
628 - foreach($metadata["sizes"] AS $thissize) {
629 - // Get all filenames and do an unlink() on each one;
630 - $thisfile = $thissize["file"];
631 - // Create array with all old sizes for replacing in posts later
632 - $oldfilesAr[] = $thisfile;
633 - // Look for files and delete them
634 - if (strlen($thisfile)) {
635 - $thisfile = $current_path . "/" . $thissize["file"];
636 - if (file_exists($thisfile)) {
637 - unlink($thisfile);
638 - }
433 + return ['uploaddir_path' => $uploaddir_path,'uploaddir_url' => $uploaddir_url,'fimg_name' => $fimg_name];
434 + }
435 + public function image_meta_table_entry($line_number ,$post_values, $post_id ,$acf_wpname_element, $acf_csv_name, $hash_key, $plugin,$get_import_type,$templatekey = null,$gmode = null,$header_array = null, $value_array = null,$imgformat = null,$typecct = null,$indexs=null){
436 + global $wpdb;
437 + $table_name = $wpdb->prefix . 'smackcsv_file_events';
438 + $file_name = $wpdb->get_var(
439 + $wpdb->prepare(
440 + "SELECT file_name FROM $table_name WHERE hash_key = %s",
441 + $hash_key
442 + )
443 + );
444 + $post_title = $wpdb->get_var(
445 + $wpdb->prepare(
446 + "SELECT post_title FROM {$wpdb->prefix}posts WHERE ID = %d AND post_status != 'trash'",
447 + absint( $post_id )
448 + )
449 + );
450 + $failed_ids = $wpdb->get_results(
451 + $wpdb->prepare(
452 + "SELECT post_title,post_id,image_shortcode,media_id,original_image FROM {$wpdb->prefix}ultimate_csv_importer_shortcode_manager WHERE image_shortcode ='Featured_image_' AND post_id = %d AND original_image = %s",
453 + absint( $post_id ),
454 + $acf_csv_name
455 + )
456 + );
457 + //$core_instance = CoreFieldsImport::getInstance();
458 + //$core_instance = new WooCommerceCoreImport;
459 + $shortcode_table = $wpdb->prefix . "ultimate_csv_importer_shortcode_manager";
460 +
461 + $get_path_values = $this->get_filename_path($acf_csv_name);
462 + $uploaddir_path = isset($get_path_values['uploaddir_path']) ? $get_path_values['uploaddir_path'] : '';
463 + $uploaddir_url = isset($get_path_values['uploaddir_url']) ? $get_path_values['uploaddir_url'] : '';
464 + $fimg_name = isset($get_path_values['fimg_name']) ? $get_path_values['fimg_name'] : '';
465 + $file_type = 'image/jpeg';
466 + if(isset($post_id) && !empty($acf_csv_name) ){
467 +
468 + /************* custom image functionality ***********/
469 + if(strpos($plugin, 'jetengine_') !== false ){
470 + $image_meta_value = array(
471 + 'headerarray' => $header_array,
472 + 'valuearray' => $value_array,
473 + 'tablename' => $typecct,
474 + 'returnformat' => $imgformat
475 + );
476 + $acf_image_meta =json_encode($image_meta_value);
477 + }
478 + $acf_image_meta = isset($acf_image_meta) ? $acf_image_meta : null;
479 + $attach_id = $this->media_handling($acf_csv_name, $post_id, $post_values,$get_import_type,$plugin,$hash_key,'',$header_array,$value_array,$indexs,$acf_wpname_element,$acf_image_meta);
480 + $failed_id = $wpdb->get_results(
481 + $wpdb->prepare(
482 + "SELECT post_title,post_id,image_shortcode,media_id,original_image FROM {$wpdb->prefix}ultimate_csv_importer_shortcode_manager WHERE post_id = %d AND original_image = %s AND image_shortcode = %s",
483 + absint( $post_id ),
484 + $acf_csv_name,
485 + $plugin . '_image__' . $acf_wpname_element
486 + )
487 + );
488 + if(!empty($attach_id)){
489 + $this->store_image_ids($attach_id ); //store the image id
490 + return $attach_id;
639 491 }
492 + elseif(empty($attach_id) || !empty($failed_id) || empty($failed_id)){
493 + if(empty($failed_id)){
494 + $post_info = array(
495 + 'guid' => $uploaddir_url . "/" . $fimg_name,
496 + 'post_mime_type' => $file_type,
497 + 'post_title' => 'image-failed',
498 + 'post_content' => '',
499 + 'post_status' => 'inherit',
500 + 'post_author' => isset($post_values['author']) ? $post_values['author'] : ''
501 + );
502 + $attach_id = wp_insert_attachment( $post_info,$uploaddir_path, $post_id );
503 + }
504 + elseif($failed_id[0]->original_image != $acf_csv_name){
505 + $post_info = array(
506 + 'guid' => $uploaddir_url . "/" . $fimg_name,
507 + 'post_mime_type' => $file_type,
508 + 'post_title' => 'image-failed',
509 + 'post_content' => '',
510 + 'post_status' => 'inherit',
511 + 'post_author' => $post_values['author']
512 + );
513 + $attach_id = wp_insert_attachment( $post_info,$uploaddir_path, $post_id );
514 + }
515 + elseif(($failed_id[0]->image_shortcode == 'Featured_image_') && ($failed_id[0]->original_image == $acf_csv_name)){
516 + $post_info = array(
517 + 'guid' => $uploaddir_url . "/" . $fimg_name,
518 + 'post_mime_type' => $file_type,
519 + 'post_title' => 'image-failed',
520 + 'post_content' => '',
521 + 'post_status' => 'inherit',
522 + 'post_author' => $post_values['author']
523 + );
524 + $attach_id = wp_insert_attachment( $post_info,$uploaddir_path, $post_id );
525 + }
526 + if(empty($failed_id)){
527 + $insert_status = $wpdb->insert($shortcode_table,
528 + array(
529 + 'post_id' => $post_id,
530 + 'post_title' => $post_title,
531 + 'image_shortcode' => $plugin.'_image__'.$acf_wpname_element,
532 + 'media_id' => $attach_id,
533 + 'original_image' => $acf_csv_name,
534 + 'indexs' => $indexs,
535 + 'image_meta' => $acf_image_meta,
536 + 'hash_key' => $hash_key,
537 + 'import_type' => $get_import_type,
538 + 'file_name' => $file_name
539 + ),
540 + array('%d','%s','%s','%d','%s','%d','%s','%s','%s','%s')
541 + );
542 + if($insert_status){
543 + $this->store_image_ids($attach_id);//store number of image ids
544 + $this->store_failed_image_ids($attach_id);//store failed image ids
545 + }
546 + }
547 + else{
548 + $media_id = $failed_id[0]->media_id;
549 + $attachment_id = $wpdb->get_results(
550 + $wpdb->prepare(
551 + "SELECT ID FROM {$wpdb->prefix}posts WHERE ID = %d AND post_title ='image-failed' AND post_type = 'attachment' AND guid LIKE %s",
552 + absint( $media_id ),
553 + '%' . $wpdb->esc_like( $fimg_name ) . '%'
554 + ),
555 + ARRAY_A
556 + );
557 + $attach_id= $attachment_id[0]['ID'];
558 + }
559 + return isset($attach_id) ? $attach_id : '';
560 + }else{
561 + $attachment_id = $wpdb->get_results(
562 + $wpdb->prepare(
563 + "SELECT ID FROM {$wpdb->prefix}posts WHERE post_title ='image-failed' AND post_type = 'attachment' AND guid LIKE %s",
564 + '%' . $wpdb->esc_like( $fimg_name ) . '%'
565 + ),
566 + ARRAY_A
567 + );
640 568 }
641 - }
642 -
569 + return $attach_id;
643 570 }
644 571 }
645 -
646 - function emr_get_match_url($url) {
647 - $url = $this->emr_remove_scheme($url);
648 - $url = $this->emr_maybe_remove_query_string($url);
649 - $url = $this->emr_remove_size_from_filename($url, true);
650 - $url = $this->emr_remove_domain_from_filename($url);
651 -
652 - return $url;
572 + public function store_image_ids($attach_id){
573 + //get number of images count
574 + $stored_ids = get_option('total_attachment_ids', '');
575 + $att_id = $attach_id;
576 + if ($stored_ids === '') {
577 + add_option('total_attachment_ids', serialize(array($att_id)));
578 + $stored_ids = unserialize(get_option('total_attachment_ids', ''));
579 + } else {
580 + $get_stored_ids = unserialize(get_option('total_attachment_ids', ''));
581 + if (is_array($get_stored_ids) && !empty($att_id)) {
582 + $att_id = is_array($att_id) ? $att_id : array($att_id);
583 + $stored_ids = array_merge($get_stored_ids,$att_id);
584 + } else {
585 + $stored_ids = $att_id;
586 + }
587 + update_option('total_attachment_ids', serialize($stored_ids));
588 + $stored_ids = unserialize(get_option('total_attachment_ids', ''));
589 + }
653 590 }
654 -
655 - function emr_remove_scheme( $url ) {
656 - return preg_replace( '/^(?:http|https):/', '', $url );
657 - }
658 -
659 - function emr_maybe_remove_query_string( $url ) {
660 - $parts = explode( '?', $url );
661 -
662 - return reset( $parts );
663 - }
664 -
665 - function emr_remove_size_from_filename( $url, $remove_extension = false ) {
666 - $url = preg_replace( '/^(\S+)-[0-9]{1,4}x[0-9]{1,4}(\.[a-zA-Z0-9\.]{2,})?/', '$1$2', $url );
667 -
668 - if ( $remove_extension ) {
669 - $ext = pathinfo( $url, PATHINFO_EXTENSION );
670 - $url = str_replace( ".$ext", '', $url );
671 - }
672 -
673 - return $url;
674 - }
675 -
676 - function emr_remove_domain_from_filename($url) {
677 - // Holding place for possible future function
678 - $url = str_replace($this->emr_remove_scheme(get_bloginfo('url')), '', $url);
679 - return $url;
680 - }
681 -
682 -
683 - function emr_get_file_urls( $guid, $metadata ) {
684 - $urls = array();
685 -
686 - $guid = $this->emr_remove_scheme( $guid );
687 - $guid= $this->emr_remove_domain_from_filename($guid);
688 -
689 - $urls['guid'] = $guid;
690 -
691 - if ( empty( $metadata ) ) {
692 - return $urls;
693 - }
694 -
695 - $base_url = dirname( $guid );
696 -
697 - if ( ! empty( $metadata['file'] ) ) {
698 - $urls['file'] = trailingslashit( $base_url ) . wp_basename( $metadata['file'] );
699 - }
700 -
701 - if ( ! empty( $metadata['sizes'] ) ) {
702 - foreach ( $metadata['sizes'] as $key => $value ) {
703 - $urls[ $key ] = trailingslashit( $base_url ) . wp_basename( $value['file'] );
591 + public function store_failed_image_ids($attach_id){
592 + //get number of failed images count
593 + $stored_ids = get_option('failed_attachment_ids', '');
594 + $att_id = $attach_id;
595 + if ($stored_ids === '') {
596 + add_option('failed_attachment_ids', serialize(array($att_id)));
597 + $stored_ids = unserialize(get_option('failed_attachment_ids', ''));
598 + } else {
599 + $get_stored_ids = unserialize(get_option('failed_attachment_ids', ''));
600 + if (is_array($get_stored_ids) && !empty($att_id)) {
601 + $att_id = is_array($att_id) ? $att_id : array($att_id);
602 + $stored_ids = array_merge($get_stored_ids,$att_id);
603 + } else {
604 + $stored_ids = $att_id;
605 + }
606 + update_option('failed_attachment_ids', serialize($stored_ids));
607 + $stored_ids = unserialize(get_option('failed_attachment_ids', ''));
704 608 }
705 - }
706 -
707 - return $urls;
708 609 }
709 610
710 - function emr_normalize_file_urls( $old, $new ) {
711 - $result = array();
712 -
713 - if ( empty( $new['guid'] ) ) {
714 - return $result;
715 - }
716 -
717 - $guid = $new['guid'];
718 -
719 - foreach ( $old as $key => $value ) {
720 - $result[ $key ] = empty( $new[ $key ] ) ? $guid : $new[ $key ];
721 - }
722 -
723 - return $result;
724 - }
725 -}
611 +}