type = $type; if ( method_exists( $this, 'get_themes_' . $type ) ) { $this->themes = call_user_func( array( $this, 'get_themes_' . $type ) ); if ( ! empty( $theme ) ) { $this->theme = isset( $this->themes[ $theme ] ) ? $this->themes[ $theme ] : array(); return $this->theme; } else { return $this->themes; } } return false; } /** * Get the current theme details with the option to load properties already styled. * * @return array|mixed */ public function get_theme() { return $this->theme; } /** * Get the currently loaded themes for the widget type. * * @return array|mixed */ public function get_themes() { return $this->themes; } public function get_theme_stored_styles() { if ( ! isset( $this->themes_styles ) ) { $this->themes_styles = get_option( $this->themes_styles_key, array() ); } return $this->themes_styles; } /** * Go through the themes and apply styles from the stored settings. * * @var string $type The instance type: inline/widget/products. * @var array $themes The themes to process/apply styles for. */ public function process_themes_styles( $type, $themes ) { $settings = $this->get_theme_stored_styles(); if ( ! empty( $settings[ $type ] ) ) { foreach ( $themes as $theme_key => $theme_values ) { if ( ! empty( $settings[ $type ][ $theme_key ] ) ) { foreach ( $themes[ $theme_key ]['styles'] as $object => $props ) { if ( ! empty( $settings[ $type ][ $theme_key ][ $object ] ) ) { foreach ( $props as $style_key => $style_value ) { if ( ! empty( $settings[ $type ][ $theme_key ][ $object ][ $style_key ] ) ) { $themes[ $theme_key ]['styles'][ $object ][ $style_key ] = $settings[ $type ][ $theme_key ][ $object ][ $style_key ]; } } } } } } } return $themes; } /** * Get the themes for the inline widget type. * * @return array */ public function get_themes_inline() { $themes = array( 'alpha' => array( 'label' => 'Alpha', 'styles' => array( 'title' => array( 'color' => '#393F4C', 'size' => 18, 'text' => '15 Proven Ways to Repurpose Content on Your WordPress Site', ), 'label' => array( 'color' => '#EB5757', 'text' => 'Trending', ), 'background' => array( 'color' => '#F0F2F4', ), ), 'level' => 'lite', ), 'beta' => array( 'label' => 'Beta', 'styles' => array( 'title' => array( 'color' => '#393F4C', 'size' => 18, 'text' => 'How to Use Google Trends to Boost Traffic and Sales (9 Simple Ways)', ), 'label' => array( 'color' => '#EB5757', 'text' => 'Trending', ), 'background' => array( 'border' => '#F0F2F4', ), 'image' => 'theme-preview-beta.png', ), 'image' => true, 'level' => 'lite', ), 'charlie' => array( 'label' => 'Charlie', 'styles' => array( 'title' => array( 'color' => '#393f4c', 'size' => 16, ), 'label' => array( 'color' => '#393f4c', 'text' => 'Popular Stories Right now', ), 'border' => array( 'color' => '#D3D7DE', ), ), 'list' => array( '15 Proven Ways to Repurpose Content on Your WordPress Site', 'How to Use Google Trends to Boost Traffic and Sales (9 Simple Ways)', 'How to Set Up Online Ordering for Your Restaurant Website', ), 'posts' => 3, 'level' => 'lite', ), 'delta' => array( 'label' => 'Delta', 'styles' => array( 'icon' => array( 'color' => '#EB5757', ), 'title' => array( 'color' => '#393f4c', 'size' => 16, 'text' => 'How to Use Google Trends to Boost Traffic and Sales (9 Simple Ways)', ), 'label' => array( 'color' => '#EB5757', 'text' => 'Trending', ), 'background' => array( 'border' => '#F0F2F4', ), ), 'level' => 'plus', ), 'echo' => array( 'label' => 'Echo', 'styles' => array( 'title' => array( 'color' => '#393f4c', 'size' => 18, 'text' => '15 Proven Ways to Repurpose Content on Your WordPress Site', ), 'label' => array( 'color' => '#EB5757', 'text' => 'Trending:', ), 'background' => array( 'color' => '#F0F2F4', ), ), 'level' => 'plus', ), 'foxtrot' => array( 'label' => 'Foxtrot', 'styles' => array( 'title' => array( 'color' => '#393f4c', 'size' => 18, 'text' => 'How to Build an Email List in WordPress – Email Marketing 101', ), 'label' => array( 'color' => '#EB5757', 'text' => 'Trending', ), 'image' => 'theme-preview-image.jpg', ), 'image' => true, 'level' => 'plus', ), 'golf' => array( 'label' => 'Golf', 'styles' => array( 'title' => array( 'color' => '#393f4c', 'size' => 16, 'text' => '15 Proven Ways to Repurpose Content on Your WordPress Site', ), 'label' => array( 'color' => '#EB5757', 'text' => 'Popular now', ), 'border' => array( 'color' => '#EB5757', 'color2' => '#E2E4E9', ), ), 'level' => 'plus', ), 'hotel' => array( 'label' => 'Hotel', 'styles' => array( 'title' => array( 'color' => '#393f4c', 'size' => 18, 'text' => 'How to Use Google Trends to Boost Traffic and Sales (9 Simple Ways)', ), 'icon' => array( 'color' => '#EB5757', ), ), 'level' => 'plus', ), 'india' => array( 'label' => 'India', 'styles' => array( 'title' => array( 'color' => '#393f4c', 'size' => 14, 'text' => 'How to Use Google Trends to Boost Traffic and Sales (9 Simple Ways)', ), 'label' => array( 'color' => '#EB5757', 'text' => 'Trending:', ), 'border' => array( 'color' => '#EB5757', ), 'background' => array( 'color' => '#f0f2f4', ), ), 'level' => 'plus', ), 'juliett' => array( 'label' => 'Juliett', 'styles' => array( 'title' => array( 'color' => '#393f4c', 'size' => 18, 'text' => 'How to Build an Email List in WordPress – Email Marketing 101', ), 'label' => array( 'color' => '#393f4c', 'background' => '#e2e4e9', 'text' => 'Trending', ), 'border' => array( 'color' => '#e2e4e9', ), ), 'image' => true, 'level' => 'plus', ), 'kilo' => array( 'label' => 'Kilo', 'styles' => array( 'title' => array( 'color' => '#393f4c', 'size' => 18, 'text' => 'How to Use Google Trends to Boost Traffic and Sales (9 Simple Ways)', ), 'label' => array( 'color' => '#EB5757', 'text' => 'Popular now', ), 'border' => array( 'color' => '#e2e4e9', 'color2' => '#e2e4e9', ), ), 'level' => 'plus', ), 'lima' => array( 'label' => 'Lima', 'styles' => array( 'title' => array( 'color' => '#393f4c', 'size' => 18, 'text' => '15 Proven Ways to Repurpose Content on Your WordPress Site', ), 'label' => array( 'color' => '#EB5757', 'text' => 'Trending', ), 'background' => array( 'color' => '#f0f2f4', ), 'image' => 'theme-preview-image-2.jpg', ), 'image' => true, 'level' => 'plus', ), 'mike' => array( 'label' => 'Mike', 'styles' => array( 'title' => array( 'color' => '#393f4c', 'size' => 18, 'text' => 'How to Build an Email List in WordPress – Email Marketing 101', ), 'label' => array( 'color' => '#fff', 'background' => '#f2994a', 'text' => 'Trending', ), 'background' => array( 'color' => '#f0f2f4', ), 'image' => 'theme-preview-image.jpg', ), 'image' => true, 'level' => 'plus', ), 'november' => array( 'label' => 'November', 'styles' => array( 'title' => array( 'color' => '#393f4c', 'size' => 16, 'text' => 'How to Use Google Trends to Boost Traffic and Sales (9 Simple Ways)', ), 'label' => array( 'color' => '#eb5757', 'text' => 'Trending', ), 'background' => array( 'border' => '#f0f2f4', ), 'icon' => array( 'background' => '#eb5757', 'color' => '#fff', ), ), 'level' => 'plus', ), ); return $this->process_themes_styles( 'inline', $themes ); } /** * Get the themese for the widget instance. * * @return array */ public function get_themes_widget() { $themes = array( 'alpha' => array( 'label' => 'Alpha', 'styles' => array( 'title' => array( 'color' => '#393F4C', 'size' => 16, ), 'background' => array( 'color' => '#F0F2F4', ), ), 'list' => array( 'items' => array( 'How to Set Up WordPress User Activity Tracking in 3 Easy Steps', 'How to Share Your Google Analytics Reports with Others (5 Easy Ways)', '12 Best Social Media Analytics Tools for Marketers (Tried & Tested)', '9 Proven Ways to Get Google to Index Your Website Right Away', ), ), 'level' => 'lite', ), 'beta' => array( 'label' => 'Beta', 'styles' => array( 'title' => array( 'color' => '#393F4C', 'size' => 16, ), 'background' => array( 'border' => '#1EC185', ), ), 'list' => array( 'items' => array( '9 Proven Ways to Get Google to Index Your Website Right Away', 'How to Share Your Google Analytics Reports with Others (5 Easy Ways)', '12 Best Social Media Analytics Tools for Marketers (Tried & Tested)', 'Uncover How Much Traffic Does a Website Get (5 Effortless Ways)', ), ), 'level' => 'lite', ), 'charlie' => array( 'label' => 'Charlie', 'styles' => array( 'title' => array( 'color' => '#393f4c', 'size' => 16, ), 'background' => array( 'color' => '#F0F2F4', 'border' => '#338EEF', ), ), 'list' => array( 'items' => array( 'Uncover How Much Traffic Does a Website Get (5 Effortless Ways)', 'How to Share Your Google Analytics Reports with Others (5 Easy Ways)', '12 Best Social Media Analytics Tools for Marketers (Tried & Tested)', '9 Proven Ways to Get Google to Index Your Website Right Away', ), ), 'level' => 'lite', ), 'delta' => array( 'label' => 'Delta', 'styles' => array( 'title' => array( 'color' => '#393f4c', 'size' => 18, ), 'background' => array( 'border' => '#D3D7DE', ), 'meta' => array( 'color' => '#99A1B3', 'author' => 'on', 'date' => 'on', 'separator' => '●', ), ), 'list' => array( 'items' => array( '9 Proven Ways to Get Google to Index Your Website Right Away', 'How to Share Your Google Analytics Reports with Others (5 Easy Ways)', '12 Best Social Media Analytics Tools for Marketers (Tried & Tested)', 'Uncover How Much Traffic Does a Website Get (5 Effortless Ways)', ), 'images' => array( 'theme-widget-1.jpg', 'theme-widget-2.jpg', 'theme-widget-3.jpg', 'theme-widget-4.jpg', ), ), 'image' => true, 'level' => 'pro', ), 'echo' => array( 'label' => 'Echo', 'styles' => array( 'title' => array( 'color' => '#393f4c', 'size' => 16, ), 'meta' => array( 'color' => '#99A1B3', 'size' => 12, 'author' => 'on', 'date' => 'on', 'comments' => 'on', 'separator' => 'on', ), 'comments' => array( 'color' => '#393F4C', ), ), 'list' => array( 'items' => array( '9 Proven Ways to Get Google to Index Your Website Right Away', 'How to Share Your Google Analytics Reports with Others (5 Easy Ways)', '12 Best Social Media Analytics Tools for Marketers (Tried & Tested)', 'Uncover How Much Traffic Does a Website Get (5 Effortless Ways)', ), 'images' => array( 'theme-widget-5.jpg', 'theme-widget-5.jpg', 'theme-widget-5.jpg', 'theme-widget-5.jpg', ), ), 'image' => true, 'level' => 'pro', ), 'foxtrot' => array( 'label' => 'Foxtrot', 'styles' => array( 'title' => array( 'color' => '#393f4c', 'size' => 16, ), 'meta' => array( 'color' => '#99A1B3', 'size' => 12, 'author' => 'on', 'date' => 'on', 'comments' => 'on', 'separator' => '|', ), 'comments' => array( 'color' => '#393F4C', ), ), 'list' => array( 'items' => array( '9 Proven Ways to Get Google to Index Your Website Right Away', '12 Best Social Media Analytics Tools for Marketers (Tried & Tested) ', 'Uncover How Much Traffic Does a Website Get (5 Effortless Ways)', 'How to Share Your Google Analytics Reports with Others (5 Easy Ways)', ), ), 'level' => 'pro', ), 'golf' => array( 'label' => 'Golf', 'styles' => array( 'title' => array( 'color' => '#393f4c', 'size' => 16, ), 'label' => array( 'color' => '#fff', 'background' => '#EB5757', 'text' => 'Trending:', 'editable' => true, ), 'meta' => array( 'color' => '#99A1B3', 'size' => 12, 'author' => 'on', 'date' => 'on', 'comments' => 'on', 'separator' => '|', ), 'comments' => array( 'color' => '#393F4C', ), ), 'list' => array( 'items' => array( '9 Proven Ways to Get Google to Index Your Website Right Away', '12 Best Social Media Analytics Tools for Marketers (Tried & Tested) ', 'Uncover How Much Traffic Does a Website Get (5 Effortless Ways)', 'How to Share Your Google Analytics Reports with Others (5 Easy Ways)', ), ), 'level' => 'pro', ), 'hotel' => array( 'label' => 'Hotel', 'styles' => array( 'title' => array( 'color' => '#fff', 'size' => 16, ), 'meta' => array( 'color' => '#fff', 'size' => 12, 'author' => 'on', 'date' => 'on', ), ), 'list' => array( 'items' => array( 'How to Allow WordPress to Upload All File Types (The Easy Way)', '14 Handy Google Search Operators for SEO (A Complete List)', 'How to Write Irresistible Meta Descriptions for SEO & More Clicks?', 'Uncover How Much Traffic Does a Website Get (5 Effortless Ways)', ), 'images' => array( 'theme-widget-5.jpg', 'theme-widget-6.jpg', 'theme-widget-7.jpg', 'theme-widget-8.jpg', ), ), 'image' => true, 'level' => 'pro', ), ); return $this->process_themes_styles( 'widget', $themes ); } /** * Get the themes for the products widget. * * @return array */ public function get_themes_products() { $themes = array( 'alpha' => array( 'label' => 'Alpha', 'styles' => array( 'title' => array( 'color' => '#393F4C', 'size' => 16, ), 'background' => array( 'border' => '#d3d7de', ), 'price' => array( 'color' => '#393F4C', 'size' => 12, ), 'rating' => array( 'color' => '#EB5757', ), 'meta' => array( 'price' => 'on', 'rating' => 'on', 'image' => 'on', ), ), 'list' => array( 'items' => array( 'WPBeginner 10-Year Anniversary Gray T-Shirt', 'WPForms Small White Logo T-Shirt', 'OptinMonster White Text Color Mascot T-Shirt', 'WPForms Make Things Simple Gray T-Shirt', ), 'images' => array( 'theme-products-1.jpg', 'theme-products-2.jpg', 'theme-products-3.jpg', 'theme-products-4.jpg', ), 'prices' => array( '$59.99', '$28.00', '$65.00', '$59.50', ), ), ), 'beta' => array( 'label' => 'Beta', 'styles' => array( 'title' => array( 'color' => '#393F4C', 'size' => 16, ), 'background' => array( 'color' => '#F0F2F4', ), 'price' => array( 'color' => '#4C5566', 'size' => 12, ), 'rating' => array( 'color' => '#F2D74A', ), 'meta' => array( 'price' => 'on', 'rating' => 'on', 'image' => 'on', ), ), 'list' => array( 'items' => array( 'Admin WPBeginner Black T-Shirt', 'Black WP Beginner logo T-Shirt', 'Technically Awesome Groovy White T-Shirt', 'Technically Awesome Code Comment Black T-Shirt', ), 'images' => array( 'theme-products-5.jpg', 'theme-products-7.jpg', 'theme-products-6.jpg', 'theme-products-8.jpg', ), 'prices' => array( '$29.50', '$28.00', '$65.00', '$59.50', ), ), ), 'charlie' => array( 'label' => 'Charlie', 'styles' => array( 'title' => array( 'color' => '#fff', 'size' => 16, ), 'rating' => array( 'color' => '#F2D74A', ), 'price' => array( 'color' => '#fff', 'size' => 12, ), 'meta' => array( 'price' => 'on', 'rating' => 'on', ), ), 'list' => array( 'items' => array( 'Admin WPBeginner Black T-Shirt', 'Black WP Beginner logo T-Shirt', 'Technically Awesome Groovy White T-Shirt', 'Technically Awesome Code Comment Black T-Shirt', ), 'images' => array( 'theme-products-5.jpg', 'theme-products-7.jpg', 'theme-products-6.jpg', 'theme-products-8.jpg', ), 'prices' => array( '$29.50', '$28.00', '$65.00', '$59.50', ), ), 'image' => true, ), 'delta' => array( 'label' => 'Delta', 'styles' => array( 'title' => array( 'color' => '#393f4c', 'size' => 14, ), 'rating' => array( 'color' => '#F2D74A', ), 'price' => array( 'color' => '#4C5566', 'size' => 12, ), 'meta' => array( 'price' => 'on', 'rating' => 'on', 'image' => 'on', ), ), 'list' => array( 'items' => array( 'Admin WPBeginner Black T-Shirt', 'Black WP Beginner logo T-Shirt', 'Technically Awesome Groovy White T-Shirt', 'Technically Awesome Code Comment Black T-Shirt', ), 'images' => array( 'theme-products-5.jpg', 'theme-products-7.jpg', 'theme-products-6.jpg', 'theme-products-8.jpg', ), 'prices' => array( '$29.50', '$28.00', '$65.00', '$59.50', ), ), ), ); return $this->process_themes_styles( 'products', $themes ); } }