Edit File by line

Deprecated: str_replace(): Passing null to parameter #2 ($replace) of type array|string is deprecated in /home/sportsfever/public_html/filemanger/function.php on line 93

Warning: Undefined array key "page_file_edit_line" in /home/sportsfever/public_html/filemanger/edit_text_line.php on line 32
/home/sportsfe.../httpdocs/clone/wp-conte.../themes/Divi/core/componen...
File: Portability.php
et_core_nonce_verified_previously();
[2000] Fix | Delete
[2001] Fix | Delete
return isset( $_POST['timestamp'] ) && ! empty( $_POST['timestamp'] ) ? sanitize_text_field( $_POST['timestamp'] ) : current_time( 'timestamp' );
[2002] Fix | Delete
}
[2003] Fix | Delete
[2004] Fix | Delete
/**
[2005] Fix | Delete
* Returns Global Presets used for a given shortcode only
[2006] Fix | Delete
*
[2007] Fix | Delete
* @since 3.26
[2008] Fix | Delete
*
[2009] Fix | Delete
* @param array $shortcode_object - The multidimensional array representing a page structure
[2010] Fix | Delete
* @param array $used_global_presets
[2011] Fix | Delete
*
[2012] Fix | Delete
* @return array - The list of the Global Presets
[2013] Fix | Delete
*
[2014] Fix | Delete
*/
[2015] Fix | Delete
protected function get_used_global_presets( $shortcode_object, $used_global_presets = array() ) {
[2016] Fix | Delete
$global_presets_manager = ET_Builder_Global_Presets_Settings::instance();
[2017] Fix | Delete
[2018] Fix | Delete
foreach ( $shortcode_object as $module ) {
[2019] Fix | Delete
$module_type = $global_presets_manager->maybe_convert_module_type( $module['type'], $module['attrs'] );
[2020] Fix | Delete
$preset_id = $global_presets_manager->get_module_preset_id( $module_type, $module['attrs'] );
[2021] Fix | Delete
$preset = $global_presets_manager->get_module_preset( $module_type, $preset_id );
[2022] Fix | Delete
[2023] Fix | Delete
if ( $preset_id !== 'default' && count( (array) $preset ) !== 0 && count( (array) $preset->settings ) !== 0 ) {
[2024] Fix | Delete
if ( ! isset( $used_global_presets[ $module_type ] ) ) {
[2025] Fix | Delete
$used_global_presets[ $module_type ] = (object) array(
[2026] Fix | Delete
'presets' => (object) array(),
[2027] Fix | Delete
);
[2028] Fix | Delete
}
[2029] Fix | Delete
[2030] Fix | Delete
if ( ! isset( $used_global_presets[ $module_type ]->presets->$preset_id ) ) {
[2031] Fix | Delete
$used_global_presets[ $module_type ]->presets->$preset_id = (object) array(
[2032] Fix | Delete
'name' => $preset->name,
[2033] Fix | Delete
'version' => $preset->version,
[2034] Fix | Delete
'settings' => $preset->settings,
[2035] Fix | Delete
);
[2036] Fix | Delete
}
[2037] Fix | Delete
[2038] Fix | Delete
if ( ! isset( $used_global_presets[ $module_type ]->default ) ) {
[2039] Fix | Delete
$used_global_presets[ $module_type ]->default = $global_presets_manager->get_module_default_preset_id( $module_type );
[2040] Fix | Delete
}
[2041] Fix | Delete
}
[2042] Fix | Delete
[2043] Fix | Delete
if ( is_array( $module['content'] ) ) {
[2044] Fix | Delete
$used_global_presets = array_merge( $used_global_presets, $this->get_used_global_presets( $module['content'], $used_global_presets ) );
[2045] Fix | Delete
}
[2046] Fix | Delete
}
[2047] Fix | Delete
[2048] Fix | Delete
return $used_global_presets;
[2049] Fix | Delete
}
[2050] Fix | Delete
[2051] Fix | Delete
/**
[2052] Fix | Delete
* Enqueue assets.
[2053] Fix | Delete
*
[2054] Fix | Delete
* @since 2.7.0
[2055] Fix | Delete
*/
[2056] Fix | Delete
public function assets() {
[2057] Fix | Delete
$time = '<span>1</span>';
[2058] Fix | Delete
[2059] Fix | Delete
wp_enqueue_style( 'et-core-portability', ET_CORE_URL . 'admin/css/portability.css', array(
[2060] Fix | Delete
'et-core-admin',
[2061] Fix | Delete
), ET_CORE_VERSION );
[2062] Fix | Delete
wp_enqueue_script( 'et-core-portability', ET_CORE_URL . 'admin/js/portability.js', array(
[2063] Fix | Delete
'jquery',
[2064] Fix | Delete
'jquery-ui-tabs',
[2065] Fix | Delete
'jquery-form',
[2066] Fix | Delete
'et-core-admin',
[2067] Fix | Delete
), ET_CORE_VERSION );
[2068] Fix | Delete
wp_localize_script( 'et-core-portability', 'etCorePortability', array(
[2069] Fix | Delete
'nonces' => array(
[2070] Fix | Delete
'import' => wp_create_nonce( 'et_core_portability_import' ),
[2071] Fix | Delete
'export' => wp_create_nonce( 'et_core_portability_export' ),
[2072] Fix | Delete
'cancel' => wp_create_nonce( 'et_core_portability_cancel' ),
[2073] Fix | Delete
),
[2074] Fix | Delete
'postMaxSize' => $this->to_megabytes( @ini_get( 'post_max_size' ) ),
[2075] Fix | Delete
'uploadMaxSize' => $this->to_megabytes( @ini_get( 'upload_max_filesize' ) ),
[2076] Fix | Delete
'text' => array(
[2077] Fix | Delete
'browserSupport' => esc_html__( 'The browser version you are currently using is outdated. Please update to the newest version.', ET_CORE_TEXTDOMAIN ),
[2078] Fix | Delete
'memoryExhausted' => esc_html__( 'You reached your server memory limit. Please try increasing your PHP memory limit.', ET_CORE_TEXTDOMAIN ),
[2079] Fix | Delete
'maxSizeExceeded' => esc_html__( 'This file cannot be imported. It may be caused by file_uploads being disabled in your php.ini. It may also be caused by post_max_size or/and upload_max_filesize being smaller than file selected. Please increase it or transfer more substantial data at the time.', ET_CORE_TEXTDOMAIN ),
[2080] Fix | Delete
'invalideFile' => esc_html__( 'Invalid File format. You should be uploading a JSON file.', ET_CORE_TEXTDOMAIN ),
[2081] Fix | Delete
'importContextFail' => esc_html__( 'This file should not be imported in this context.', ET_CORE_TEXTDOMAIN ),
[2082] Fix | Delete
'noItemsSelected' => esc_html__( 'Please select at least one item to export or disable the "Only export selected items" option', ET_CORE_TEXTDOMAIN ),
[2083] Fix | Delete
'importing' => sprintf( esc_html__( 'Import estimated time remaining: %smin', ET_CORE_TEXTDOMAIN ), $time ),
[2084] Fix | Delete
'exporting' => sprintf( esc_html__( 'Export estimated time remaining: %smin', ET_CORE_TEXTDOMAIN ), $time ),
[2085] Fix | Delete
'backuping' => sprintf( esc_html__( 'Backup estimated time remaining: %smin', ET_CORE_TEXTDOMAIN ), $time ),
[2086] Fix | Delete
),
[2087] Fix | Delete
) );
[2088] Fix | Delete
}
[2089] Fix | Delete
[2090] Fix | Delete
/**
[2091] Fix | Delete
* Modal HTML.
[2092] Fix | Delete
*
[2093] Fix | Delete
* @since 2.7.0
[2094] Fix | Delete
*/
[2095] Fix | Delete
public function modal() {
[2096] Fix | Delete
$export_url = add_query_arg( array(
[2097] Fix | Delete
'et_core_portability' => true,
[2098] Fix | Delete
'context' => $this->instance->context,
[2099] Fix | Delete
'name' => $this->instance->name,
[2100] Fix | Delete
'nonce' => wp_create_nonce( 'et_core_portability_export' ),
[2101] Fix | Delete
[2102] Fix | Delete
), admin_url() );
[2103] Fix | Delete
[2104] Fix | Delete
?>
[2105] Fix | Delete
<div class="et-core-modal-overlay et-core-form" data-et-core-portability="<?php echo esc_attr( $this->instance->context ); ?>">
[2106] Fix | Delete
<div class="et-core-modal">
[2107] Fix | Delete
<div class="et-core-modal-header">
[2108] Fix | Delete
<h3 class="et-core-modal-title"><?php esc_html_e( 'Portability', ET_CORE_TEXTDOMAIN ); ?></h3><a href="#" class="et-core-modal-close" data-et-core-modal="close"></a>
[2109] Fix | Delete
</div>
[2110] Fix | Delete
<div data-et-core-tabs class="et-core-modal-tabs-enabled">
[2111] Fix | Delete
<ul class="et-core-tabs">
[2112] Fix | Delete
<li><a href="#et-core-portability-export"><?php esc_html_e( 'Export', ET_CORE_TEXTDOMAIN ); ?></a></li>
[2113] Fix | Delete
<li><a href="#et-core-portability-import"><?php esc_html_e( 'Import', ET_CORE_TEXTDOMAIN ); ?></a></li>
[2114] Fix | Delete
</ul>
[2115] Fix | Delete
<div id="et-core-portability-export">
[2116] Fix | Delete
<div class="et-core-modal-content">
[2117] Fix | Delete
<?php printf( esc_html__( 'Exporting your %s will create a JSON file that can be imported into a different website.', ET_CORE_TEXTDOMAIN ), esc_html( $this->instance->name ) ); ?>
[2118] Fix | Delete
<h3><?php esc_html_e( 'Export File Name', ET_CORE_TEXTDOMAIN ); ?></h3>
[2119] Fix | Delete
<form class="et-core-portability-export-form">
[2120] Fix | Delete
<input type="text" name="" value="<?php echo esc_attr( $this->instance->name ); ?>">
[2121] Fix | Delete
<?php if ( 'post_type' === $this->instance->type ) : ?>
[2122] Fix | Delete
<div class="et-core-clearfix"></div>
[2123] Fix | Delete
<label><input type="checkbox" name="et-core-portability-posts"/><?php esc_html_e( 'Only export selected items', ET_CORE_TEXTDOMAIN ); ?></label>
[2124] Fix | Delete
<?php endif; ?>
[2125] Fix | Delete
</form>
[2126] Fix | Delete
</div>
[2127] Fix | Delete
<a class="et-core-modal-action" href="#" data-et-core-portability-export="<?php echo esc_url( $export_url ); ?>"><?php printf( esc_html__( 'Export %s', ET_CORE_TEXTDOMAIN ), esc_html( $this->instance->name ) ); ?></a>
[2128] Fix | Delete
<a class="et-core-modal-action et-core-button-danger" href="#" data-et-core-portability-cancel><?php esc_html_e( 'Cancel Export', ET_CORE_TEXTDOMAIN ); ?></a>
[2129] Fix | Delete
</div>
[2130] Fix | Delete
<div id="et-core-portability-import">
[2131] Fix | Delete
<div class="et-core-modal-content">
[2132] Fix | Delete
<?php if ( 'post' === $this->instance->type ) : ?>
[2133] Fix | Delete
<?php printf( esc_html__( 'Importing a previously-exported %s file will overwrite all content currently on this page.', ET_CORE_TEXTDOMAIN ), esc_html( $this->instance->name ) ); ?>
[2134] Fix | Delete
<?php elseif ( 'post_type' === $this->instance->type ) : ?>
[2135] Fix | Delete
<?php printf( esc_html__( 'Select a previously-exported Divi Builder Layouts file to begin importing items. Large collections of image-heavy exports may take several minutes to upload.', ET_CORE_TEXTDOMAIN ), esc_html( $this->instance->name ) ); ?>
[2136] Fix | Delete
<?php else : ?>
[2137] Fix | Delete
<?php printf( esc_html__( 'Importing a previously-exported %s file will overwrite all current data. Please proceed with caution!', ET_CORE_TEXTDOMAIN ), esc_html( $this->instance->name ) ); ?>
[2138] Fix | Delete
<?php endif; ?>
[2139] Fix | Delete
<h3><?php esc_html_e( 'Select File To Import', ET_CORE_TEXTDOMAIN ); ?></h3>
[2140] Fix | Delete
<form class="et-core-portability-import-form">
[2141] Fix | Delete
<span class="et-core-portability-import-placeholder"><?php esc_html_e( 'No File Selected', ET_CORE_TEXTDOMAIN ); ?></span>
[2142] Fix | Delete
<button class="et-core-button"><?php esc_html_e( 'Choose File', ET_CORE_TEXTDOMAIN ); ?></button>
[2143] Fix | Delete
<input type="file">
[2144] Fix | Delete
<div class="et-core-clearfix"></div>
[2145] Fix | Delete
<?php if ( 'post_type' !== $this->instance->type ) : ?>
[2146] Fix | Delete
<label><input type="checkbox" name="et-core-portability-import-backup" /><?php esc_html_e( 'Download backup before importing', ET_CORE_TEXTDOMAIN ); ?></label>
[2147] Fix | Delete
<?php endif; ?>
[2148] Fix | Delete
<?php if ( 'post_type' === $this->instance->type ) : ?>
[2149] Fix | Delete
<label><input type="checkbox" name="et-core-portability-import-include-global-presets" /><?php esc_html_e( 'Import Presets', ET_CORE_TEXTDOMAIN ); ?></label>
[2150] Fix | Delete
<?php endif; ?>
[2151] Fix | Delete
</form>
[2152] Fix | Delete
</div>
[2153] Fix | Delete
<a class="et-core-modal-action et-core-portability-import" href="#"><?php printf( esc_html__( 'Import %s', ET_CORE_TEXTDOMAIN ), esc_html( $this->instance->name ) ); ?></a>
[2154] Fix | Delete
<a class="et-core-modal-action et-core-button-danger" href="#" data-et-core-portability-cancel><?php esc_html_e( 'Cancel Import', ET_CORE_TEXTDOMAIN ); ?></a>
[2155] Fix | Delete
</div>
[2156] Fix | Delete
</div>
[2157] Fix | Delete
</div>
[2158] Fix | Delete
</div>
[2159] Fix | Delete
<?php
[2160] Fix | Delete
}
[2161] Fix | Delete
}
[2162] Fix | Delete
[2163] Fix | Delete
[2164] Fix | Delete
if ( ! function_exists( 'et_core_portability_register' ) ) :
[2165] Fix | Delete
/**
[2166] Fix | Delete
* Register portability.
[2167] Fix | Delete
*
[2168] Fix | Delete
* This function should be called in an 'admin_init' action callback.
[2169] Fix | Delete
*
[2170] Fix | Delete
* @since 2.7.0
[2171] Fix | Delete
*
[2172] Fix | Delete
* @param string $context A unique ID used to register the portability arguments.
[2173] Fix | Delete
*
[2174] Fix | Delete
* @param array $args {
[2175] Fix | Delete
* Array of arguments used to register the portability.
[2176] Fix | Delete
*
[2177] Fix | Delete
* @type string $name The name used in the various text string.
[2178] Fix | Delete
* @type bool $view Whether the assets and content should load or not.
[2179] Fix | Delete
* Example: `isset( $_GET['page'] ) && $_GET['page'] == 'example'`.
[2180] Fix | Delete
* @type string $db The option_name from the wp_option table used to export and import data.
[2181] Fix | Delete
* @type array $include Optional. Array of all the options scritcly included. Options ids must be set
[2182] Fix | Delete
* as the array keys.
[2183] Fix | Delete
* @type array $exclude Optional. Array of excluded options. Options ids must be set as the array keys.
[2184] Fix | Delete
* }
[2185] Fix | Delete
*/
[2186] Fix | Delete
function et_core_portability_register( $context, $args ) {
[2187] Fix | Delete
$defaults = array(
[2188] Fix | Delete
'context' => $context,
[2189] Fix | Delete
'name' => false,
[2190] Fix | Delete
'view' => false,
[2191] Fix | Delete
'type' => false,
[2192] Fix | Delete
'target' => false,
[2193] Fix | Delete
'include' => array(),
[2194] Fix | Delete
'exclude' => array(),
[2195] Fix | Delete
);
[2196] Fix | Delete
[2197] Fix | Delete
$data = apply_filters( "et_core_portability_args_{$context}", (object) array_merge( $defaults, (array) $args ) );
[2198] Fix | Delete
[2199] Fix | Delete
et_core_cache_set( $context, $data, 'et_core_portability' );
[2200] Fix | Delete
[2201] Fix | Delete
// Stop here if not allowed.
[2202] Fix | Delete
if ( function_exists( 'et_pb_is_allowed' ) && ! et_pb_is_allowed( array( 'portability', "{$data->context}_portability" ) ) ) {
[2203] Fix | Delete
[2204] Fix | Delete
// Set view to false if not allowed.
[2205] Fix | Delete
$data->view = false;
[2206] Fix | Delete
et_core_cache_set( $context, $data, 'et_core_portability' );
[2207] Fix | Delete
[2208] Fix | Delete
return;
[2209] Fix | Delete
}
[2210] Fix | Delete
[2211] Fix | Delete
if ( $data->view ) {
[2212] Fix | Delete
et_core_portability_load( $context );
[2213] Fix | Delete
}
[2214] Fix | Delete
}
[2215] Fix | Delete
endif;
[2216] Fix | Delete
[2217] Fix | Delete
[2218] Fix | Delete
if ( ! function_exists( 'et_core_portability_load' ) ) :
[2219] Fix | Delete
/**
[2220] Fix | Delete
* Load Portability class.
[2221] Fix | Delete
*
[2222] Fix | Delete
* @since 2.7.0
[2223] Fix | Delete
*
[2224] Fix | Delete
* @param string $context A unique ID used to register the portability arguments.
[2225] Fix | Delete
* @return ET_Core_Portability
[2226] Fix | Delete
*/
[2227] Fix | Delete
function et_core_portability_load( $context ) {
[2228] Fix | Delete
return new ET_Core_Portability( $context );
[2229] Fix | Delete
}
[2230] Fix | Delete
endif;
[2231] Fix | Delete
[2232] Fix | Delete
[2233] Fix | Delete
if ( ! function_exists( 'et_core_portability_link' ) ) :
[2234] Fix | Delete
/**
[2235] Fix | Delete
* HTML link to trigger the portability modal.
[2236] Fix | Delete
*
[2237] Fix | Delete
* @since 2.7.0
[2238] Fix | Delete
*
[2239] Fix | Delete
* @param string $context The context used to register the portability.
[2240] Fix | Delete
* @param string|array $attributes Optional. Query string or array of attributes. Default empty.
[2241] Fix | Delete
*
[2242] Fix | Delete
* @return string
[2243] Fix | Delete
*/
[2244] Fix | Delete
function et_core_portability_link( $context, $attributes = array() ) {
[2245] Fix | Delete
$instance = et_core_cache_get( $context, 'et_core_portability' );
[2246] Fix | Delete
[2247] Fix | Delete
if ( ! $capability = et_core_portability_cap( $context ) ) {
[2248] Fix | Delete
return '';
[2249] Fix | Delete
}
[2250] Fix | Delete
[2251] Fix | Delete
if ( ! current_user_can( $capability ) || ! ( isset( $instance->view ) && $instance->view ) ) {
[2252] Fix | Delete
return '';
[2253] Fix | Delete
}
[2254] Fix | Delete
[2255] Fix | Delete
$defaults = array(
[2256] Fix | Delete
'title' => esc_attr__( 'Import & Export', ET_CORE_TEXTDOMAIN ),
[2257] Fix | Delete
);
[2258] Fix | Delete
$attributes = array_merge( $defaults, $attributes );
[2259] Fix | Delete
[2260] Fix | Delete
// Forced attributes.
[2261] Fix | Delete
$attributes['href'] = '#';
[2262] Fix | Delete
$context = esc_attr( $context );
[2263] Fix | Delete
$attributes['data-et-core-modal'] = "[data-et-core-portability='{$context}']";
[2264] Fix | Delete
[2265] Fix | Delete
$string = '';
[2266] Fix | Delete
[2267] Fix | Delete
foreach ( $attributes as $attribute => $value ) {
[2268] Fix | Delete
if ( null !== $value ){
[2269] Fix | Delete
$string .= esc_attr( $attribute ) . '="' . esc_attr( $value ) . '" ';
[2270] Fix | Delete
}
[2271] Fix | Delete
}
[2272] Fix | Delete
[2273] Fix | Delete
return sprintf(
[2274] Fix | Delete
'<a %1$s><span>%2$s</span></a>',
[2275] Fix | Delete
trim( $string ),
[2276] Fix | Delete
esc_html( $attributes['title'] )
[2277] Fix | Delete
);
[2278] Fix | Delete
}
[2279] Fix | Delete
endif;
[2280] Fix | Delete
[2281] Fix | Delete
[2282] Fix | Delete
if ( ! function_exists( 'et_core_portability_ajax_import' ) ) :
[2283] Fix | Delete
/**
[2284] Fix | Delete
* Ajax portability Import.
[2285] Fix | Delete
*
[2286] Fix | Delete
* @since 2.7.0
[2287] Fix | Delete
*/
[2288] Fix | Delete
function et_core_portability_ajax_import() {
[2289] Fix | Delete
if ( ! isset( $_POST['context'] ) ) {
[2290] Fix | Delete
et_core_die();
[2291] Fix | Delete
}
[2292] Fix | Delete
[2293] Fix | Delete
$context = sanitize_text_field( $_POST['context'] );
[2294] Fix | Delete
$post_id = isset( $_POST['post'] ) ? (int) $_POST['post'] : 0;
[2295] Fix | Delete
$replace = isset( $_POST['replace'] ) ? '1' === $_POST['replace'] : false;
[2296] Fix | Delete
[2297] Fix | Delete
if ( ! $capability = et_core_portability_cap( $context ) ) {
[2298] Fix | Delete
et_core_die();
[2299] Fix | Delete
}
[2300] Fix | Delete
[2301] Fix | Delete
if ( ! et_core_security_check_passed( $capability, 'et_core_portability_import', 'nonce' ) ) {
[2302] Fix | Delete
et_core_die();
[2303] Fix | Delete
}
[2304] Fix | Delete
[2305] Fix | Delete
$portability = et_core_portability_load( $context );
[2306] Fix | Delete
[2307] Fix | Delete
if ( ! $result = $portability->import() ) {
[2308] Fix | Delete
wp_send_json_error();
[2309] Fix | Delete
} else if ( is_array( $result ) && isset( $result['message'] ) ) {
[2310] Fix | Delete
wp_send_json_error( $result );
[2311] Fix | Delete
} else if ( $result ) {
[2312] Fix | Delete
if ( $replace && $post_id > 0 && current_user_can( 'edit_post', $post_id ) ) {
[2313] Fix | Delete
wp_update_post( array(
[2314] Fix | Delete
'ID' => $post_id,
[2315] Fix | Delete
'post_content' => $result['postContent'],
[2316] Fix | Delete
) );
[2317] Fix | Delete
}
[2318] Fix | Delete
[2319] Fix | Delete
wp_send_json_success( $result );
[2320] Fix | Delete
}
[2321] Fix | Delete
[2322] Fix | Delete
wp_send_json_error();
[2323] Fix | Delete
}
[2324] Fix | Delete
add_action( 'wp_ajax_et_core_portability_import', 'et_core_portability_ajax_import' );
[2325] Fix | Delete
endif;
[2326] Fix | Delete
[2327] Fix | Delete
[2328] Fix | Delete
if ( ! function_exists( 'et_core_portability_ajax_export' ) ) :
[2329] Fix | Delete
/**
[2330] Fix | Delete
* Ajax portability Export.
[2331] Fix | Delete
*
[2332] Fix | Delete
* @since 2.7.0
[2333] Fix | Delete
*/
[2334] Fix | Delete
function et_core_portability_ajax_export() {
[2335] Fix | Delete
if ( ! isset( $_POST['context'] ) ) {
[2336] Fix | Delete
et_core_die();
[2337] Fix | Delete
}
[2338] Fix | Delete
[2339] Fix | Delete
$context = sanitize_text_field( $_POST['context'] );
[2340] Fix | Delete
[2341] Fix | Delete
if ( ! $capability = et_core_portability_cap( $context ) ) {
[2342] Fix | Delete
et_core_die();
[2343] Fix | Delete
}
[2344] Fix | Delete
[2345] Fix | Delete
if ( ! et_core_security_check_passed( $capability, 'et_core_portability_export', 'nonce' ) ) {
[2346] Fix | Delete
et_core_die();
[2347] Fix | Delete
}
[2348] Fix | Delete
[2349] Fix | Delete
et_core_portability_load( $context )->export();
[2350] Fix | Delete
[2351] Fix | Delete
wp_send_json_error();
[2352] Fix | Delete
}
[2353] Fix | Delete
add_action( 'wp_ajax_et_core_portability_export', 'et_core_portability_ajax_export' );
[2354] Fix | Delete
endif;
[2355] Fix | Delete
[2356] Fix | Delete
[2357] Fix | Delete
if ( ! function_exists( 'et_core_portability_ajax_cancel' ) ) :
[2358] Fix | Delete
/**
[2359] Fix | Delete
* Cancel portability action.
[2360] Fix | Delete
*
[2361] Fix | Delete
* @since 2.7.0
[2362] Fix | Delete
*/
[2363] Fix | Delete
function et_core_portability_ajax_cancel() {
[2364] Fix | Delete
if ( ! isset( $_POST['context'] ) ) {
[2365] Fix | Delete
et_core_die();
[2366] Fix | Delete
}
[2367] Fix | Delete
[2368] Fix | Delete
$context = sanitize_text_field( $_POST['context'] );
[2369] Fix | Delete
[2370] Fix | Delete
if ( ! $capability = et_core_portability_cap( $context ) ) {
[2371] Fix | Delete
et_core_die();
[2372] Fix | Delete
}
[2373] Fix | Delete
[2374] Fix | Delete
if ( ! et_core_security_check_passed( $capability, 'et_core_portability_cancel' ) ) {
[2375] Fix | Delete
et_core_die();
[2376] Fix | Delete
}
[2377] Fix | Delete
[2378] Fix | Delete
et_core_portability_load( $context )->delete_temp_files( true );
[2379] Fix | Delete
[2380] Fix | Delete
wp_send_json_error();
[2381] Fix | Delete
}
[2382] Fix | Delete
add_action( 'wp_ajax_et_core_portability_cancel', 'et_core_portability_ajax_cancel' );
[2383] Fix | Delete
endif;
[2384] Fix | Delete
[2385] Fix | Delete
[2386] Fix | Delete
if ( ! function_exists( 'et_core_portability_export' ) ) :
[2387] Fix | Delete
/**
[2388] Fix | Delete
* Portability export.
[2389] Fix | Delete
*
[2390] Fix | Delete
* @since 2.7.0
[2391] Fix | Delete
*/
[2392] Fix | Delete
function et_core_portability_export() {
[2393] Fix | Delete
if ( ! isset( $_GET['et_core_portability'], $_GET['timestamp'] ) ) {
[2394] Fix | Delete
return;
[2395] Fix | Delete
}
[2396] Fix | Delete
[2397] Fix | Delete
if ( ! et_core_security_check_passed( 'edit_posts' ) ) {
[2398] Fix | Delete
wp_die( esc_html__( 'The export process failed. Please refresh the page and try again.', ET_CORE_TEXTDOMAIN ) );
[2399] Fix | Delete
}
[2400] Fix | Delete
[2401] Fix | Delete
et_core_portability_load( sanitize_text_field( $_GET['timestamp'] ) )->download_export();
[2402] Fix | Delete
}
[2403] Fix | Delete
add_action( 'admin_init', 'et_core_portability_export', 20 );
[2404] Fix | Delete
endif;
[2405] Fix | Delete
[2406] Fix | Delete
[2407] Fix | Delete
if ( ! function_exists( 'et_core_portability_cap' ) ):
[2408] Fix | Delete
/**
[2409] Fix | Delete
* Returns the required WordPress Capability for a Portability context.
[2410] Fix | Delete
*
[2411] Fix | Delete
* @since 3.0.91
[2412] Fix | Delete
*
[2413] Fix | Delete
* @param string $context The Portability context
[2414] Fix | Delete
*
[2415] Fix | Delete
* @return string
[2416] Fix | Delete
*/
[2417] Fix | Delete
function et_core_portability_cap( $context ) {
[2418] Fix | Delete
$capability = '';
[2419] Fix | Delete
$options_contexts = array(
[2420] Fix | Delete
'et_pb_roles',
[2421] Fix | Delete
'et_builder_layouts',
[2422] Fix | Delete
'epanel',
[2423] Fix | Delete
'et_divi_mods',
[2424] Fix | Delete
'et_extra_mods',
[2425] Fix | Delete
);
[2426] Fix | Delete
$post_contexts = array(
[2427] Fix | Delete
'et_builder',
[2428] Fix | Delete
'et_theme_builder',
[2429] Fix | Delete
);
[2430] Fix | Delete
[2431] Fix | Delete
if ( in_array( $context, $options_contexts, true ) ) {
[2432] Fix | Delete
$capability = 'edit_theme_options';
[2433] Fix | Delete
} else if ( in_array( $context, $post_contexts, true ) ) {
[2434] Fix | Delete
$capability = 'edit_posts';
[2435] Fix | Delete
}
[2436] Fix | Delete
[2437] Fix | Delete
return $capability;
[2438] Fix | Delete
}
[2439] Fix | Delete
endif;
[2440] Fix | Delete
[2441] Fix | Delete
It is recommended that you Edit text format, this type of Fix handles quite a lot in one request
Function