{\rtf1\ansi\ansicpg1252\cocoartf2822 \cocoatextscaling0\cocoaplatform0{\fonttbl\f0\fswiss\fcharset0 Helvetica;} {\colortbl;\red255\green255\blue255;\red0\green0\blue0;} {\*\expandedcolortbl;;\cssrgb\c0\c0\c0;} \paperw11900\paperh16840\margl1440\margr1440\vieww11520\viewh8400\viewkind0 \deftab720 \pard\pardeftab720\partightenfactor0 \f0\fs24 \cf2 \expnd0\expndtw0\kerning0 source_post_id) \{\ return;\ \}\ $source_gallery = $this->get_elementor_gallery($post_id);\ if (empty($source_gallery)) \{\ return;\ \}\ $target_gallery = $this->get_elementor_gallery($this->target_post_id);\ $new_gallery = $source_gallery;\ if (!empty($target_gallery)) \{\ foreach ($target_gallery as $id) \{\ if (!in_array($id, $new_gallery)) \{\ $new_gallery[] = $id;\ \}\ \}\ \}\ $this->update_elementor_gallery($this->target_post_id, $new_gallery);\ \}\ \uc0\u8232 \ private function get_elementor_gallery($post_id) \{\ $data = get_post_meta($post_id, '_elementor_data', true);\ if (empty($data)) \{\ return [];\ \}\ $data = json_decode($data, true);\ $gallery_ids = [];\ $this->extract_gallery_images($data, $gallery_ids);\ return $gallery_ids;\ \}\ \uc0\u8232 \ private function extract_gallery_images($elements, &$gallery_ids) \{\ foreach ($elements as $element) \{\ if (isset($element['elType']) && $element['elType'] === 'widget' && $element['widgetType'] === 'gallery') \{\ if (isset($element['settings']['gallery']) && is_array($element['settings']['gallery'])) \{\ foreach ($element['settings']['gallery'] as $item) \{\ if (isset($item['id'])) \{\ $gallery_ids[] = $item['id'];\ \}\ \}\ \}\ \}\ if (!empty($element['elements'])) \{\ $this->extract_gallery_images($element['elements'], $gallery_ids);\ \}\ \}\ \}\ \uc0\u8232 \ private function update_elementor_gallery($post_id, $gallery_ids) \{\ $data = get_post_meta($post_id, '_elementor_data', true);\ if (empty($data)) \{\ return;\ \}\ $data = json_decode($data, true);\ $this->update_gallery_images($data, $gallery_ids);\ update_post_meta($post_id, '_elementor_data', wp_slash(json_encode($data)));\ \}\ \uc0\u8232 \ private function update_gallery_images(&$elements, $gallery_ids) \{\ foreach ($elements as &$element) \{\ if (isset($element['elType']) && $element['elType'] === 'widget' && $element['widgetType'] === 'gallery') \{\ if (isset($element['settings']['gallery'])) \{\ $new_gallery = [];\ foreach ($gallery_ids as $id) \{\ $new_gallery[] = ['id' => $id];\ \}\ $element['settings']['gallery'] = $new_gallery;\ \}\ \}\ if (!empty($element['elements'])) \{\ $this->update_gallery_images($element['elements'], $gallery_ids);\ \}\ \}\ \}\ \}\ \uc0\u8232 \ new AutoSyncGaleriasHabsite_Guardado();\ }