PluginProbe
Elementor Website Builder – more than just a page builder / 3.1.0-dev1
Elementor Website Builder – more than just a page builder v3.1.0-dev1
4.3.0-beta3 4.3.0-beta2 4.3.0-beta1 4.2.4 4.2.3 4.2.2 4.2.1 4.2.0 4.1.5 4.2.0-beta2 4.2.0-dev2 4.2.0-beta1 4.1.4 4.1.3 4.1.2 4.1.1 4.1.0 4.1.0-beta3 4.1.0-dev3 4.0.9 4.1.0-beta2 4.1.0-dev2 4.0.8 4.1.0-beta1 4.1.0-dev1 All 452 releases
elementor / core / kits / documents / tabs / settings-site-identity.php

settings-site-identity.php in Elementor Website Builder – more than just a page builder 3.1.0-dev1, at core/kits/documents/tabs/settings-site-identity.php

129 lines 3.5 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 namespace Elementor\Core\Kits\Documents\Tabs;
4
5 use Elementor\Controls_Manager;
6 use Elementor\DB;
7 use Elementor\Core\Files\Assets\Files_Upload_Handler;
8
9 if ( ! defined( 'ABSPATH' ) ) {
10 exit; // Exit if accessed directly
11 }
12
13 class Settings_Site_Identity extends Tab_Base {
14
15 public function get_id() {
16 return 'settings-site-identity';
17 }
18
19 public function get_title() {
20 return __( 'Site Identity', 'elementor' );
21 }
22
23 protected function register_tab_controls() {
24 $custom_logo_id = get_theme_mod( 'custom_logo' );
25 $custom_logo_src = wp_get_attachment_image_src( $custom_logo_id, 'full' );
26
27 $site_icon_id = get_option( 'site_icon' );
28 $site_icon_src = wp_get_attachment_image_src( $site_icon_id, 'full' );
29
30 // If CANNOT upload svg normally, it will add a custom inline option to force svg upload if requested. (in logo and favicon)
31 $should_include_svg_inline_option = ! Files_Upload_Handler::is_enabled();
32
33 $this->start_controls_section(
34 'section_' . $this->get_id(),
35 [
36 'label' => $this->get_title(),
37 'tab' => $this->get_id(),
38 ]
39 );
40
41 $this->add_control(
42 $this->get_id() . '_refresh_notice',
43 [
44 'type' => Controls_Manager::RAW_HTML,
45 'raw' => __( 'Changes will be reflected in the preview only after the page reloads.', 'elementor' ),
46 'content_classes' => 'elementor-panel-alert elementor-panel-alert-info',
47 ]
48 );
49
50 $this->add_control(
51 'site_name',
52 [
53 'label' => __( 'Site Name', 'elementor' ),
54 'default' => get_option( 'blogname' ),
55 'placeholder' => __( 'Choose name', 'elementor' ),
56 'label_block' => true,
57 ]
58 );
59
60 $this->add_control(
61 'site_description',
62 [
63 'label' => __( 'Site Description', 'elementor' ),
64 'default' => get_option( 'blogdescription' ),
65 'placeholder' => __( 'Choose description', 'elementor' ),
66 'label_block' => true,
67 ]
68 );
69
70 $this->add_control(
71 'site_logo',
72 [
73 'label' => __( 'Site Logo', 'elementor' ),
74 'type' => Controls_Manager::MEDIA,
75 'should_include_svg_inline_option' => $should_include_svg_inline_option,
76 'default' => [
77 'id' => $custom_logo_id,
78 'url' => $custom_logo_src ? $custom_logo_src[0] : '',
79 ],
80 'description' => __( 'Suggested image dimensions: 350 × 100 pixels.', 'elementor' ),
81 ]
82 );
83
84 $this->add_control(
85 'site_favicon',
86 [
87 'label' => __( 'Site Favicon', 'elementor' ),
88 'type' => Controls_Manager::MEDIA,
89 'should_include_svg_inline_option' => $should_include_svg_inline_option,
90 'default' => [
91 'id' => $site_icon_id,
92 'url' => $site_icon_src ? $site_icon_src[0] : '',
93 ],
94 'description' => __( 'Suggested favicon dimensions: 512 × 512 pixels.', 'elementor' ),
95 ]
96 );
97
98 $this->end_controls_section();
99 }
100
101 public function on_save( $data ) {
102 if (
103 ! isset( $data['settings'] ) ||
104 DB::STATUS_PUBLISH !== $data['settings']['post_status'] ||
105 // Should check for the current action to avoid infinite loop
106 // when updating options like: "blogname" and "blogdescription".
107 strpos( current_action(), 'update_option_' ) === 0
108 ) {
109 return;
110 }
111
112 if ( isset( $data['settings']['site_name'] ) ) {
113 update_option( 'blogname', $data['settings']['site_name'] );
114 }
115
116 if ( isset( $data['settings']['site_description'] ) ) {
117 update_option( 'blogdescription', $data['settings']['site_description'] );
118 }
119
120 if ( isset( $data['settings']['site_logo'] ) ) {
121 set_theme_mod( 'custom_logo', $data['settings']['site_logo']['id'] );
122 }
123
124 if ( isset( $data['settings']['site_favicon'] ) ) {
125 update_option( 'site_icon', $data['settings']['site_favicon']['id'] );
126 }
127 }
128 }
129