PluginProbe
ShopEngine Elementor WooCommerce Builder Addon – All in One WooCommerce Solution with eCommerce Templates & Woo Widgets / 1.3.3
ShopEngine Elementor WooCommerce Builder Addon – All in One WooCommerce Solution with eCommerce Templates & Woo Widgets v1.3.3
4.9.5 4.9.4 4.9.3 4.9.2 4.9.1 4.9.0 2.0.0 2.1.0 2.2.0 2.2.1 2.2.2 2.3.0 2.4.0 2.5.0 2.5.1 3.0.0 3.1.0 3.1.1 4.0.0 4.0.1 4.1.0 4.1.1 4.2.0 4.2.1 4.3.0 All 85 releases
shopengine / compatibility / migrations / db-process.php
db-process.php
42 lines 1.3 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 namespace ShopEngine\Compatibility\Migrations;
3 defined('ABSPATH') || exit;
4 class Db_Process{
5 private $widget_names;
6 private $new_widget_names;
7 private $metadata;
8
9 public function __construct(){
10 $this->set_widget_names();
11 $this->process_post_meta_data();
12
13 foreach($this->metadata as $data){
14 $this->migrate_metadata($data);
15 }
16 }
17
18 private function migrate_metadata($data){
19 $new_meta_value = str_replace($this->widget_names, $this->new_widget_names, $data->meta_value);
20
21 global $wpdb;
22 $update = ['meta_value' => $new_meta_value];
23 $where = ['meta_id' => $data->meta_id];
24 $wpdb->update($wpdb->postmeta , $update, $where);
25 }
26
27 private function process_post_meta_data(){
28 global $wpdb;
29 $this->metadata = $wpdb->get_results ( "
30 SELECT *
31 FROM $wpdb->postmeta
32 WHERE meta_key = '_elementor_data'
33 " );
34 }
35
36 private function set_widget_names(){
37 $names = array_keys(\ShopEngine\Core\Register\Widget_List::instance()->get_list());
38
39 $this->widget_names = preg_filter('/^.*$/', '"widgetType":"$0"', $names);
40 $this->new_widget_names = preg_filter('/^.*$/', '"widgetType":"shopengine-$0"', $names);
41 }
42 }