Create New Item
Item Type
File
Folder
Item Name
Search file in folder and subfolders...
Are you sure want to rename?
firepot
/
wp-content
/
plugins
/
coming-soon
/
app
:
import-cross-site-functions.php
Advanced Search
Upload
New Item
Settings
Back
Back Up
Advanced Editor
Save
<?php /** * Cross-site paste ajax functions */ if ( defined( 'DOING_AJAX' ) ) { add_action( 'wp_ajax_seedprod_lite_import_cross_site_paste', 'seedprod_lite_import_cross_site_paste' ); } /** * At cross site paste uploading images and changing links. * * @param string $data Page data. */ function seedprod_lite_process_image_filenames_import_cross_site( $data ) { $output = array( 'data' => '', 'images' => array(), ); $regex = '/(http)[^\s\'"]+?(png|jpg|jpeg|gif|ico|svg|bmp|tiff|webp)[^\s\'"]*?(?=[\'"])/i'; $img_srcs = array(); preg_match_all( $regex, $data, $img_srcs ); // Eliminate duplicates & pair with extension match from above. $unique_img_srcs_extensions = array(); foreach ( $img_srcs[0] as $index => $img_src ) { $unique_img_srcs_extensions[ $img_src ] = $img_srcs[2][ $index ]; } // Need to decode data as WordPress is encoding special characters such as & to & which is. // interfering with Unsplash URLs & making it hard to find / replace URLs in strings. $processed_data = wp_specialchars_decode( $data ); foreach ( $unique_img_srcs_extensions as $old_url => $extension ) { $prefix = 'themebuilder'; // Likewise, decode search string. $old_url_decoded = wp_specialchars_decode( $old_url ); $alphanumeric_chars = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'; $random_chars = substr( str_shuffle( $alphanumeric_chars ), 0, 16 ); $image_url = trim( urldecode( $old_url ) ); $upload_dir = wp_upload_dir(); $contentdirimport = trailingslashit( $upload_dir['baseurl'] ) . 'seedprod-themes-imports/'; $plugin_img_url = $old_url_decoded; $new_url_id = seedprod_lite_insert_attachment_from_url( $plugin_img_url ); $new_url = wp_get_attachment_url( $new_url_id ); if ( is_wp_error( $new_url ) ) { echo esc_html( $new_url->get_error_message() ); } else { $processed_data = str_replace( $old_url_decoded, $new_url, $processed_data ); } $output['images'][] = array( 'prefix' => $prefix, 'extension' => $extension, 'old_url' => $old_url_decoded, 'new_url' => $new_url, ); } $output['data'] = $processed_data; return $output; } /** * Process Paste Cross-site JSON * * @param mixed $json_content Json content of theme template. * @return string. */ function seedprod_lite_landing_import_cross_site_json( $json_content = null ) { $full_code = $json_content; $processed_cross_site_data_import = seedprod_lite_process_image_filenames_import_cross_site( $full_code ); $udpate_json_content = $processed_cross_site_data_import['data']; return $udpate_json_content; } /** * Cross site paste method */ function seedprod_lite_import_cross_site_paste() { if ( check_ajax_referer( 'seedprod_lite_import_cross_site_paste' ) ) { if ( ! current_user_can( apply_filters( 'seedprod_import_export', 'edit_others_posts' ) ) ) { wp_send_json_error(); } $url = wp_nonce_url( 'admin.php?page=seedprod_lite_import_cross_site_paste', 'seedprod_import_cross_site_paste' ); $data = isset( $_REQUEST['settings'] ) ? sanitize_text_field( wp_unslash( $_REQUEST['settings'] ) ) : ''; $cross_site_data = seedprod_lite_landing_import_cross_site_json( $data ); echo wp_kses( $cross_site_data, 'post' ); exit; } }