settings_api = new DSM_Settings_API(); add_action( 'admin_init', array( $this, 'admin_init' ) ); add_action( 'admin_menu', array( $this, 'admin_menu' ) ); } function admin_init() { // set the settings $this->settings_api->set_sections( $this->get_settings_sections() ); $this->settings_api->set_fields( $this->get_settings_fields() ); // initialize settings $this->settings_api->admin_init(); } function admin_menu() { $dsm_plugin_menu_icon = 'data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyMy4xNiAyNSI+PGRlZnM+PHN0eWxlPi5jbHMtMXtpc29sYXRpb246aXNvbGF0ZTt9LmNscy0ye2ZpbGw6I2ZmZjt9LmNscy0ze2ZpbGw6IzIzMWYyMDtvcGFjaXR5OjAuMjU7bWl4LWJsZW5kLW1vZGU6bXVsdGlwbHk7fTwvc3R5bGU+PC9kZWZzPjx0aXRsZT5pY29uLTEyOHgxMjg8L3RpdGxlPjxnIGNsYXNzPSJjbHMtMSI+PGcgaWQ9IkxheWVyXzEiIGRhdGEtbmFtZT0iTGF5ZXIgMSI+PHBhdGggY2xhc3M9ImNscy0yIiBkPSJNMjkuMjYsMTIuNzVBMTIuNDgsMTIuNDgsMCwwLDAsMTcuMzMsNEgxMC40MkEzLjc1LDMuNzUsMCwwLDAsNi42Nyw3Ljc1djcuOTFhMy43NSwzLjc1LDAsMCwwLDMuNzUsMy43NWgwYTMuNzUsMy43NSwwLDAsMCwzLjc1LTMuNzVoMFYxMS40OWgzLjE0YzMsMCw1LDEuNCw1LDQuODJhNi40NCw2LjQ0LDAsMCwxLS4yMywxLjc1LDQuNTUsNC41NSwwLDAsMS00LjE2LDMuNDNIMTAuNDJhMy43NSwzLjc1LDAsMCwwLTMuNzUsMy43NWgwQTMuNzUsMy43NSwwLDAsMCwxMC40MiwyOWg3LjkxYTMuNzcsMy43NywwLDAsMCwxLjE3LS4xOUExMi41LDEyLjUsMCwwLDAsMjkuODMsMTYuNWgwQTEyLjUyLDEyLjUyLDAsMCwwLDI5LjI2LDEyLjc1WiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTYuNjcgLTQpIi8+PHBhdGggY2xhc3M9ImNscy0yIiBkPSJNMjcuNDgsOS4yYTEyLjU1LDEyLjU1LDAsMCwwLTQuMDctMy42Myw3LjQyLDcuNDIsMCwwLDAtMi4zMi0uMzcsNi43Miw2LjcyLDAsMCwwLTYuOTIsNi4yOWgzLjE0YzMsMCw1LDEuNCw1LDQuODJhNi40NCw2LjQ0LDAsMCwxLS4yMywxLjc1LDQuNTUsNC41NSwwLDAsMS00LjE2LDMuNDMsMTIuNDksMTIuNDksMCwwLDAsOS41OC01LjI0LDYuMDUsNi4wNSwwLDAsMCwwLTdaIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtNi42NyAtNCkiLz48cGF0aCBjbGFzcz0iY2xzLTMiIGQ9Ik0yOC40LDExLjFhNS41Niw1LjU2LDAsMCwxLC4xMywxLjIyYzAsMy41My0zLjExLDYuNTMtNy40NSw3LjY2YTQuNjEsNC42MSwwLDAsMS0zLjE0LDEuNTEsMTIuNDksMTIuNDksMCwwLDAsOS41OC01LjI0QTYsNiwwLDAsMCwyOC40LDExLjFaIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtNi42NyAtNCkiLz48cGF0aCBjbGFzcz0iY2xzLTMiIGQ9Ik0yMi42Nyw1LjM3YTcuNSw3LjUsMCwwLDAtMS41OC0uMTcsNi43Miw2LjcyLDAsMCwwLTYuOTIsNi4yOWgxQTcuNjgsNy42OCwwLDAsMSwyMi42Nyw1LjM3WiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTYuNjcgLTQpIi8+PC9nPjwvZz48L3N2Zz4='; add_menu_page( __( 'Divi Supreme', 'dsm-supreme-modules-for-divi' ), __( 'Divi Supreme', 'dsm-supreme-modules-for-divi' ), 'manage_options', 'divi_supreme_settings', array( $this, 'plugin_page' ), $dsm_plugin_menu_icon, 99 ); if ( $this->settings_api->get_option( 'dsm_use_header_footer', 'dsm_general' ) === 'on' ) { add_submenu_page( 'divi_supreme_settings', __( 'Divi Templates', 'dsm-supreme-modules-for-divi' ), __( 'Divi Templates', 'dsm-supreme-modules-for-divi' ), 'manage_options', 'edit.php?post_type=dsm_header_footer' ); } } function get_settings_sections() { $sections = array( array( 'id' => 'dsm_general', 'title' => __( 'General Settings', 'dsm-supreme-modules-for-divi' ), ), array( 'id' => 'dsm_theme_builder', 'title' => __( 'Easy Theme Builder', 'dsm-supreme-modules-for-divi' ), ), array( 'id' => 'dsm_settings_social_media', 'title' => __( 'Social Media Settings', 'dsm-supreme-modules-for-divi' ), ), array( 'id' => 'dsm_settings_misc', 'title' => __( 'Misc', 'dsm-supreme-modules-for-divi' ), ), ); return $sections; } /** * Returns all the settings fields * * @return array settings fields */ function get_settings_fields() { $settings_fields = array( 'dsm_general' => array( array( 'name' => 'dsm_section_subtitle', 'class' => 'dsm-section-subtitle', 'label' => __( 'Divi Supreme Extensions', 'dsm-supreme-modules-for-divi' ), 'desc' => __( 'This is where you can enable Divi Extensions.' ), 'type' => 'subheading', ), array( 'name' => 'dsm_use_scheduled_content', 'class' => 'dsm-settings-checkbox', 'label' => __( 'Enable Scheduled Content on Section & Row', 'dsm-supreme-modules-for-divi' ), //'desc' => __( '', 'dsm-supreme-modules-for-divi' ), 'type' => 'checkbox', 'default' => 'off', ), array( 'name' => 'dsm_use_header_footer', 'class' => 'dsm-settings-checkbox', 'label' => __( 'Enable Divi Templates', 'dsm-supreme-modules-for-divi' ), //'desc' => __( '', 'dsm-supreme-modules-for-divi' ), 'type' => 'checkbox', 'default' => 'off', ), array( 'name' => 'dsm_use_shortcode', 'class' => 'dsm-settings-checkbox', 'label' => __( 'Enable Divi Library Shortcodes', 'dsm-supreme-modules-for-divi' ), //'desc' => __( '', 'dsm-supreme-modules-for-divi' ), 'type' => 'checkbox', 'default' => 'off', ), /* array( 'name' => 'dsm_use_sticky_element', 'class' => 'dsm-settings-checkbox', 'label' => __( 'Enable Divi Sticky Element', 'dsm-supreme-modules-for-divi' ), 'type' => 'checkbox', 'default' => 'off', ),*/ ), 'dsm_theme_builder' => array( array( 'name' => 'dsm_theme_builder_header', 'label' => __( 'Theme Builder Header', 'dsm-supreme-modules-for-divi' ), 'desc' => __( 'Configure Theme Builder Header settings here.' ), 'type' => 'subheading', ), array( 'name' => 'dsm_theme_builder_header_fixed', 'class' => 'dsm-settings-checkbox', 'label' => __( 'Enable Fixed Header', 'dsm-supreme-modules-for-divi' ), 'desc' => __( 'This will make the Divi Theme Builder Header stay fixed to the top.', 'dsm-supreme-modules-for-divi' ), 'type' => 'checkbox', 'default' => 'off', ), /* array( 'name' => 'dsm_theme_builder_header_fixed_devices', 'label' => __( 'Disable On', 'dsm-supreme-modules-for-divi' ), 'desc' => __( 'This will disable the fixed header on selected devices.', 'dsm-supreme-modules-for-divi' ), 'type' => 'multicheck', 'options' => array( 'desktop' => 'Desktop', 'tablet' => 'Tablet', 'phone' => 'Phone', ), ),*/ array( 'name' => 'dsm_theme_builder_header_auto_calc', 'class' => 'dsm-settings-checkbox', 'label' => __( 'Push Body Down', 'dsm-supreme-modules-for-divi' ), 'desc' => __( 'This will calculate the Divi Theme Builder Header height automatically and apply the height to the body to prevent the first section from overlapping. This will push tbe first section down based on the header height. This is not needed if you have a transparent background for the header.', 'dsm-supreme-modules-for-divi' ), 'type' => 'checkbox', 'default' => 'off', ), array( 'name' => 'dsm_theme_builder_header_shrink_break', 'desc' => __( '