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: SupportCenter.php
* @since 3.20
[2000] Fix | Delete
*/
[2001] Fix | Delete
public function support_user_remove_roles() {
[2002] Fix | Delete
// Divi Support :: Standard
[2003] Fix | Delete
remove_role( 'et_support' );
[2004] Fix | Delete
[2005] Fix | Delete
// Divi Support :: Elevated
[2006] Fix | Delete
remove_role( 'et_support_elevated' );
[2007] Fix | Delete
}
[2008] Fix | Delete
[2009] Fix | Delete
/**
[2010] Fix | Delete
* Set the ET Support User's role
[2011] Fix | Delete
*
[2012] Fix | Delete
* @since 3.20
[2013] Fix | Delete
*
[2014] Fix | Delete
* @param string $role
[2015] Fix | Delete
*/
[2016] Fix | Delete
public function support_user_set_role( $role = '' ) {
[2017] Fix | Delete
// Get the Divi Support User object
[2018] Fix | Delete
$support_user = new WP_User( $this->support_user_account_name );
[2019] Fix | Delete
[2020] Fix | Delete
// Set the new Role
[2021] Fix | Delete
switch ( $role ) {
[2022] Fix | Delete
case 'et_support':
[2023] Fix | Delete
$support_user->set_role( 'et_support' );
[2024] Fix | Delete
break;
[2025] Fix | Delete
case 'et_support_elevated':
[2026] Fix | Delete
$support_user->set_role( 'et_support_elevated' );
[2027] Fix | Delete
break;
[2028] Fix | Delete
case '':
[2029] Fix | Delete
default:
[2030] Fix | Delete
$support_user->set_role( '' );
[2031] Fix | Delete
}
[2032] Fix | Delete
}
[2033] Fix | Delete
[2034] Fix | Delete
/**
[2035] Fix | Delete
* Ensure the `unfiltered_html` capability is added to the ET Support roles in Multisite
[2036] Fix | Delete
*
[2037] Fix | Delete
* @since 3.22
[2038] Fix | Delete
*
[2039] Fix | Delete
* @param array $caps An array of capabilities.
[2040] Fix | Delete
* @param string $cap The capability being requested.
[2041] Fix | Delete
* @param int $user_id The current user's ID.
[2042] Fix | Delete
*
[2043] Fix | Delete
* @return array Modified array of user capabilities.
[2044] Fix | Delete
*/
[2045] Fix | Delete
function support_user_map_meta_cap( $caps, $cap, $user_id ) {
[2046] Fix | Delete
[2047] Fix | Delete
if ( ! $this->is_support_user( $user_id ) ) {
[2048] Fix | Delete
return $caps;
[2049] Fix | Delete
}
[2050] Fix | Delete
[2051] Fix | Delete
// This user is in an ET Support user role, so add the capability
[2052] Fix | Delete
if ( 'unfiltered_html' === $cap ) {
[2053] Fix | Delete
$caps = array( 'unfiltered_html' );
[2054] Fix | Delete
}
[2055] Fix | Delete
[2056] Fix | Delete
return $caps;
[2057] Fix | Delete
}
[2058] Fix | Delete
[2059] Fix | Delete
/**
[2060] Fix | Delete
* Remove KSES filters on ET Support User's content
[2061] Fix | Delete
*
[2062] Fix | Delete
* @since 3.22
[2063] Fix | Delete
*/
[2064] Fix | Delete
function support_user_kses_remove_filters() {
[2065] Fix | Delete
if ( $this->is_support_user() ) {
[2066] Fix | Delete
kses_remove_filters();
[2067] Fix | Delete
}
[2068] Fix | Delete
}
[2069] Fix | Delete
[2070] Fix | Delete
/**
[2071] Fix | Delete
* Clear "Delete Account" cron hook
[2072] Fix | Delete
*
[2073] Fix | Delete
* @since 3.20
[2074] Fix | Delete
*
[2075] Fix | Delete
* @return void
[2076] Fix | Delete
*/
[2077] Fix | Delete
public function support_user_clear_delete_cron() {
[2078] Fix | Delete
wp_clear_scheduled_hook( $this->support_user_cron_name );
[2079] Fix | Delete
}
[2080] Fix | Delete
[2081] Fix | Delete
/**
[2082] Fix | Delete
* Delete the support account if it's expired or the expiration date is not set
[2083] Fix | Delete
*
[2084] Fix | Delete
* @since 3.20
[2085] Fix | Delete
*
[2086] Fix | Delete
* @return void
[2087] Fix | Delete
*/
[2088] Fix | Delete
public function support_user_cron_maybe_delete_account() {
[2089] Fix | Delete
if ( ! username_exists( $this->support_user_account_name ) ) {
[2090] Fix | Delete
return;
[2091] Fix | Delete
}
[2092] Fix | Delete
[2093] Fix | Delete
if ( isset( $this->support_user_options['date_created'] ) ) {
[2094] Fix | Delete
$this->support_user_maybe_delete_expired_account();
[2095] Fix | Delete
} else {
[2096] Fix | Delete
// if the expiration date isn't set, delete the account anyway
[2097] Fix | Delete
$this->support_user_delete_account();
[2098] Fix | Delete
}
[2099] Fix | Delete
}
[2100] Fix | Delete
[2101] Fix | Delete
/**
[2102] Fix | Delete
* Schedule account removal check
[2103] Fix | Delete
*
[2104] Fix | Delete
* @since 3.20
[2105] Fix | Delete
*
[2106] Fix | Delete
* @return void
[2107] Fix | Delete
*/
[2108] Fix | Delete
public function support_user_init_cron_delete_account() {
[2109] Fix | Delete
$this->support_user_clear_delete_cron();
[2110] Fix | Delete
[2111] Fix | Delete
wp_schedule_event( time(), 'hourly', $this->support_user_cron_name );
[2112] Fix | Delete
}
[2113] Fix | Delete
[2114] Fix | Delete
/**
[2115] Fix | Delete
* Get plugin options
[2116] Fix | Delete
*
[2117] Fix | Delete
* @since 3.20
[2118] Fix | Delete
*
[2119] Fix | Delete
* @return void
[2120] Fix | Delete
*/
[2121] Fix | Delete
public function support_user_get_options() {
[2122] Fix | Delete
$this->support_user_options = get_option( $this->support_user_options_name );
[2123] Fix | Delete
}
[2124] Fix | Delete
[2125] Fix | Delete
/**
[2126] Fix | Delete
* Generate random token
[2127] Fix | Delete
*
[2128] Fix | Delete
* @since 3.20
[2129] Fix | Delete
*
[2130] Fix | Delete
* @param integer $length Token Length
[2131] Fix | Delete
* @param bool $include_symbols Whether to include special characters (or just stick to alphanumeric)
[2132] Fix | Delete
*
[2133] Fix | Delete
* @return string $token Generated token
[2134] Fix | Delete
*/
[2135] Fix | Delete
public function support_user_generate_token( $length = 17, $include_symbols = true ) {
[2136] Fix | Delete
$alphanum = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
[2137] Fix | Delete
$symbols = '!@$^*()-=+';
[2138] Fix | Delete
$token = substr( str_shuffle( $include_symbols ? $alphanum . $symbols : $alphanum ), 0, $length );
[2139] Fix | Delete
[2140] Fix | Delete
return $token;
[2141] Fix | Delete
}
[2142] Fix | Delete
[2143] Fix | Delete
/**
[2144] Fix | Delete
* Generate password from token
[2145] Fix | Delete
*
[2146] Fix | Delete
* @since 3.20
[2147] Fix | Delete
*
[2148] Fix | Delete
* @param string $token Token
[2149] Fix | Delete
*
[2150] Fix | Delete
* @return string|WP_Error Generated password if successful, WP Error object otherwise
[2151] Fix | Delete
*/
[2152] Fix | Delete
public function support_user_generate_password( $token ) {
[2153] Fix | Delete
global $wp_version;
[2154] Fix | Delete
[2155] Fix | Delete
$salt = '';
[2156] Fix | Delete
[2157] Fix | Delete
/** @see ET_Core_SupportCenter::maybe_set_site_id() */
[2158] Fix | Delete
$site_id = get_option( 'et_support_site_id' );
[2159] Fix | Delete
[2160] Fix | Delete
if ( empty( $site_id ) ) {
[2161] Fix | Delete
return false;
[2162] Fix | Delete
}
[2163] Fix | Delete
[2164] Fix | Delete
// Site ID must be a string
[2165] Fix | Delete
if ( ! is_string( $site_id ) ) {
[2166] Fix | Delete
return false;
[2167] Fix | Delete
}
[2168] Fix | Delete
[2169] Fix | Delete
$et_license = $this->get_et_license();
[2170] Fix | Delete
[2171] Fix | Delete
if ( ! $et_license ) {
[2172] Fix | Delete
return false;
[2173] Fix | Delete
}
[2174] Fix | Delete
[2175] Fix | Delete
$send_to_api = array(
[2176] Fix | Delete
'action' => 'get_salt',
[2177] Fix | Delete
'site_id' => esc_attr( $site_id ),
[2178] Fix | Delete
'username' => esc_attr( $et_license['username'] ),
[2179] Fix | Delete
'api_key' => esc_attr( $et_license['api_key'] ),
[2180] Fix | Delete
'site_url' => esc_url( home_url( '/' ) ),
[2181] Fix | Delete
'login_url' => 'https://www.elegantthemes.com/members-area/admin/token/'
[2182] Fix | Delete
. '?url=' . urlencode( wp_login_url() )
[2183] Fix | Delete
. '&token=' . urlencode( $token . '|' . $site_id ),
[2184] Fix | Delete
);
[2185] Fix | Delete
[2186] Fix | Delete
$support_user_options = array(
[2187] Fix | Delete
'timeout' => 30,
[2188] Fix | Delete
'body' => $send_to_api,
[2189] Fix | Delete
'user-agent' => 'WordPress/' . $wp_version . '; ' . home_url( '/' ),
[2190] Fix | Delete
);
[2191] Fix | Delete
[2192] Fix | Delete
$request = wp_remote_post(
[2193] Fix | Delete
'https://www.elegantthemes.com/api/token.php',
[2194] Fix | Delete
$support_user_options
[2195] Fix | Delete
);
[2196] Fix | Delete
[2197] Fix | Delete
// Early exit if we don't get a good HTTP response from the API server
[2198] Fix | Delete
if ( 200 !== intval( wp_remote_retrieve_response_code( $request ) ) ) {
[2199] Fix | Delete
return new WP_Error(
[2200] Fix | Delete
'et_remote_access',
[2201] Fix | Delete
esc_html__(
[2202] Fix | Delete
'Elegant Themes API Error: HTTP error in API response',
[2203] Fix | Delete
'et-core'
[2204] Fix | Delete
)
[2205] Fix | Delete
);
[2206] Fix | Delete
}
[2207] Fix | Delete
[2208] Fix | Delete
// Early exit and pass along WP_Error report if the server response is an error
[2209] Fix | Delete
if ( is_wp_error( $request ) ) {
[2210] Fix | Delete
return new WP_Error(
[2211] Fix | Delete
'et_remote_access',
[2212] Fix | Delete
esc_html__(
[2213] Fix | Delete
'Elegant Themes API Error: WordPress Error in API response',
[2214] Fix | Delete
'et-core'
[2215] Fix | Delete
)
[2216] Fix | Delete
);
[2217] Fix | Delete
}
[2218] Fix | Delete
[2219] Fix | Delete
// Otherwise the response is good - let's load it and continue
[2220] Fix | Delete
$response = unserialize( wp_remote_retrieve_body( $request ) );
[2221] Fix | Delete
[2222] Fix | Delete
// If the API returns an error, we will return and log the accompanying message
[2223] Fix | Delete
$response_is_error = array_key_exists( 'error', $response );
[2224] Fix | Delete
$response_has_error_message = array_key_exists( 'message', $response );
[2225] Fix | Delete
[2226] Fix | Delete
if ( $response_is_error && $response_has_error_message ) {
[2227] Fix | Delete
return new WP_Error(
[2228] Fix | Delete
'et_remote_access',
[2229] Fix | Delete
esc_html__(
[2230] Fix | Delete
'Elegant Themes API Error: ' . $response['message'],
[2231] Fix | Delete
'et-core'
[2232] Fix | Delete
)
[2233] Fix | Delete
);
[2234] Fix | Delete
}
[2235] Fix | Delete
[2236] Fix | Delete
// If we get an "Incorrect Token" response, delete the generated Site ID from database
[2237] Fix | Delete
$response_is_token_error = array_key_exists( 'incorrect_token', $response );
[2238] Fix | Delete
[2239] Fix | Delete
if ( $response_is_token_error && ! empty( $response['incorrect_token'] ) ) {
[2240] Fix | Delete
delete_option( 'et_support_site_id' );
[2241] Fix | Delete
[2242] Fix | Delete
return new WP_Error(
[2243] Fix | Delete
'et_remote_access',
[2244] Fix | Delete
esc_html__(
[2245] Fix | Delete
'Elegant Themes API Error: Incorrect Token. Please, try again.',
[2246] Fix | Delete
'et-core'
[2247] Fix | Delete
)
[2248] Fix | Delete
);
[2249] Fix | Delete
}
[2250] Fix | Delete
[2251] Fix | Delete
// If we get a normal-looking response, but it doesn't contain the salt we need
[2252] Fix | Delete
if ( empty( $response['salt'] ) ) {
[2253] Fix | Delete
return new WP_Error(
[2254] Fix | Delete
'et_remote_access',
[2255] Fix | Delete
esc_html__(
[2256] Fix | Delete
'Elegant Themes API Error: The API response was missing required data.',
[2257] Fix | Delete
'et-core'
[2258] Fix | Delete
)
[2259] Fix | Delete
);
[2260] Fix | Delete
}
[2261] Fix | Delete
[2262] Fix | Delete
// We have the salt; let's clean it and make sure we can use it
[2263] Fix | Delete
$salt = sanitize_text_field( $response['salt'] );
[2264] Fix | Delete
[2265] Fix | Delete
if ( empty( $salt ) ) {
[2266] Fix | Delete
return new WP_Error(
[2267] Fix | Delete
'et_remote_access',
[2268] Fix | Delete
esc_html__(
[2269] Fix | Delete
'Elegant Themes API Error: The API responded, but the response was empty.',
[2270] Fix | Delete
'et-core'
[2271] Fix | Delete
)
[2272] Fix | Delete
);
[2273] Fix | Delete
}
[2274] Fix | Delete
[2275] Fix | Delete
// Generate the password using the token we were initially passed & the salt from the API
[2276] Fix | Delete
$password = hash( 'sha256', $token . $salt );
[2277] Fix | Delete
[2278] Fix | Delete
return $password;
[2279] Fix | Delete
}
[2280] Fix | Delete
[2281] Fix | Delete
/**
[2282] Fix | Delete
* Delete the account if it's expired
[2283] Fix | Delete
*
[2284] Fix | Delete
* @since 3.20
[2285] Fix | Delete
*
[2286] Fix | Delete
* @return void
[2287] Fix | Delete
*/
[2288] Fix | Delete
public function support_user_maybe_delete_expired_account() {
[2289] Fix | Delete
if ( empty( $this->support_user_options['date_created'] ) ) {
[2290] Fix | Delete
return;
[2291] Fix | Delete
}
[2292] Fix | Delete
[2293] Fix | Delete
$expiration_date_unix = strtotime( $this->support_user_expiration_time, $this->support_user_options['date_created'] );
[2294] Fix | Delete
[2295] Fix | Delete
// Delete the user account if the expiration date is in the past
[2296] Fix | Delete
if ( time() >= $expiration_date_unix ) {
[2297] Fix | Delete
$this->support_user_delete_account();
[2298] Fix | Delete
}
[2299] Fix | Delete
[2300] Fix | Delete
return;
[2301] Fix | Delete
}
[2302] Fix | Delete
[2303] Fix | Delete
/**
[2304] Fix | Delete
* Delete support account and the plugin options ( token, expiration date )
[2305] Fix | Delete
*
[2306] Fix | Delete
* @since 3.20
[2307] Fix | Delete
*
[2308] Fix | Delete
* @return string | WP_Error Confirmation message on success, WP_Error on failure
[2309] Fix | Delete
*/
[2310] Fix | Delete
public function support_user_delete_account() {
[2311] Fix | Delete
if ( defined( 'DOING_CRON' ) ) {
[2312] Fix | Delete
require_once( ABSPATH . 'wp-admin/includes/user.php' );
[2313] Fix | Delete
}
[2314] Fix | Delete
[2315] Fix | Delete
if ( ! username_exists( $this->support_user_account_name ) ) {
[2316] Fix | Delete
return new WP_Error( 'get_user_data', esc_html__( 'Support account doesn\'t exist.', 'et-core' ) );
[2317] Fix | Delete
}
[2318] Fix | Delete
[2319] Fix | Delete
$support_account_data = get_user_by( 'login', $this->support_user_account_name );
[2320] Fix | Delete
[2321] Fix | Delete
if ( $support_account_data ) {
[2322] Fix | Delete
$support_account_id = $support_account_data->ID;
[2323] Fix | Delete
[2324] Fix | Delete
if (
[2325] Fix | Delete
( is_multisite() && ! wpmu_delete_user( $support_account_id ) )
[2326] Fix | Delete
|| ( ! is_multisite() && ! wp_delete_user( $support_account_id ) )
[2327] Fix | Delete
) {
[2328] Fix | Delete
return new WP_Error( 'delete_user', esc_html__( 'Support account hasn\'t been removed. Try to regenerate token again.', 'et-core' ) );
[2329] Fix | Delete
}
[2330] Fix | Delete
[2331] Fix | Delete
delete_option( $this->support_user_options_name );
[2332] Fix | Delete
} else {
[2333] Fix | Delete
return new WP_Error( 'get_user_data', esc_html__( 'Cannot get the support account data. Try to regenerate token again.', 'et-core' ) );
[2334] Fix | Delete
}
[2335] Fix | Delete
[2336] Fix | Delete
$this->support_user_remove_roles();
[2337] Fix | Delete
[2338] Fix | Delete
$this->support_user_remove_site_id();
[2339] Fix | Delete
[2340] Fix | Delete
$this->support_user_clear_delete_cron();
[2341] Fix | Delete
[2342] Fix | Delete
// update options variable
[2343] Fix | Delete
$this->support_user_get_options();
[2344] Fix | Delete
[2345] Fix | Delete
new WP_Error( 'get_user_data', esc_html__( 'Token has been deleted successfully.', 'et-core' ) );
[2346] Fix | Delete
[2347] Fix | Delete
return esc_html__( 'Token has been deleted successfully. ', 'et-core' );
[2348] Fix | Delete
}
[2349] Fix | Delete
[2350] Fix | Delete
/**
[2351] Fix | Delete
* Maybe delete support account and the plugin options when switching themes
[2352] Fix | Delete
*
[2353] Fix | Delete
* If a theme change is one of:
[2354] Fix | Delete
* - [Divi/Extra] > [Divi/Extra] child theme
[2355] Fix | Delete
* - [Divi/Extra] child theme > [Divi/Extra] child theme
[2356] Fix | Delete
* - [Divi/Extra] child theme > [Divi/Extra]
[2357] Fix | Delete
* ...then we won't change the state of the Remote Access toggle.
[2358] Fix | Delete
*
[2359] Fix | Delete
* @since 3.23
[2360] Fix | Delete
*
[2361] Fix | Delete
* @return string | WP_Error Confirmation message on success, WP_Error on failure
[2362] Fix | Delete
*/
[2363] Fix | Delete
public function maybe_deactivate_on_theme_switch() {
[2364] Fix | Delete
// Don't do anything if the user isn't logged in
[2365] Fix | Delete
if ( ! is_user_logged_in() ) {
[2366] Fix | Delete
return;
[2367] Fix | Delete
}
[2368] Fix | Delete
[2369] Fix | Delete
// Don't do anything if the parent theme's name matches the parent of this Support Center instance
[2370] Fix | Delete
if ( get_option( 'template' ) === $this->parent_nicename ) {
[2371] Fix | Delete
return;
[2372] Fix | Delete
}
[2373] Fix | Delete
[2374] Fix | Delete
// Leaving Divi/Extra environment; deactivate Support Center
[2375] Fix | Delete
$this->support_user_delete_account();
[2376] Fix | Delete
$this->unlist_support_center();
[2377] Fix | Delete
$this->support_center_capabilities_teardown();
[2378] Fix | Delete
}
[2379] Fix | Delete
[2380] Fix | Delete
/**
[2381] Fix | Delete
* Is this user the ET Support User?
[2382] Fix | Delete
*
[2383] Fix | Delete
* @since 3.22
[2384] Fix | Delete
*
[2385] Fix | Delete
* @param int|null $user_id Pass a User ID to check. We'll get the current user's ID otherwise.
[2386] Fix | Delete
*
[2387] Fix | Delete
* @return bool Returns whether this user is the ET Support User.
[2388] Fix | Delete
*/
[2389] Fix | Delete
function is_support_user( $user_id = null ) {
[2390] Fix | Delete
$user_id = $user_id ? (int) $user_id : get_current_user_id();
[2391] Fix | Delete
if ( ! $user_id ) {
[2392] Fix | Delete
return false;
[2393] Fix | Delete
}
[2394] Fix | Delete
[2395] Fix | Delete
$user = get_userdata( $user_id );
[2396] Fix | Delete
[2397] Fix | Delete
// Gather this user's associated role(s)
[2398] Fix | Delete
$user_roles = (array) $user->roles;
[2399] Fix | Delete
$user_is_support = false;
[2400] Fix | Delete
[2401] Fix | Delete
// First, check the username
[2402] Fix | Delete
if ( ! $this->support_user_account_name === $user->user_login ) {
[2403] Fix | Delete
return $user_is_support;
[2404] Fix | Delete
}
[2405] Fix | Delete
[2406] Fix | Delete
// Determine whether this user has the ET Support User role
[2407] Fix | Delete
if ( in_array( 'et_support', $user_roles ) ) {
[2408] Fix | Delete
$user_is_support = true;
[2409] Fix | Delete
}
[2410] Fix | Delete
if ( in_array( 'et_support_elevated', $user_roles ) ) {
[2411] Fix | Delete
$user_is_support = true;
[2412] Fix | Delete
}
[2413] Fix | Delete
[2414] Fix | Delete
return $user_is_support;
[2415] Fix | Delete
}
[2416] Fix | Delete
[2417] Fix | Delete
/**
[2418] Fix | Delete
* Delete support account and the plugin options ( token, expiration date )
[2419] Fix | Delete
*
[2420] Fix | Delete
* @since 3.20
[2421] Fix | Delete
*
[2422] Fix | Delete
* @return void
[2423] Fix | Delete
*/
[2424] Fix | Delete
public function unlist_support_center() {
[2425] Fix | Delete
delete_option( 'et_support_center_installed' );
[2426] Fix | Delete
}
[2427] Fix | Delete
[2428] Fix | Delete
/**
[2429] Fix | Delete
*
[2430] Fix | Delete
*/
[2431] Fix | Delete
public function support_user_remove_site_id() {
[2432] Fix | Delete
$site_id = get_option( 'et_support_site_id' );
[2433] Fix | Delete
[2434] Fix | Delete
if ( empty( $site_id ) ) {
[2435] Fix | Delete
return;
[2436] Fix | Delete
}
[2437] Fix | Delete
[2438] Fix | Delete
// Site ID must be a string
[2439] Fix | Delete
if ( ! is_string( $site_id ) ) {
[2440] Fix | Delete
return;
[2441] Fix | Delete
}
[2442] Fix | Delete
[2443] Fix | Delete
$et_license = $this->get_et_license();
[2444] Fix | Delete
[2445] Fix | Delete
if ( ! $et_license ) {
[2446] Fix | Delete
return;
[2447] Fix | Delete
}
[2448] Fix | Delete
[2449] Fix | Delete
$send_to_api = array(
[2450] Fix | Delete
'action' => 'remove_site_id',
[2451] Fix | Delete
'site_id' => esc_attr( $site_id ),
[2452] Fix | Delete
'username' => esc_attr( $et_license['username'] ),
[2453] Fix | Delete
'api_key' => esc_attr( $et_license['api_key'] ),
[2454] Fix | Delete
'site_url' => esc_url( home_url( '/' ) ),
[2455] Fix | Delete
);
[2456] Fix | Delete
[2457] Fix | Delete
$settings = array(
[2458] Fix | Delete
'timeout' => 30,
[2459] Fix | Delete
'body' => $send_to_api,
[2460] Fix | Delete
);
[2461] Fix | Delete
[2462] Fix | Delete
$request = wp_remote_post( 'https://www.elegantthemes.com/api/token.php', $settings );
[2463] Fix | Delete
[2464] Fix | Delete
if ( is_wp_error( $request ) ) {
[2465] Fix | Delete
wp_remote_post( 'https://cdn.elegantthemes.com/api/token.php', $settings );
[2466] Fix | Delete
}
[2467] Fix | Delete
}
[2468] Fix | Delete
[2469] Fix | Delete
function support_user_update_via_ajax() {
[2470] Fix | Delete
// Verify nonce
[2471] Fix | Delete
et_core_security_check( 'manage_options', 'support_center', 'nonce' );
[2472] Fix | Delete
[2473] Fix | Delete
// Get POST data
[2474] Fix | Delete
$support_update = sanitize_text_field( $_POST['support_update'] );
[2475] Fix | Delete
[2476] Fix | Delete
$response = array();
[2477] Fix | Delete
[2478] Fix | Delete
// Update option(s)
[2479] Fix | Delete
if ( 'activate' === $support_update ) {
[2480] Fix | Delete
$maybe_create_user = $this->support_user_maybe_create_user();
[2481] Fix | Delete
// Only activate if we have a User ID and Password
[2482] Fix | Delete
if ( ! is_wp_error( $maybe_create_user ) ) {
[2483] Fix | Delete
$this->support_user_set_role( 'et_support' );
[2484] Fix | Delete
$account_settings = get_option( $this->support_user_options_name );
[2485] Fix | Delete
$site_id = get_option( 'et_support_site_id' );
[2486] Fix | Delete
$response['expiry'] = strtotime(
[2487] Fix | Delete
date(
[2488] Fix | Delete
'Y-m-d H:i:s ',
[2489] Fix | Delete
$this->support_user_options['date_created']
[2490] Fix | Delete
) . $this->support_user_expiration_time
[2491] Fix | Delete
);
[2492] Fix | Delete
$response['token'] = '';
[2493] Fix | Delete
if ( ! empty( $site_id ) && is_string( $site_id ) ) {
[2494] Fix | Delete
$response['token'] = $account_settings['token'] . '|' . $site_id;
[2495] Fix | Delete
}
[2496] Fix | Delete
$response['message'] = esc_html__(
[2497] Fix | Delete
'ET Support User role has been activated.',
[2498] Fix | Delete
'et-core'
[2499] Fix | Delete
It is recommended that you Edit text format, this type of Fix handles quite a lot in one request
Function