← All changes
|
modules/components/documents/component.php
+0
-90
4.1.0-dev3
→
3.35.0-dev2
View file →
| @@ -3,11 +3,8 @@ | ||
| 3 | 3 | |
| 4 | 4 | use Elementor\Core\Base\Document; |
| 5 | 5 | use Elementor\Core\Utils\Api\Parse_Result; |
| 6 | 6 | use Elementor\Modules\Components\OverridableProps\Component_Overridable_Props_Parser; |
| 7 | -use Elementor\Modules\Components\PropTypes\Override_Prop_Type; | |
| 8 | -use Elementor\Modules\Components\PropTypes\Overridable_Prop_Type; | |
| 9 | -use Elementor\Modules\Components\Widgets\Component_Instance; | |
| 10 | 7 | |
| 11 | 8 | if ( ! defined( 'ABSPATH' ) ) { |
| 12 | 9 | exit; // Exit if accessed directly |
| 13 | 10 | } |
| @@ -129,12 +126,8 @@ | ||
| 129 | 126 | return $this->update_post_field( 'post_status', $status ); |
| 130 | 127 | } |
| 131 | 128 | |
| 132 | 129 | private function update_post_field( string $field, $value ): bool { |
| 133 | - if ( is_string( $value ) ) { | |
| 134 | - // NOTE: escape the json to support non-UTF-8 characters | |
| 135 | - $value = wp_slash( $value ); | |
| 136 | - } | |
| 137 | 130 | $result = wp_update_post( [ |
| 138 | 131 | 'ID' => $this->post->ID, |
| 139 | 132 | $field => $value, |
| 140 | 133 | ] ); |
| @@ -145,89 +138,6 @@ | ||
| 145 | 138 | $this->refresh_post(); |
| 146 | 139 | } |
| 147 | 140 | |
| 148 | 141 | return $success; |
| 149 | - } | |
| 150 | - | |
| 151 | - public function print_elements_without_cache( array $elements_data ) { | |
| 152 | - $this->do_print_elements( $elements_data ); | |
| 153 | - } | |
| 154 | - | |
| 155 | - public function align_overridable_props_with_elements() { | |
| 156 | - $elements_data = $this->get_elements_data(); | |
| 157 | - // format elements data to flat map of overridable prop key -> new origin value | |
| 158 | - $overridable_props_map = $this->get_elements_origin_values_map( $elements_data, [] ); | |
| 159 | - | |
| 160 | - if ( empty( $overridable_props_map ) ) { | |
| 161 | - return; | |
| 162 | - } | |
| 163 | - | |
| 164 | - $updated_overridable_props = $this->get_overridable_props(); | |
| 165 | - | |
| 166 | - foreach ( $updated_overridable_props->props as $prop ) { | |
| 167 | - | |
| 168 | - $new_origin_value = $overridable_props_map[ $prop->override_key ]; | |
| 169 | - | |
| 170 | - if ( isset( $new_origin_value ) ) { | |
| 171 | - $prop->origin_value = $new_origin_value; | |
| 172 | - } | |
| 173 | - } | |
| 174 | - | |
| 175 | - $this->update_overridable_props( $updated_overridable_props->to_associative_array() ); | |
| 176 | - } | |
| 177 | - | |
| 178 | - private function get_elements_origin_values_map( array $elements_data, array $overridable_props_map ) { | |
| 179 | - foreach ( $elements_data as $element ) { | |
| 180 | - if ( $this->is_component_instance( $element ) ) { | |
| 181 | - $component_instance = $element['settings']['component_instance']['value']; | |
| 182 | - $overrides = $component_instance['overrides']['value'] ?? []; | |
| 183 | - | |
| 184 | - if ( empty( $overrides ) ) { | |
| 185 | - continue; | |
| 186 | - } | |
| 187 | - | |
| 188 | - foreach ( $overrides as $item ) { | |
| 189 | - if ( $this->is_overridable_prop( $item ) ) { | |
| 190 | - $override_key = $item['value']['override_key']; | |
| 191 | - $override = $item['value']['origin_value']; | |
| 192 | - | |
| 193 | - if ( ! $this->is_override_prop( $override ) ) { | |
| 194 | - throw new \Exception( 'Invalid override value' ); | |
| 195 | - } | |
| 196 | - $overridable_props_map[ $override_key ] = $override['value']['override_value']; | |
| 197 | - } | |
| 198 | - } | |
| 199 | - | |
| 200 | - continue; | |
| 201 | - } | |
| 202 | - | |
| 203 | - if ( ! empty( $element['settings'] ) ) { | |
| 204 | - foreach ( $element['settings'] as $prop_key => $prop_value ) { | |
| 205 | - if ( isset( $prop_value['$$type'] ) && Overridable_Prop_Type::get_key() === $prop_value['$$type'] ) { | |
| 206 | - $override_key = $prop_value['value']['override_key']; | |
| 207 | - $origin_value = $prop_value['value']['origin_value']; | |
| 208 | - | |
| 209 | - $overridable_props_map[ $override_key ] = $origin_value; | |
| 210 | - } | |
| 211 | - } | |
| 212 | - } | |
| 213 | - | |
| 214 | - if ( is_array( $element['elements'] ) ) { | |
| 215 | - $overridable_props_map = $this->get_elements_origin_values_map( $element['elements'], $overridable_props_map ); | |
| 216 | - } | |
| 217 | - } | |
| 218 | - | |
| 219 | - return $overridable_props_map; | |
| 220 | - } | |
| 221 | - | |
| 222 | - private function is_overridable_prop( array $prop ): bool { | |
| 223 | - return isset( $prop['$$type'] ) && Overridable_Prop_Type::get_key() === $prop['$$type']; | |
| 224 | - } | |
| 225 | - | |
| 226 | - private function is_override_prop( array $prop ): bool { | |
| 227 | - return isset( $prop['$$type'] ) && Override_Prop_Type::get_key() === $prop['$$type']; | |
| 228 | - } | |
| 229 | - | |
| 230 | - private function is_component_instance( array $element ): bool { | |
| 231 | - return 'widget' === $element['elType'] && Component_Instance::get_element_type() === $element['widgetType']; | |
| 232 | 142 | } |
| 233 | 143 | } |