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/includes/builder
File: core.php
// Format AB Testing data, since BB has UI and actual input IDs. FB uses BB's UI ID
[2000] Fix | Delete
$builder_settings['et_pb_enable_ab_testing'] = $builder_settings['et_pb_use_ab_testing'];
[2001] Fix | Delete
[2002] Fix | Delete
// Unset BB's actual input data
[2003] Fix | Delete
unset( $builder_settings['et_pb_use_ab_testing'] );
[2004] Fix | Delete
}
[2005] Fix | Delete
[2006] Fix | Delete
// Pseudo save AB Testing subjects for VB draft/builder-sync interface
[2007] Fix | Delete
if ( isset( $builder_settings['et_pb_ab_subjects'] ) ) {
[2008] Fix | Delete
// Save autosave/draft subjects
[2009] Fix | Delete
update_post_meta(
[2010] Fix | Delete
$post_id,
[2011] Fix | Delete
'_et_pb_ab_subjects_draft',
[2012] Fix | Delete
sanitize_text_field( et_prevent_duplicate_item( $builder_settings['et_pb_ab_subjects'], ',' ) )
[2013] Fix | Delete
);
[2014] Fix | Delete
[2015] Fix | Delete
// Format subjects data into array
[2016] Fix | Delete
$builder_settings['et_pb_ab_subjects'] = array_unique( explode( ',', $builder_settings['et_pb_ab_subjects'] ) );
[2017] Fix | Delete
}
[2018] Fix | Delete
[2019] Fix | Delete
$et_builder_settings_autosave_data = get_post_meta( $post_id, "_et_builder_settings_autosave_{$current_user_id}", true );
[2020] Fix | Delete
[2021] Fix | Delete
// Merge incoming post meta changes with saved ones to avoid missing post meta changes that
[2022] Fix | Delete
// has been synced but hasn't been delivered to VB. Let VB drops autosave once it has been
[2023] Fix | Delete
// used / inserted into the layout
[2024] Fix | Delete
if ( is_array( $et_builder_settings_autosave_data ) && is_array( $builder_settings ) ) {
[2025] Fix | Delete
$et_builder_settings_autosave_data = wp_parse_args(
[2026] Fix | Delete
$builder_settings,
[2027] Fix | Delete
$et_builder_settings_autosave_data
[2028] Fix | Delete
);
[2029] Fix | Delete
} else {
[2030] Fix | Delete
$et_builder_settings_autosave_data = $builder_settings;
[2031] Fix | Delete
}
[2032] Fix | Delete
[2033] Fix | Delete
return update_post_meta(
[2034] Fix | Delete
$post_id,
[2035] Fix | Delete
"_et_builder_settings_autosave_{$current_user_id}",
[2036] Fix | Delete
$et_builder_settings_autosave_data
[2037] Fix | Delete
);
[2038] Fix | Delete
}
[2039] Fix | Delete
}
[2040] Fix | Delete
[2041] Fix | Delete
/**
[2042] Fix | Delete
* Autosave with heartbeat
[2043] Fix | Delete
*
[2044] Fix | Delete
* Adapted from WordPress
[2045] Fix | Delete
*
[2046] Fix | Delete
* @copyright 2016 by the WordPress contributors.
[2047] Fix | Delete
* This program is free software; you can redistribute it and/or modify
[2048] Fix | Delete
* it under the terms of the GNU General Public License as published by
[2049] Fix | Delete
* the Free Software Foundation; either version 2 of the License, or
[2050] Fix | Delete
* (at your option) any later version.
[2051] Fix | Delete
*
[2052] Fix | Delete
* This program is distributed in the hope that it will be useful,
[2053] Fix | Delete
* but WITHOUT ANY WARRANTY; without even the implied warranty of
[2054] Fix | Delete
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
[2055] Fix | Delete
* GNU General Public License for more details.
[2056] Fix | Delete
*
[2057] Fix | Delete
* You should have received a copy of the GNU General Public License
[2058] Fix | Delete
* along with this program; if not, write to the Free Software
[2059] Fix | Delete
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
[2060] Fix | Delete
*
[2061] Fix | Delete
* This program incorporates work covered by the following copyright and
[2062] Fix | Delete
* permission notices:
[2063] Fix | Delete
*
[2064] Fix | Delete
* b2 is (c) 2001, 2002 Michel Valdrighi - m@tidakada.com - http://tidakada.com
[2065] Fix | Delete
*
[2066] Fix | Delete
* b2 is released under the GPL
[2067] Fix | Delete
*
[2068] Fix | Delete
* WordPress - Web publishing software
[2069] Fix | Delete
*
[2070] Fix | Delete
* Copyright 2003-2010 by the contributors
[2071] Fix | Delete
*
[2072] Fix | Delete
* WordPress is released under the GPL
[2073] Fix | Delete
*
[2074] Fix | Delete
* @param array $response The Heartbeat response.
[2075] Fix | Delete
* @param array $data The $_POST data sent.
[2076] Fix | Delete
* @return array The Heartbeat response.
[2077] Fix | Delete
*/
[2078] Fix | Delete
[2079] Fix | Delete
function et_fb_heartbeat_autosave( $response, $data ) {
[2080] Fix | Delete
et_core_nonce_verified_previously();
[2081] Fix | Delete
[2082] Fix | Delete
if ( ! current_user_can( 'edit_posts' ) ) {
[2083] Fix | Delete
return $response;
[2084] Fix | Delete
}
[2085] Fix | Delete
[2086] Fix | Delete
if ( ! empty( $data['et_fb_autosave'] ) ) {
[2087] Fix | Delete
$post_id = ! empty( $data['et_fb_autosave']['post_id'] ) ? absint( $data['et_fb_autosave']['post_id'] ) : '';
[2088] Fix | Delete
[2089] Fix | Delete
if ( empty( $post_id ) || ! current_user_can( 'edit_post', $post_id ) ) {
[2090] Fix | Delete
return $response;
[2091] Fix | Delete
}
[2092] Fix | Delete
[2093] Fix | Delete
$has_focus = !empty( $_POST['has_focus'] ) && 'true' === $_POST['has_focus'];
[2094] Fix | Delete
$force_autosave = !empty( $data['et'] ) && !empty( $data['et']['force_autosave'] ) && 'true' === $data['et']['force_autosave'];
[2095] Fix | Delete
[2096] Fix | Delete
$editor_1 = 'fb' === $data['et']['built_by'] ? 'fb' : 'bb';
[2097] Fix | Delete
$editor_2 = 'fb' === $editor_1 ? 'bb' : 'fb';
[2098] Fix | Delete
$editor_1_editing_cookie = isset( $_COOKIE[ 'et-editing-post-' . $post_id . '-' . $editor_1 ] ) ? $_COOKIE[ 'et-editing-post-' . $post_id . '-' . $editor_1 ] : false;
[2099] Fix | Delete
$editor_2_editor_available_cookie = isset( $_COOKIE[ 'et-editor-available-post-' . $post_id . '-' . $editor_2 ] ) ? $_COOKIE[ 'et-editor-available-post-' . $post_id . '-' . $editor_2 ] : false;
[2100] Fix | Delete
$editor_1_autosavable = !empty( $editor_1_editing_cookie ) && empty( $editor_2_editor_available_cookie );
[2101] Fix | Delete
[2102] Fix | Delete
if ( !$has_focus && !$force_autosave && !$editor_1_autosavable ) {
[2103] Fix | Delete
$response['et_fb_autosave'] = array( 'success' => false, 'message' => __( 'Not saved, editor out of focus', 'et_builder' ) );
[2104] Fix | Delete
return $response;
[2105] Fix | Delete
}
[2106] Fix | Delete
[2107] Fix | Delete
$saved = et_fb_autosave( $data['et_fb_autosave'] );
[2108] Fix | Delete
[2109] Fix | Delete
if ( ! is_wp_error( $saved ) && ! empty( $data['et_fb_autosave']['builder_settings'] ) ) {
[2110] Fix | Delete
$builder_settings_autosaved = et_pb_autosave_builder_settings( $post_id, $data['et_fb_autosave']['builder_settings'] );
[2111] Fix | Delete
$response['et_pb_autosave_builder_settings'] = array( 'success' => $builder_settings_autosaved, 'message' => __( 'Builder settings synced', 'et_builder' ) );
[2112] Fix | Delete
}
[2113] Fix | Delete
[2114] Fix | Delete
if ( is_wp_error( $saved ) ) {
[2115] Fix | Delete
$response['et_fb_autosave'] = array( 'success' => false, 'message' => $saved->get_error_message() );
[2116] Fix | Delete
} elseif ( empty( $saved ) ) {
[2117] Fix | Delete
$response['et_fb_autosave'] = array( 'success' => false, 'message' => __( 'Error while saving.', 'et_builder' ) );
[2118] Fix | Delete
} else {
[2119] Fix | Delete
/* translators: draft saved date format, see https://secure.php.net/date */
[2120] Fix | Delete
$draft_saved_date_format = __( 'g:i:s a', 'et_builder' );
[2121] Fix | Delete
/* translators: %s: date and time */
[2122] Fix | Delete
$response['et_fb_autosave'] = array( 'success' => true, 'message' => sprintf( __( 'Draft saved at %s.', 'et_builder' ), date_i18n( $draft_saved_date_format ) ) );
[2123] Fix | Delete
}
[2124] Fix | Delete
}
[2125] Fix | Delete
[2126] Fix | Delete
return $response;
[2127] Fix | Delete
}
[2128] Fix | Delete
add_filter( 'heartbeat_received', 'et_fb_heartbeat_autosave', 499, 2 );
[2129] Fix | Delete
[2130] Fix | Delete
function et_bb_heartbeat_autosave( $response, $data ) {
[2131] Fix | Delete
et_core_nonce_verified_previously();
[2132] Fix | Delete
[2133] Fix | Delete
if ( ! current_user_can( 'edit_posts' ) ) {
[2134] Fix | Delete
return $response;
[2135] Fix | Delete
}
[2136] Fix | Delete
[2137] Fix | Delete
if ( ! empty( $data['wp_autosave'] ) ) {
[2138] Fix | Delete
$has_focus = !empty( $_POST['has_focus'] ) && 'true' === $_POST['has_focus'];
[2139] Fix | Delete
$force_autosave = !empty( $data['et'] ) && !empty( $data['et']['force_autosave'] ) && 'true' === $data['et']['force_autosave'];
[2140] Fix | Delete
[2141] Fix | Delete
if ( !$has_focus && !$force_autosave ) {
[2142] Fix | Delete
$response['wp_autosave'] = array( 'success' => true, 'message' => __( 'Not saved, editor out of focus', 'et_builder' ) );
[2143] Fix | Delete
remove_filter( 'heartbeat_received', 'heartbeat_autosave', 500, 2 );
[2144] Fix | Delete
remove_filter( 'heartbeat_received', 'et_bb_heartbeat_builder_settings_autosave', 500, 2 );
[2145] Fix | Delete
} else if ( $force_autosave ) {
[2146] Fix | Delete
$response['wp_autosave_check'] = array( 'success' => true, 'message' => 'saved, because force_autosave ' );
[2147] Fix | Delete
}
[2148] Fix | Delete
}
[2149] Fix | Delete
return $response;
[2150] Fix | Delete
}
[2151] Fix | Delete
add_filter( 'heartbeat_received', 'et_bb_heartbeat_autosave', 498, 2 );
[2152] Fix | Delete
[2153] Fix | Delete
function et_bb_heartbeat_builder_settings_autosave( $response, $data ) {
[2154] Fix | Delete
if ( ! current_user_can( 'edit_posts' ) ) {
[2155] Fix | Delete
return $response;
[2156] Fix | Delete
}
[2157] Fix | Delete
[2158] Fix | Delete
if ( ! empty( $data['wp_autosave'] ) ) {
[2159] Fix | Delete
$post_id = ! empty( $data['wp_autosave']['post_id'] ) ? absint( $data['wp_autosave']['post_id'] ) : '';
[2160] Fix | Delete
[2161] Fix | Delete
if ( empty( $post_id ) || ! current_user_can( 'edit_post', $post_id ) ) {
[2162] Fix | Delete
return $response;
[2163] Fix | Delete
}
[2164] Fix | Delete
[2165] Fix | Delete
if ( ! empty( $data['wp_autosave']['builder_settings'] ) ) {
[2166] Fix | Delete
$builder_settings_autosaved = et_pb_autosave_builder_settings( $post_id, $data['wp_autosave']['builder_settings'] );
[2167] Fix | Delete
$response['et_pb_autosave_builder_settings'] = array( 'success' => $builder_settings_autosaved, 'message' => __( 'Builder settings synced', 'et_builder' ) );
[2168] Fix | Delete
}
[2169] Fix | Delete
}
[2170] Fix | Delete
[2171] Fix | Delete
return $response;
[2172] Fix | Delete
}
[2173] Fix | Delete
add_filter( 'heartbeat_received', 'et_bb_heartbeat_builder_settings_autosave', 500, 2 );
[2174] Fix | Delete
[2175] Fix | Delete
function et_fb_wp_refresh_nonces( $response, $data, $screen_id ) {
[2176] Fix | Delete
if ( ! current_user_can( 'edit_posts' ) ) {
[2177] Fix | Delete
return $response;
[2178] Fix | Delete
}
[2179] Fix | Delete
[2180] Fix | Delete
if ( ! isset( $data['et']['built_by'] ) || 'fb' !== $data['et']['built_by'] ) {
[2181] Fix | Delete
return $response;
[2182] Fix | Delete
}
[2183] Fix | Delete
[2184] Fix | Delete
$response['et'] = array(
[2185] Fix | Delete
'exportUrl' => et_fb_get_portability_export_url(),
[2186] Fix | Delete
'nonces' => et_fb_get_nonces(),
[2187] Fix | Delete
'heartbeat_nonce' => wp_create_nonce( 'heartbeat-nonce' ),
[2188] Fix | Delete
);
[2189] Fix | Delete
[2190] Fix | Delete
return $response;
[2191] Fix | Delete
}
[2192] Fix | Delete
add_filter( 'wp_refresh_nonces', 'et_fb_wp_refresh_nonces', 10, 3 );
[2193] Fix | Delete
[2194] Fix | Delete
function et_fb_get_portability_export_url() {
[2195] Fix | Delete
$admin_url = is_ssl() ? admin_url() : admin_url( '', 'http' );
[2196] Fix | Delete
$args = array(
[2197] Fix | Delete
'et_core_portability' => true,
[2198] Fix | Delete
'context' => 'et_builder',
[2199] Fix | Delete
'name' => 'temp_name',
[2200] Fix | Delete
'nonce' => wp_create_nonce( 'et_core_portability_nonce' ),
[2201] Fix | Delete
);
[2202] Fix | Delete
return add_query_arg( $args, $admin_url );
[2203] Fix | Delete
}
[2204] Fix | Delete
[2205] Fix | Delete
function et_fb_get_nonces() {
[2206] Fix | Delete
$nonces = apply_filters( 'et_fb_nonces', array() );
[2207] Fix | Delete
$fb_nonces = array(
[2208] Fix | Delete
'moduleContactFormSubmit' => wp_create_nonce( 'et-pb-contact-form-submit' ),
[2209] Fix | Delete
'et_admin_load' => wp_create_nonce( 'et_admin_load_nonce' ),
[2210] Fix | Delete
'computedProperty' => wp_create_nonce( 'et_pb_process_computed_property_nonce' ),
[2211] Fix | Delete
'renderShortcode' => wp_create_nonce( 'et_pb_render_shortcode_nonce' ),
[2212] Fix | Delete
'updateAssets' => wp_create_nonce( 'et_fb_update_helper_assets_nonce' ),
[2213] Fix | Delete
'loadAssets' => wp_create_nonce( 'et_fb_load_helper_assets_nonce' ),
[2214] Fix | Delete
'renderSave' => wp_create_nonce( 'et_fb_save_nonce' ),
[2215] Fix | Delete
'convertToShortcode' => wp_create_nonce( 'et_fb_convert_to_shortcode_nonce' ),
[2216] Fix | Delete
'dropAutosave' => wp_create_nonce( 'et_fb_drop_autosave_nonce' ),
[2217] Fix | Delete
'prepareShortcode' => wp_create_nonce( 'et_fb_prepare_shortcode_nonce' ),
[2218] Fix | Delete
'processImportedData' => wp_create_nonce( 'et_fb_process_imported_data_nonce' ),
[2219] Fix | Delete
'retrieveLibraryModules' => wp_create_nonce( 'et_fb_retrieve_library_modules_nonce' ),
[2220] Fix | Delete
'saveLibraryModules' => wp_create_nonce( 'et_fb_save_library_modules_nonce' ),
[2221] Fix | Delete
'preview' => wp_create_nonce( 'et_pb_preview_nonce' ),
[2222] Fix | Delete
'autosave' => wp_create_nonce( 'et_fb_autosave_nonce' ),
[2223] Fix | Delete
'moduleEmailOptinFetchLists' => wp_create_nonce( 'et_builder_email_fetch_lists_nonce' ),
[2224] Fix | Delete
'moduleEmailOptinAddAccount' => wp_create_nonce( 'et_builder_email_add_account_nonce' ),
[2225] Fix | Delete
'moduleEmailOptinRemoveAccount' => wp_create_nonce( 'et_builder_email_remove_account_nonce' ),
[2226] Fix | Delete
'uploadFontNonce' => wp_create_nonce( 'et_fb_upload_font_nonce' ),
[2227] Fix | Delete
'abTestingReport' => wp_create_nonce( 'ab_testing_builder_nonce' ),
[2228] Fix | Delete
'libraryLayoutsData' => wp_create_nonce( 'et_builder_library_get_layouts_data' ),
[2229] Fix | Delete
'libraryGetLayout' => wp_create_nonce( 'et_builder_library_get_layout' ),
[2230] Fix | Delete
'libraryUpdateAccount' => wp_create_nonce( 'et_builder_library_update_account' ),
[2231] Fix | Delete
'fetchAttachments' => wp_create_nonce( 'et_fb_fetch_attachments' ),
[2232] Fix | Delete
'droploaderProcess' => wp_create_nonce( 'et_builder_droploader_process_nonce' ),
[2233] Fix | Delete
'resolvePostContent' => wp_create_nonce( 'et_fb_resolve_post_content' ),
[2234] Fix | Delete
'searchProducts' => wp_create_nonce( 'et_builder_search_products' ),
[2235] Fix | Delete
'searchPosts' => wp_create_nonce( 'et_builder_search_posts' ),
[2236] Fix | Delete
'getPostsList' => wp_create_nonce( 'et_fb_get_posts_list' ),
[2237] Fix | Delete
'sendErrorReport' => wp_create_nonce( 'et_fb_send_error_report' ),
[2238] Fix | Delete
'saveGlobalPresetsHistory' => wp_create_nonce( 'et_builder_save_global_presets_history' ),
[2239] Fix | Delete
'retrieveGlobalPresetsHistory' => wp_create_nonce( 'et_builder_retrieve_global_presets_history' ),
[2240] Fix | Delete
'migrateModuleCustomizerPhaseTwo' => wp_create_nonce( 'et_builder_migrate_module_customizer_phase_two' ),
[2241] Fix | Delete
'getWoocommerceTabs' => wp_create_nonce( 'et_builder_get_woocommerce_tabs' ),
[2242] Fix | Delete
);
[2243] Fix | Delete
[2244] Fix | Delete
return array_merge( $nonces, $fb_nonces );
[2245] Fix | Delete
}
[2246] Fix | Delete
[2247] Fix | Delete
if ( ! function_exists( 'et_builder_is_product_tour_enabled' ) ):
[2248] Fix | Delete
function et_builder_is_product_tour_enabled() {
[2249] Fix | Delete
static $product_tour_enabled = null;
[2250] Fix | Delete
[2251] Fix | Delete
if ( null !== $product_tour_enabled ) {
[2252] Fix | Delete
return $product_tour_enabled;
[2253] Fix | Delete
}
[2254] Fix | Delete
[2255] Fix | Delete
if ( ! ( function_exists( 'et_fb_is_enabled' ) && et_fb_is_enabled() ) ) {
[2256] Fix | Delete
// Do not update `$product_tour_enabled` at this point since we can run et_builder_is_product_tour_enabled() check later
[2257] Fix | Delete
// when et_fb_is_enabled() will be available.
[2258] Fix | Delete
return false;
[2259] Fix | Delete
}
[2260] Fix | Delete
[2261] Fix | Delete
/**
[2262] Fix | Delete
* Filters the on/off status of the product tour for the current user.
[2263] Fix | Delete
*
[2264] Fix | Delete
* @since 3.0.64
[2265] Fix | Delete
*
[2266] Fix | Delete
* @param string $product_tour_status_override Accepts 'on', 'off'.
[2267] Fix | Delete
*/
[2268] Fix | Delete
$product_tour_status_override = apply_filters( 'et_builder_product_tour_status_override', false );
[2269] Fix | Delete
[2270] Fix | Delete
if ( false !== $product_tour_status_override ) {
[2271] Fix | Delete
$product_tour_enabled = 'on' === $product_tour_status_override;
[2272] Fix | Delete
} else {
[2273] Fix | Delete
$user_id = (int) get_current_user_id();
[2274] Fix | Delete
$product_tour_settings = et_get_option( 'product_tour_status', array() );
[2275] Fix | Delete
$product_tour_status_global = 'on' === et_get_option( 'et_pb_product_tour_global', 'on' );
[2276] Fix | Delete
$product_tour_enabled = $product_tour_status_global && ( ! isset( $product_tour_settings[ $user_id ] ) || 'on' === $product_tour_settings[ $user_id ] );
[2277] Fix | Delete
}
[2278] Fix | Delete
[2279] Fix | Delete
return $product_tour_enabled;
[2280] Fix | Delete
}
[2281] Fix | Delete
endif;
[2282] Fix | Delete
[2283] Fix | Delete
function et_pb_get_backbone_template() {
[2284] Fix | Delete
if ( ! wp_verify_nonce( $_POST['et_admin_load_nonce'], 'et_admin_load_nonce' ) ) {
[2285] Fix | Delete
die( -1 );
[2286] Fix | Delete
}
[2287] Fix | Delete
[2288] Fix | Delete
if ( ! current_user_can( 'edit_posts' ) ) {
[2289] Fix | Delete
die( -1 );
[2290] Fix | Delete
}
[2291] Fix | Delete
[2292] Fix | Delete
$module_slugs = json_decode( str_replace( '\\', '', sanitize_text_field( $_POST['et_modules_slugs'] ) ) );
[2293] Fix | Delete
$post_type = sanitize_text_field( $_POST['et_post_type'] );
[2294] Fix | Delete
[2295] Fix | Delete
// Enable zlib compression
[2296] Fix | Delete
et_builder_enable_zlib_compression();
[2297] Fix | Delete
// get the portion of templates for specified slugs
[2298] Fix | Delete
$result = wp_json_encode( ET_Builder_Element::get_modules_templates( $post_type, $module_slugs->missing_modules_array ) );
[2299] Fix | Delete
[2300] Fix | Delete
die( et_core_esc_previously( $result ) );
[2301] Fix | Delete
}
[2302] Fix | Delete
add_action( 'wp_ajax_et_pb_get_backbone_template', 'et_pb_get_backbone_template' );
[2303] Fix | Delete
[2304] Fix | Delete
[2305] Fix | Delete
if ( ! function_exists( 'et_builder_email_add_account' ) ):
[2306] Fix | Delete
/**
[2307] Fix | Delete
* Ajax handler for the Email Opt-in Module's "Add Account" action.
[2308] Fix | Delete
*/
[2309] Fix | Delete
function et_builder_email_add_account() {
[2310] Fix | Delete
et_core_security_check( 'manage_options', 'et_builder_email_add_account_nonce' );
[2311] Fix | Delete
[2312] Fix | Delete
$provider_slug = isset( $_POST['et_provider'] ) ? sanitize_text_field( $_POST['et_provider'] ) : '';
[2313] Fix | Delete
$name_key = "et_{$provider_slug}_account_name";
[2314] Fix | Delete
$account_name = isset( $_POST[ $name_key ] ) ? sanitize_text_field( $_POST[ $name_key ] ) : '';
[2315] Fix | Delete
[2316] Fix | Delete
if ( isset( $_POST['module_class'] ) && in_array( $_POST['module_class'], array( 'Signup', 'Contact_Form' ) ) ) {
[2317] Fix | Delete
$module_class = sanitize_text_field( $_POST['module_class'] );
[2318] Fix | Delete
} else {
[2319] Fix | Delete
$module_class = 'Signup';
[2320] Fix | Delete
}
[2321] Fix | Delete
[2322] Fix | Delete
$is_BB = isset( $_POST['et_bb'] );
[2323] Fix | Delete
$is_spam_account = isset( $_POST['is_spam_account'] );
[2324] Fix | Delete
[2325] Fix | Delete
if ( empty( $provider_slug ) || empty( $account_name ) ) {
[2326] Fix | Delete
et_core_die();
[2327] Fix | Delete
}
[2328] Fix | Delete
[2329] Fix | Delete
unset( $_POST[ $name_key ] );
[2330] Fix | Delete
[2331] Fix | Delete
$fields = et_builder_email_get_fields_from_post_data( $provider_slug, $is_spam_account );
[2332] Fix | Delete
[2333] Fix | Delete
if ( false === $fields ) {
[2334] Fix | Delete
et_core_die();
[2335] Fix | Delete
}
[2336] Fix | Delete
[2337] Fix | Delete
if ( $is_spam_account ) {
[2338] Fix | Delete
$result = et_core_api_spam_add_account( $provider_slug, $account_name, $fields );
[2339] Fix | Delete
[2340] Fix | Delete
} else {
[2341] Fix | Delete
$result = et_core_api_email_fetch_lists( $provider_slug, $account_name, $fields );
[2342] Fix | Delete
}
[2343] Fix | Delete
[2344] Fix | Delete
$_ = ET_Core_Data_Utils::instance();
[2345] Fix | Delete
[2346] Fix | Delete
// Get data in builder format
[2347] Fix | Delete
$list_data = et_builder_email_get_lists_field_data( $provider_slug, $is_BB, $module_class );
[2348] Fix | Delete
[2349] Fix | Delete
if ( 'success' === $result ) {
[2350] Fix | Delete
$result = array(
[2351] Fix | Delete
'error' => false,
[2352] Fix | Delete
'accounts_list' => $_->array_get( $list_data, 'accounts_list', $list_data ),
[2353] Fix | Delete
'custom_fields' => $_->array_get( $list_data, 'custom_fields', array() ),
[2354] Fix | Delete
'predefined_custom_fields' => ET_Core_API_Email_Providers::instance()->custom_fields_data(),
[2355] Fix | Delete
);
[2356] Fix | Delete
} else {
[2357] Fix | Delete
$result = array(
[2358] Fix | Delete
'error' => true,
[2359] Fix | Delete
'message' => esc_html__( 'Error: ', 'et_builder' ) . esc_html( $result ),
[2360] Fix | Delete
'accounts_list' => $_->array_get( $list_data, 'accounts_list', $list_data ),
[2361] Fix | Delete
'custom_fields' => $_->array_get( $list_data, 'custom_fields', array() ),
[2362] Fix | Delete
'predefined_custom_fields' => ET_Core_API_Email_Providers::instance()->custom_fields_data(),
[2363] Fix | Delete
);
[2364] Fix | Delete
}
[2365] Fix | Delete
[2366] Fix | Delete
die( wp_json_encode( $result ) );
[2367] Fix | Delete
}
[2368] Fix | Delete
add_action( 'wp_ajax_et_builder_email_add_account', 'et_builder_email_add_account' );
[2369] Fix | Delete
endif;
[2370] Fix | Delete
[2371] Fix | Delete
[2372] Fix | Delete
if ( ! function_exists( 'et_builder_email_get_fields_from_post_data' ) ):
[2373] Fix | Delete
function et_builder_email_get_fields_from_post_data( $provider_slug, $is_spam_account = false ) {
[2374] Fix | Delete
et_core_security_check( 'manage_options', 'et_builder_email_add_account_nonce' );
[2375] Fix | Delete
[2376] Fix | Delete
if ( $is_spam_account ) {
[2377] Fix | Delete
$fields = ET_Core_API_Spam_Providers::instance()->account_fields( $provider_slug );
[2378] Fix | Delete
} else {
[2379] Fix | Delete
$fields = ET_Core_API_Email_Providers::instance()->account_fields( $provider_slug );
[2380] Fix | Delete
}
[2381] Fix | Delete
[2382] Fix | Delete
$result = array();
[2383] Fix | Delete
$protocol = is_ssl() ? 'https' : 'http';
[2384] Fix | Delete
[2385] Fix | Delete
if ( ! $fields ) {
[2386] Fix | Delete
// If there are no fields to check then the check passes.
[2387] Fix | Delete
return $fields;
[2388] Fix | Delete
}
[2389] Fix | Delete
[2390] Fix | Delete
foreach ( $fields as $field_name => $field_info ) {
[2391] Fix | Delete
$key = "et_{$provider_slug}_{$field_name}";
[2392] Fix | Delete
[2393] Fix | Delete
if ( empty( $_POST[$key] ) ) {
[2394] Fix | Delete
$required = true;
[2395] Fix | Delete
[2396] Fix | Delete
if ( isset( $field_info['required'] ) ) {
[2397] Fix | Delete
// Field can be required only when https or http
[2398] Fix | Delete
$required = $field_info['required'] === $protocol;
[2399] Fix | Delete
}
[2400] Fix | Delete
[2401] Fix | Delete
if ( $required && ! isset( $field_info['not_required'] ) ) {
[2402] Fix | Delete
return false;
[2403] Fix | Delete
}
[2404] Fix | Delete
}
[2405] Fix | Delete
[2406] Fix | Delete
$result[ $field_name ] = sanitize_text_field( $_POST[ $key ] );
[2407] Fix | Delete
}
[2408] Fix | Delete
[2409] Fix | Delete
return $result;
[2410] Fix | Delete
}
[2411] Fix | Delete
endif;
[2412] Fix | Delete
[2413] Fix | Delete
[2414] Fix | Delete
if ( ! function_exists( 'et_builder_email_get_lists_field_data' ) ):
[2415] Fix | Delete
/**
[2416] Fix | Delete
* Get email list data in a builder's options field format.
[2417] Fix | Delete
*
[2418] Fix | Delete
* @param string $provider_slug
[2419] Fix | Delete
* @param bool $is_BB
[2420] Fix | Delete
*
[2421] Fix | Delete
* @return array|string The data in the BB's format if `$is_BB` is `true`, the FB's format otherwise.
[2422] Fix | Delete
*/
[2423] Fix | Delete
function et_builder_email_get_lists_field_data( $provider_slug, $is_BB = false, $module_class = 'Signup' ) {
[2424] Fix | Delete
$module = 'ET_Builder_Module_' . $module_class;
[2425] Fix | Delete
$module = new $module;
[2426] Fix | Delete
$fields = $module->get_fields();
[2427] Fix | Delete
$field_name = $provider_slug . '_list';
[2428] Fix | Delete
$field = $fields[ $field_name ];
[2429] Fix | Delete
[2430] Fix | Delete
if ( $is_BB ) {
[2431] Fix | Delete
$field['only_options'] = true;
[2432] Fix | Delete
$field['name'] = $field_name;
[2433] Fix | Delete
$field_data = $module->render_field( $field );
[2434] Fix | Delete
} else {
[2435] Fix | Delete
$field_data = array(
[2436] Fix | Delete
'accounts_list' => $field['options'],
[2437] Fix | Delete
);
[2438] Fix | Delete
[2439] Fix | Delete
if ( 'Signup' === $module_class ) {
[2440] Fix | Delete
$signup_field = new ET_Builder_Module_Signup_Item;
[2441] Fix | Delete
$fields_data['custom_fields'] = $signup_field->get_fields();
[2442] Fix | Delete
}
[2443] Fix | Delete
}
[2444] Fix | Delete
[2445] Fix | Delete
et_pb_force_regenerate_templates();
[2446] Fix | Delete
et_fb_delete_builder_assets();
[2447] Fix | Delete
[2448] Fix | Delete
return $field_data;
[2449] Fix | Delete
}
[2450] Fix | Delete
endif;
[2451] Fix | Delete
[2452] Fix | Delete
[2453] Fix | Delete
[2454] Fix | Delete
[2455] Fix | Delete
if ( ! function_exists( 'et_builder_email_get_lists' ) ):
[2456] Fix | Delete
/**
[2457] Fix | Delete
* Ajax handler for the Email Opt-in Module's "Fetch Lists" action.
[2458] Fix | Delete
*/
[2459] Fix | Delete
function et_builder_email_get_lists() {
[2460] Fix | Delete
et_core_security_check( 'manage_options', 'et_builder_email_fetch_lists_nonce' );
[2461] Fix | Delete
[2462] Fix | Delete
$provider_slug = isset( $_POST['et_provider'] ) ? sanitize_text_field( $_POST['et_provider'] ) : '';
[2463] Fix | Delete
$account_name = isset( $_POST['et_account'] ) ? sanitize_text_field( $_POST['et_account'] ) : '';
[2464] Fix | Delete
$is_BB = isset( $_POST['et_bb'] );
[2465] Fix | Delete
[2466] Fix | Delete
if ( empty( $provider_slug ) || empty( $account_name ) ) {
[2467] Fix | Delete
et_core_die();
[2468] Fix | Delete
}
[2469] Fix | Delete
[2470] Fix | Delete
// Make sure email component group is loaded;
[2471] Fix | Delete
new ET_Core_API_Email_Providers();
[2472] Fix | Delete
[2473] Fix | Delete
$_ = ET_Core_Data_Utils::instance();
[2474] Fix | Delete
[2475] Fix | Delete
// Fetch lists from provider
[2476] Fix | Delete
$message = et_core_api_email_fetch_lists( $provider_slug, $account_name );
[2477] Fix | Delete
[2478] Fix | Delete
// Get data in builder format
[2479] Fix | Delete
$list_data = et_builder_email_get_lists_field_data( $provider_slug, $is_BB );
[2480] Fix | Delete
[2481] Fix | Delete
$result = array(
[2482] Fix | Delete
'error' => false,
[2483] Fix | Delete
'accounts_list' => $_->array_get( $list_data, 'accounts_list', $list_data ),
[2484] Fix | Delete
'custom_fields' => $_->array_get( $list_data, 'custom_fields', array() ),
[2485] Fix | Delete
'predefined_custom_fields' => ET_Core_API_Email_Providers::instance()->custom_fields_data(),
[2486] Fix | Delete
);
[2487] Fix | Delete
[2488] Fix | Delete
if ( 'success' !== $message ) {
[2489] Fix | Delete
$result['error'] = true;
[2490] Fix | Delete
$result['message'] = esc_html__( 'Error: ', 'et_core' ) . esc_html( $message );
[2491] Fix | Delete
}
[2492] Fix | Delete
[2493] Fix | Delete
die( wp_json_encode( $result ) );
[2494] Fix | Delete
}
[2495] Fix | Delete
add_action( 'wp_ajax_et_builder_email_get_lists', 'et_builder_email_get_lists' );
[2496] Fix | Delete
endif;
[2497] Fix | Delete
[2498] Fix | Delete
[2499] Fix | Delete
It is recommended that you Edit text format, this type of Fix handles quite a lot in one request
Function