| @@ -46,10 +46,8 @@ | ||
| 46 | 46 | const BUILT_WITH_ELEMENTOR_META_KEY = '_elementor_edit_mode'; |
| 47 | 47 | |
| 48 | 48 | const CACHE_META_KEY = '_elementor_element_cache'; |
| 49 | 49 | |
| 50 | - const UNEDITABLE_WITH_ELEMENTOR_TYPES = [ 'kit' ]; | |
| 51 | - | |
| 52 | 50 | /** |
| 53 | 51 | * Document publish status. |
| 54 | 52 | */ |
| 55 | 53 | const STATUS_PUBLISH = 'publish'; |
| @@ -232,16 +230,9 @@ | ||
| 232 | 230 | * |
| 233 | 231 | * @return array |
| 234 | 232 | */ |
| 235 | 233 | private static function get_panel_category_item( $promotion, $index, array $categories, bool $has_pro ): array { |
| 236 | - $keep_promotion = $has_pro && apply_filters( | |
| 237 | - 'elementor/document/panel_category_keep_promotion', | |
| 238 | - false, | |
| 239 | - $index, | |
| 240 | - $promotion | |
| 241 | - ); | |
| 242 | - | |
| 243 | - if ( ! $has_pro || $keep_promotion ) { | |
| 234 | + if ( ! $has_pro ) { | |
| 244 | 235 | $categories[ $index ]['promotion'] = Filtered_Promotions_Manager::get_filtered_promotion_data( |
| 245 | 236 | $promotion, |
| 246 | 237 | 'elementor/panel/' . $index . '/custom_promotion', |
| 247 | 238 | 'url' |
| @@ -656,9 +647,9 @@ | ||
| 656 | 647 | * |
| 657 | 648 | * @return array An updated array of row action links. |
| 658 | 649 | */ |
| 659 | 650 | public function filter_admin_row_actions( $actions ) { |
| 660 | - if ( $this->is_editable_with_elementor() ) { | |
| 651 | + if ( $this->is_built_with_elementor() && $this->is_editable_by_current_user() ) { | |
| 661 | 652 | $actions['edit_with_elementor'] = sprintf( |
| 662 | 653 | '<a href="%1$s">%2$s</a>', |
| 663 | 654 | $this->get_edit_url(), |
| 664 | 655 | __( 'Edit with Elementor', 'elementor' ) |
| @@ -667,16 +658,8 @@ | ||
| 667 | 658 | |
| 668 | 659 | return $actions; |
| 669 | 660 | } |
| 670 | 661 | |
| 671 | - public function is_editable_with_elementor() { | |
| 672 | - if ( in_array( $this->get_type(), self::UNEDITABLE_WITH_ELEMENTOR_TYPES ) ) { | |
| 673 | - return false; | |
| 674 | - } | |
| 675 | - | |
| 676 | - return $this->is_editable_by_current_user() && $this->is_built_with_elementor(); | |
| 677 | - } | |
| 678 | - | |
| 679 | 662 | /** |
| 680 | 663 | * @since 2.0.0 |
| 681 | 664 | * @access public |
| 682 | 665 | */ |
| @@ -853,9 +836,11 @@ | ||
| 853 | 836 | */ |
| 854 | 837 | do_action( 'elementor/document/before_save', $this, $data ); |
| 855 | 838 | |
| 856 | 839 | if ( ! current_user_can( 'unfiltered_html' ) ) { |
| 857 | - $data = Utils::kses_post_deep( $data ); | |
| 840 | + $data = map_deep( $data, function ( $value ) { | |
| 841 | + return is_bool( $value ) || is_null( $value ) ? $value : wp_kses_post( $value ); | |
| 842 | + } ); | |
| 858 | 843 | } |
| 859 | 844 | |
| 860 | 845 | if ( ! empty( $data['settings'] ) ) { |
| 861 | 846 | if ( isset( $data['settings']['post_status'] ) && self::STATUS_AUTOSAVE === $data['settings']['post_status'] ) { |