}is', $res['cont'] , $matches); */ $content =wp_automatic_str_replace( 'src="//', 'src="' . $scheme . '://', $content ); $content =wp_automatic_str_replace( 'href="//', 'href="' . $scheme . '://', $content ); preg_match_all ( '{(?:href|src)[\s]*=[\s]*["|\'](.*?)["|\'].*?>}is', $content, $matches ); $img_srcs = ($matches [1]); $img_srcs = array_filter ( $img_srcs ); foreach ( $img_srcs as $img_src ) { $original_src = $img_src; if (stristr ( $img_src, 'http:' ) || stristr ( $img_src, 'www.' ) || stristr ( $img_src, 'https:' ) || stristr ( $img_src, 'data:' ) || stristr ( $img_src, '#' ) ) { // valid image } else { // not valid image i.e relative path starting with a / or not or // $img_src = wp_automatic_trim( $img_src ); if (preg_match ( '{^//}', $img_src )) { $img_src = $scheme . ':' . $img_src; } elseif (preg_match ( '{^/}', $img_src )) { $img_src = $scheme . '://' . $host . $img_src; } else { if( stristr($img_src , '../') ){ $img_src = wp_automatic_rel2abs($img_src, $base_for_reltoabs_fn); }else{ $img_src = $base_url . '/' . $img_src; } } $reg_img = '{["|\'][\s]*' . preg_quote ( $original_src, '{' ) . '[\s]*["|\']}s'; $content = preg_replace ( $reg_img, '"' . $img_src . '"', $content ); } } // Fix Srcset preg_match_all ( '{srcset[\s]*=[\s]*["|\'](.*?)["|\']}s', $content, $srcset_matches ); $srcset_matches_raw = $srcset_matches [0]; $srcset_matches_inner = $srcset_matches [1]; $i = 0; foreach ( $srcset_matches_raw as $srcset ) { if (stristr ( $srcset, 'http:' ) || stristr ( $srcset, 'https:' ) || stristr($srcset, 'data:image' ) ) { // valid } else { // lets fix $correct_srcset = $srcset_inner = $srcset_matches_inner [$i]; $srcset_inner_parts = explode ( ',', $srcset_inner ); foreach ( $srcset_inner_parts as $srcset_row ) { $srcset_row_parts = explode ( ' ', wp_automatic_trim( $srcset_row ) ); $img_src_raw = $img_src = $srcset_row_parts [0]; if (preg_match ( '{^//}', $img_src )) { $img_src = $scheme . ':' . $img_src; } elseif (preg_match ( '{^/}', $img_src )) { $img_src = $scheme . '://' . $host . $img_src; } else { $img_src = $scheme . '://' . $host . '/' . $img_src; } $srcset_row_correct =wp_automatic_str_replace( $img_src_raw, $img_src, $srcset_row ); $correct_srcset =wp_automatic_str_replace( $srcset_row, $srcset_row_correct, $correct_srcset ); } $content =wp_automatic_str_replace( $srcset_inner, $correct_srcset, $content ); } $i ++; } // Fix relative links $content =wp_automatic_str_replace( 'href="../', 'href="http://' . $host . '/', $content ); $content = preg_replace ( '{href="/(\w)}', 'href="http://' . $host . '/$1', $content ); $content = preg_replace ( '{href=/(\w)}', 'href=http://' . $host . '/$1', $content ); // 0){ switch ($category) { case 1: return 'EBAY-US'; break; case 2: return 'EBAY-IE'; break; case 3: return 'EBAY-AT'; break; case 4: return 'EBAY-AU'; break; case 5: return 'EBAY-FRBE'; break; case 7: return 'EBAY-ENCA'; break; case 10: return 'EBAY-FR'; break; case 11: return 'EBAY-DE'; break; case 12: return 'EBAY-IT'; break; case 13: return 'EBAY-ES'; break; case 14: return 'EBAY-CH'; break; case 15: return 'EBAY-GB'; break; case 16: return 'EBAY-NL'; break; default: return 'EBAY-US'; break; } }else{ return $category; } } //check if the 'microsoft', 'xbox-scarlett' fix json and remove slashes function wp_automatic_fix_json_and_slashes($part){ if(preg_match ("!^'.*?'$!" , $part)){ echo '
Fixing json part and removing slashes....'; $part = wp_automatic_fix_json_part($part); if(wp_automatic_trim($part ) != ''){ //remove slashes $part_parts = explode(',', $part); foreach($part_parts as $key => $part_part){ $part_part = wp_automatic_trim($part_part); if(preg_match ("!^'.*?'$!" , $part_part)){ $part_part = preg_replace( "!^'(.*?)'$!" , "$1" , $part_part ); $part_parts[$key] = $part_part; } } if(is_array($part_parts) && count($part_parts) > 0){ $part = implode(',' , $part_parts); } } } return $part; } //convert extracted part from json to regular text function wp_automatic_fix_json_part($json_part){ $json_string = '["' . $json_part . '"]'; $json = json_decode($json_string) ; return $json[0]; } //convert a relative url to a complete function wp_automatic_rel2abs($rel, $base) { /* return if already absolute URL */ if (parse_url($rel, PHP_URL_SCHEME) != '') return $rel; /* queries and anchors */ if ($rel[0]=='#' || $rel[0]=='?') return $base.$rel; /* parse base URL and convert to local variables: $scheme, $host, $path */ extract(parse_url($base)); /* remove non-directory element from path */ $path = preg_replace('#/[^/]*$#', '', $path); /* destroy path if relative url points to root */ if ($rel[0] == '/') $path = ''; /* dirty absolute URL */ $abs = "$host$path/$rel"; /* replace '//' or '/./' or '/foo/../' with '/' */ $re = array('#(/\.?/)#', '#/(?!\.\.)[^/]+/\.\./#'); for($n=1; $n>0; $abs=preg_replace($re, '/', $abs, -1, $n)) {} /* absolute URL is ready! */ return $scheme.'://'.$abs; } /** * a new log record from outside the core * @param unknown $type * @param unknown $data */ function wp_automatic_log_new($type, $data){ global $wpdb; $now = date ( 'Y-m-d H:i:s' ); $data = @addslashes ( $data ); $query = "INSERT INTO {$wpdb->prefix}automatic_log (action,date,data) values('$type','$now','$data')"; $wpdb->query ( $query ); } function remove_taxonomies_metaboxes() { remove_meta_box( 'td_post_theme_settings_metabox', 'wp_automatic', 'normal' ); } add_action( 'add_meta_boxes_wp_automatic' , 'remove_taxonomies_metaboxes' ,50); /** * Add a custom product attribute. * @param int $product_id * @param string $attribute_name * @param string $attribute_value */ function wp_automatic_add_product_attribute( $product_id, $attribute_name, $attribute_value ) { $product_attributes = get_post_meta( $product_id, '_product_attributes', true ); if ( ! is_array( $product_attributes ) ) { $product_attributes = array(); } $product_attributes[$attribute_name] = array( 'name' => $attribute_name, 'value' => $attribute_value, 'is_visible' => 1, 'is_variation' => 1, 'is_taxonomy' => 0, ); update_post_meta( $product_id, '_product_attributes', $product_attributes ); } function wp_automatic_add_product_attribute_new($product_id, $attribute_name, $attribute_value) { // Get the product object $product = wc_get_product($product_id); // Get the attribute ID from the attribute name $attribute_id = wc_attribute_taxonomy_id_by_name($attribute_name); var_dump($attribute_id); exit; print_r( $attribute_id); exit; // Set the attribute value if ($attribute_id) { // Set an existing attribute $product_attributes = $product->get_attributes(); $attribute_slug = 'pa_' . $attribute_name; if (isset($product_attributes[$attribute_slug])) { $product_attributes[$attribute_slug]->set_options(array($attribute_value)); $product->set_attributes($product_attributes); } else { // If the attribute doesn't exist, create a new one $product->set_attribute($attribute_name, $attribute_value); } } else { // Add a new custom attribute $product->update_meta_data($attribute_name, $attribute_value); } // Save the product object $product->save(); } /** * Function to search posts with a specific title and post type * @param string $title * @param string $post_type * @return boolean true|false */ function wp_automatic_get_page_by_title ( $title, $output ='OBJECT', $post_type ='post' ){ $query = new WP_Query( array( 'post_type' => $post_type, 'title' => $title, 'post_status' => 'all', 'posts_per_page' => 1, 'no_found_rows' => true, 'ignore_sticky_posts' => true, 'update_post_term_cache' => false, 'update_post_meta_cache' => false, 'orderby' => 'post_date ID', 'order' => 'ASC', ) ); if ( ! empty( $query->post ) ) { return true; } else { return false; } } //stop wp_postmeta query on all posts on edit.php page when loading all campaigns //causes a fatal memory error fix ticket:23361 function exclude_post_meta_cache($pre, $post_id) { // Check if we are on the edit.php page for the 'wp_automatic' post type if (is_admin() && isset($_GET['post_type']) && $_GET['post_type'] === 'wp_automatic') { return false; // Bypass the post meta cache update } return $pre; // Continue with the default behavior } add_filter('update_post_metadata_cache', 'exclude_post_meta_cache', 10, 4); ?> Week 2 Carnivore Results | Big Changes Happening | The Week Ahead #keto #carnivore #weightloss - Amusepark
You might also like