| Server IP : 10.19.1.101 / Your IP : 216.73.216.158 Web Server : Apache System : Linux web1f13.kinghost.net 5.4.282-1.el8.elrepo.x86_64 #1 SMP Mon Aug 19 18:33:22 EDT 2024 x86_64 User : schererimoveisrs ( 170628) PHP Version : 7.4.33 Disable Function : apache_child_terminate,c99_buff_prepare,c99_sess_put,dl,exec,leak,link,myshellexec,openlog,passthru,pclose,pcntl_exec,php_check_syntax,php_strip_whitespace,popen,posix_kill,posix_mkfifo,posix_setpgid,posix_setsid,posix_setuid,proc_close,proc_get_status,proc_nice,proc_open,proc_terminate,shell_exec,show_source,symlink,system,socket_listen,socket_create_listen,putenv MySQL : ON | cURL : ON | WGET : OFF | Perl : OFF | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : /home/schererimoveisrs/www/wp-content/plugins/elementor/core/upgrade/ |
Upload File : |
<?php
namespace Elementor\Core\Upgrade;
use Elementor\Plugin;
if ( ! defined( 'ABSPATH' ) ) {
exit; // Exit if accessed directly.
}
class Upgrade_Utils {
/**
* _update_widget_settings
*
* @param string $widget_id widget type id.
* @param Updater $updater updater instance.
* @param array $changes array containing updating control_ids, callback and other data needed by the callback.
*
* @return bool
*/
public static function _update_widget_settings( $widget_id, $updater, $changes ) {
global $wpdb;
$post_ids = $updater->query_col(
'SELECT `post_id`
FROM `' . $wpdb->postmeta . '`
WHERE `meta_key` = "_elementor_data"
AND `meta_value` LIKE \'%"widgetType":"' . $widget_id . '"%\';'
);
if ( empty( $post_ids ) ) {
return false;
}
foreach ( $post_ids as $post_id ) {
$do_update = false;
$document = Plugin::instance()->documents->get( $post_id );
if ( ! $document ) {
continue;
}
$data = $document->get_elements_data();
if ( empty( $data ) ) {
continue;
}
// loop thru callbacks & array
foreach ( $changes as $change ) {
$args = [
'do_update' => &$do_update,
'widget_id' => $widget_id,
'control_ids' => $change['control_ids'],
];
if ( isset( $change['prefix'] ) ) {
$args['prefix'] = $change['prefix'];
$args['new_id'] = $change['new_id'];
}
$data = Plugin::instance()->db->iterate_data( $data, $change['callback'], $args );
if ( ! $do_update ) {
continue;
}
// We need the `wp_slash` in order to avoid the unslashing during the `update_metadata`
$json_value = wp_slash( wp_json_encode( $data ) );
update_metadata( 'post', $post_id, '_elementor_data', $json_value );
}
}
return $updater->should_run_again( $post_ids );
}
}