The newest free Elementor 3.0.11 needs some tweaking in one file. There is a function that connecto to their server and validates the Elementor Pro plugin.
File /core/common/modules/connect/apps/base-app.php
Line 241
Where it says:
public function is_connected() {
return (bool) $this->get( 'access_token' );
It must say:
public function is_connected() {
return true;
//return (bool) $this->get( 'access_token' );
Line 347
Where it says:
if ( $this->is_connected() ) {
$headers['X-Elementor-Signature'] = hash_hmac( 'sha256', wp_json_encode( $request_body, JSON_NUMERIC_CHECK ), $this->get( 'access_token_secret' ) );
}
$response = wp_remote_post( $this->get_api_url() . '/' . $action, [
'body' => $request_body,
'headers' => $headers,
'timeout' => 25,
] );
It must say:
if ( $this->is_connected() ) {
$headers['X-Elementor-Signature'] = hash_hmac( 'sha256', wp_json_encode( $request_body, JSON_NUMERIC_CHECK ), $this->get( 'access_token_secret' ) );
}
// NF ++
if ($action === 'get_template_content') {
$templateExists = false;
if (file_exists(ELEMENTOR_PATH . 'templates/' . $request_body['id'] . '.json')) {
$templateExists = true;
$url = ELEMENTOR_URL . 'templates/' . $request_body['id'] . '.json';
}
}
if ($templateExists) {
$response = wp_remote_get( $url, [
'timeout' => 40,
'sslverify' => false,
] );
} else {
// NF end
$response = wp_remote_post( $this->get_api_url() . '/' . $action, [
'body' => $request_body,
'headers' => $headers,
'timeout' => 25,
] );
// NF ++
}
// NF end
Line 389
Where it says:
if ( 401 === $code ) {
$this->delete();
$this->action_authorize();
}
It must say:
if ( 401 === $code ) {
/* NF --
//$this->delete();
//$this->action_authorize();
NF end */ }