Changeset 353892
- Timestamp:
- 10/15/2026 04:14:06 PM (2 weeks ago)
- Location:
- blogaura/1.1.5
- Files:
-
- 20 added
- 27 deleted
- 18 edited
- 1 copied
-
. (copied) (copied from blogaura/1.1.3 )
-
assets/images/header-1.svg (added)
-
assets/images/header-1.webp (deleted)
-
assets/images/header-2.svg (added)
-
assets/images/header-2.webp (deleted)
-
assets/images/header-3.svg (added)
-
assets/images/header-3.webp (deleted)
-
assets/images/header-4.svg (added)
-
assets/images/header-4.webp (deleted)
-
assets/images/header-5.svg (added)
-
assets/images/header-5.webp (deleted)
-
changelog.txt (modified) (1 diff)
-
functions.php (modified) (1 diff)
-
inc/admin/customizer/assets/css/customizer.css (modified) (1 diff)
-
inc/admin/customizer/assets/css/customizer.min.css (modified) (1 diff)
-
inc/admin/customizer/helpers/helper-function.php (modified) (1 diff)
-
inc/admin/dashboard/class-admin.php (modified) (3 diffs)
-
inc/admin/dashboard/class-dashboard.php (modified) (2 diffs)
-
inc/admin/dashboard/class-theme-review-notice.php (modified) (5 diffs)
-
inc/admin/dashboard/class-welcome-notice.php (modified) (4 diffs)
-
inc/admin/dashboard/css/admin-rtl.css (deleted)
-
inc/admin/dashboard/css/admin-rtl.min.css (deleted)
-
inc/admin/dashboard/css/admin.css (deleted)
-
inc/admin/dashboard/css/admin.min.css (deleted)
-
inc/admin/dashboard/css/dashboard-rtl.css (added)
-
inc/admin/dashboard/css/dashboard.css (added)
-
inc/admin/dashboard/css/notice-rtl.css (added)
-
inc/admin/dashboard/css/notice.css (added)
-
inc/admin/dashboard/images/addons-256x256.webp (deleted)
-
inc/admin/dashboard/images/advance-blog.webp (deleted)
-
inc/admin/dashboard/images/badge.webp (deleted)
-
inc/admin/dashboard/images/blogaura-logo.svg (deleted)
-
inc/admin/dashboard/images/blogmarks.webp (deleted)
-
inc/admin/dashboard/images/elementor-banner.webp (deleted)
-
inc/admin/dashboard/images/facebook.webp (deleted)
-
inc/admin/dashboard/images/mc4wp.webp (deleted)
-
inc/admin/dashboard/images/minimal-blog.webp (deleted)
-
inc/admin/dashboard/images/ocdi-256x256.webp (deleted)
-
inc/admin/dashboard/images/ocdi.webp (deleted)
-
inc/admin/dashboard/images/plugin-mailchimp-for-wp.webp (added)
-
inc/admin/dashboard/images/plugin-one-click-demo-import.webp (added)
-
inc/admin/dashboard/images/plugin-wpinterface-add-ons.webp (added)
-
inc/admin/dashboard/images/pro-starter.webp (added)
-
inc/admin/dashboard/images/theme-layout.webp (deleted)
-
inc/admin/dashboard/images/theme-thumb.webp (added)
-
inc/admin/dashboard/images/wpinterface-addons.webp (deleted)
-
inc/admin/dashboard/images/x.webp (deleted)
-
inc/admin/dashboard/images/youtube.webp (deleted)
-
inc/admin/dashboard/js/admin.js (deleted)
-
inc/admin/dashboard/js/dashboard.js (added)
-
inc/admin/dashboard/js/notice.js (added)
-
inc/admin/dashboard/views/changelog.php (added)
-
inc/admin/dashboard/views/dashboard.php (deleted)
-
inc/admin/dashboard/views/features.php (added)
-
inc/admin/dashboard/views/free-vs-pro.php (modified) (1 diff)
-
inc/admin/dashboard/views/help.php (modified) (1 diff)
-
inc/admin/dashboard/views/overview.php (added)
-
inc/admin/dashboard/views/products.php (deleted)
-
inc/admin/dashboard/views/recommended.php (added)
-
inc/admin/dashboard/views/starter-templates.php (modified) (1 diff)
-
inc/admin/meta-box/category-meta-box.php (modified) (4 diffs)
-
languages/blogaura.pot (modified) (123 diffs)
-
readme.txt (modified) (3 diffs)
-
style-rtl.css (modified) (1 diff)
-
style.css (modified) (1 diff)
-
template-parts/pagination/post-load.php (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
blogaura/1.1.5/changelog.txt
r348044 r353892 1 1 == Changelog == 2 3 = 1.1.5 - 2026-10-15 = 4 * Fix - The Free vs Pro table now shows its category headings. 5 * Fix - The Documentation button now opens the WPInterface documentation site; the theme page it linked to does not exist. 6 * Enhancement - Redesigned welcome notice: compact, uses the theme screenshot and the plugins' WordPress.org icons, shows a "plugins ready" state, and appears only on the Dashboard and Themes screens. 7 * Enhancement - Redesigned theme dashboard (Appearance › BlogAura) with a setup checklist that follows your site's progress, Customizer shortcuts and a new Recommended tab for WPInterface services, plugins and themes. 8 * Enhancement - The Recommended tab can list every WPInterface theme from WordPress.org. The list loads only when you click "Show all WPInterface themes", is cached for 12 hours, and screenshots load lazily. 9 * Enhancement - Starter sites tab redesigned to match the new dashboard, with preview and import buttons for each starter site plus the Pro starter site with its preview and an upgrade link, and a note that importing adds demo content, with the option to have the design set up on an existing site instead (imports still run in One Click Demo Import). 10 * Enhancement - "What's new" changelog panel opens from the dashboard header, with colour-coded labels for security updates, new features, enhancements, improvements and fixes. 11 * Enhancement - More visible "Upgrade to Pro" button in the dashboard header and an upgrade section below the Free vs Pro table. 12 * Enhancement - The Overview tab now shows animated previews of BlogAura Pro's accessibility toolbar (with a demo you can try) and of the SEO plugin included with Pro. They use HTML and CSS only (no images or external requests), pause when off screen and stay still for users who prefer reduced motion. 13 * Enhancement - New Header Style previews in the Customizer: SVG drawings that show each header layout as it really looks, in the theme's own colours, two per row, replacing the small grey images. 14 * Enhancement - The review request notice has the new notice design (like the welcome notice) and shows on the Dashboard and Themes screens only. 15 * Tweak - Dashboard and notice styles and scripts now load only on the screens that use them, without jQuery; dashboard images went from about 516 KB to 38 KB. 16 * Tweak - Recommended plugins are installed and activated through WordPress core screens; removed the old install/activate AJAX handlers. 17 * Tweak - Readme credits for the dashboard images and icons. 18 * Tweak - Removed Elementor from the recommended plugins; the theme supports it but does not need it. 19 20 = 1.1.4 - 2026-10-15 = 21 * Security - The welcome notice's "Get started" button can no longer be used by users without plugin permissions to install plugins; the notice is now shown only to administrators. 22 * Security - Load More requests now only accept viewable post types, and incomplete requests are rejected cleanly instead of raising PHP warnings. 23 * Security - Category colour and thumbnail settings now verify a nonce and the user's permission before saving. 24 * Fix - Category colours are no longer erased when a category is changed with Quick Edit or updated by a plugin or import. 25 * Fix - Minimum PHP version raised from 5.6 to 7.4; the theme code already requires PHP 7 and would not run on older versions. 26 * Tweak - The review request notice is shown to administrators only. 27 * Tweak - Review notice data is now removed with a single query when switching themes instead of loading every user. 28 * Tweak - Updated the translation template (POT) with the new and changed strings. 2 29 3 30 = 1.1.3 - 2026-09-07 = -
blogaura/1.1.5/functions.php
r348044 r353892 10 10 if (!defined('BLOGAURA_VERSION')) { 11 11 // Replace the version number of the theme on each release. 12 define('BLOGAURA_VERSION', '1.1. 3');12 define('BLOGAURA_VERSION', '1.1.5'); 13 13 } 14 14 -
blogaura/1.1.5/inc/admin/customizer/assets/css/customizer.css
r312189 r353892 153 153 text-align: center; 154 154 } 155 156 /* Header Style previews: two per row, sized to the card, rounded selection ring */ 157 #customize-control-blogaura_options-select_header_layout_style .radio-image-wrapper{grid-template-columns:repeat(2,1fr);gap:8px} 158 #customize-control-blogaura_options-select_header_layout_style .radio-image-wrapper>*{padding:0} 159 #customize-control-blogaura_options-select_header_layout_style label{display:block;border-radius:11px;cursor:pointer;transition:box-shadow .15s ease,transform .15s ease} 160 #customize-control-blogaura_options-select_header_layout_style img{display:block;width:100%;height:auto} 161 #customize-control-blogaura_options-select_header_layout_style input[type="radio"]+label:hover{opacity:1;box-shadow:0 4px 12px rgba(13,32,53,.12);transform:translateY(-1px)} 162 #customize-control-blogaura_options-select_header_layout_style input[type="radio"]:checked+label{border:0;box-shadow:0 0 0 2px #2271b1} -
blogaura/1.1.5/inc/admin/customizer/assets/css/customizer.min.css
r312189 r353892 1 .customize-control input[type=email],.customize-control input[type=number],.customize-control input[type=password],.customize-control input[type=search],.customize-control input[type=tel],.customize-control input[type=text],.customize-control input[type=url],.customize-control select{border:2px solid #b8daeb;border-radius:4px;min-height:45px;-webkit-appearance:none}.wp-core-ui .customize-control-content .button,.wp-core-ui .customize-control-content .button-secondary{border:2px solid #b8daeb;border-radius:4px;-webkit-appearance:none}.customize-control-checkbox input[type=checkbox]{border:1px solid rgba(0,0,0,0.1);display:inline-block;width:40px;height:14px;border-radius:8px;background:#ccc;vertical-align:middle;position:relative;cursor:pointer;user-select:none;transition:background 350ms ease}.customize-control-checkbox input[type=checkbox]:before,.customize-control-checkbox input[type=checkbox]:after{content:"";display:block;width:20px;height:20px;border-radius:50%;position:absolute;top:50%;left:-3px;transition:all 350ms cubic-bezier(0,0.95,0.38,0.98),background 150ms ease}.customize-control-checkbox input[type=checkbox]:before{background:rgba(0,0,0,0.2);transform:translate3d(0,-50%,0) scale(0)}.customize-control-checkbox input[type=checkbox]:after{background:#999;border:1px solid rgba(0,0,0,0.1);transform:translate3d(0,-50%,0)}.customize-control-checkbox input[type=checkbox]:checked:before{background:transparent;font-size:0;line-height:1px;transform:translate3d(100%,-50%,0) scale(1)}.customize-control-checkbox input[type=checkbox]:checked:after{background:#73c5ee;border-color:#73c5ee;transform:translate3d(100%,-50%,0)}.customize-control-radio-image img{vertical-align:top}.customize-control-radio-image .radio-image-wrapper{display:grid;grid-template-columns:repeat(3,1fr);gap:5px}.customize-control-radio-image .radio-image-wrapper > *{padding:5px}.customize-control-radio-image .radio-image-wrapper input[type="radio"]{display:none}.customize-control-radio-image input[type="radio"] + label:hover{opacity:.7}.customize-control-radio-image input[type="radio"]:checked + label{border:2px solid #000}#customize-theme-controls #accordion-section-theme_upsell .accordion-section-title{border-color:#f857a6}#customize-theme-controls #accordion-section-theme_upsell .accordion-section-title .accordion-trigger{background:#f857a6;background:-webkit-linear-gradient(to left,#ff5858,#f857a6);background:linear-gradient(to left,#ff5858,#f857a6);color:#fff;padding-top:30px;padding-bottom:30px;overflow:hidden}#customize-theme-controls #accordion-section-theme_upsell .accordion-section-title .accordion-trigger:before{position:absolute;top:0;left:-100%;z-index:2;display:block;content:"";width:50%;height:100%;background:-webkit-linear-gradient(to right,rgba(255,255,255,0) 0%,rgba(255,255,255,0.3) 100%);background:linear-gradient(to right,rgba(255,255,255,0) 0%,rgba(255,255,255,0.3) 100%);transform:skewX(-25deg)}#customize-theme-controls #accordion-section-theme_upsell:hover .accordion-section-title .accordion-trigger:before,#customize-theme-controls #accordion-section-theme_upsell:focus .accordion-section-title .accordion-trigger:before{animation:hovershine .85s}@keyframes hovershine{100%{left:100%}}#accordion-section-theme_upsell .accordion-section-title:after{color:#fff!important}.customize-control-upsell .button.upgrade-now{background:#65bc7b;border:#65bc7b;color:#fff;margin-top:10px}.customize-control-upsell .button.upgrade-now:hover,.customize-control-upsell .button.upgrade-now:focus{background:#4CAF50;border:#4CAF50;color:#fff}.control-section-section-features-list{padding:30px 15px;background-color:#fcfcfc;display:block!important}.theme-features{display:flex;flex-direction:column;gap:5px;justify-content:center;margin:30px 0}.theme-features .dashicons{color:#65bc7b;margin-right:5px}.customize-control-upsell .button{display:block;padding:10px 20px;text-align:center} 1 .customize-control input[type=email],.customize-control input[type=number],.customize-control input[type=password],.customize-control input[type=search],.customize-control input[type=tel],.customize-control input[type=text],.customize-control input[type=url],.customize-control select{border:2px solid #b8daeb;border-radius:4px;min-height:45px;-webkit-appearance:none}.wp-core-ui .customize-control-content .button,.wp-core-ui .customize-control-content .button-secondary{border:2px solid #b8daeb;border-radius:4px;-webkit-appearance:none}.customize-control-checkbox input[type=checkbox]{border:1px solid rgba(0,0,0,0.1);display:inline-block;width:40px;height:14px;border-radius:8px;background:#ccc;vertical-align:middle;position:relative;cursor:pointer;user-select:none;transition:background 350ms ease}.customize-control-checkbox input[type=checkbox]:before,.customize-control-checkbox input[type=checkbox]:after{content:"";display:block;width:20px;height:20px;border-radius:50%;position:absolute;top:50%;left:-3px;transition:all 350ms cubic-bezier(0,0.95,0.38,0.98),background 150ms ease}.customize-control-checkbox input[type=checkbox]:before{background:rgba(0,0,0,0.2);transform:translate3d(0,-50%,0) scale(0)}.customize-control-checkbox input[type=checkbox]:after{background:#999;border:1px solid rgba(0,0,0,0.1);transform:translate3d(0,-50%,0)}.customize-control-checkbox input[type=checkbox]:checked:before{background:transparent;font-size:0;line-height:1px;transform:translate3d(100%,-50%,0) scale(1)}.customize-control-checkbox input[type=checkbox]:checked:after{background:#73c5ee;border-color:#73c5ee;transform:translate3d(100%,-50%,0)}.customize-control-radio-image img{vertical-align:top}.customize-control-radio-image .radio-image-wrapper{display:grid;grid-template-columns:repeat(3,1fr);gap:5px}.customize-control-radio-image .radio-image-wrapper > *{padding:5px}.customize-control-radio-image .radio-image-wrapper input[type="radio"]{display:none}.customize-control-radio-image input[type="radio"] + label:hover{opacity:.7}.customize-control-radio-image input[type="radio"]:checked + label{border:2px solid #000}#customize-theme-controls #accordion-section-theme_upsell .accordion-section-title{border-color:#f857a6}#customize-theme-controls #accordion-section-theme_upsell .accordion-section-title .accordion-trigger{background:#f857a6;background:-webkit-linear-gradient(to left,#ff5858,#f857a6);background:linear-gradient(to left,#ff5858,#f857a6);color:#fff;padding-top:30px;padding-bottom:30px;overflow:hidden}#customize-theme-controls #accordion-section-theme_upsell .accordion-section-title .accordion-trigger:before{position:absolute;top:0;left:-100%;z-index:2;display:block;content:"";width:50%;height:100%;background:-webkit-linear-gradient(to right,rgba(255,255,255,0) 0%,rgba(255,255,255,0.3) 100%);background:linear-gradient(to right,rgba(255,255,255,0) 0%,rgba(255,255,255,0.3) 100%);transform:skewX(-25deg)}#customize-theme-controls #accordion-section-theme_upsell:hover .accordion-section-title .accordion-trigger:before,#customize-theme-controls #accordion-section-theme_upsell:focus .accordion-section-title .accordion-trigger:before{animation:hovershine .85s}@keyframes hovershine{100%{left:100%}}#accordion-section-theme_upsell .accordion-section-title:after{color:#fff!important}.customize-control-upsell .button.upgrade-now{background:#65bc7b;border:#65bc7b;color:#fff;margin-top:10px}.customize-control-upsell .button.upgrade-now:hover,.customize-control-upsell .button.upgrade-now:focus{background:#4CAF50;border:#4CAF50;color:#fff}.control-section-section-features-list{padding:30px 15px;background-color:#fcfcfc;display:block!important}.theme-features{display:flex;flex-direction:column;gap:5px;justify-content:center;margin:30px 0}.theme-features .dashicons{color:#65bc7b;margin-right:5px}.customize-control-upsell .button{display:block;padding:10px 20px;text-align:center}/* Header Style previews */#customize-control-blogaura_options-select_header_layout_style .radio-image-wrapper{grid-template-columns:repeat(2,1fr);gap:8px}#customize-control-blogaura_options-select_header_layout_style .radio-image-wrapper>*{padding:0}#customize-control-blogaura_options-select_header_layout_style label{display:block;border-radius:11px;cursor:pointer;transition:box-shadow .15s ease,transform .15s ease}#customize-control-blogaura_options-select_header_layout_style img{display:block;width:100%;height:auto}#customize-control-blogaura_options-select_header_layout_style input[type="radio"]+label:hover{opacity:1;box-shadow:0 4px 12px rgba(13,32,53,.12);transform:translateY(-1px)}#customize-control-blogaura_options-select_header_layout_style input[type="radio"]:checked+label{border:0;box-shadow:0 0 0 2px #2271b1} -
blogaura/1.1.5/inc/admin/customizer/helpers/helper-function.php
r312189 r353892 156 156 array( 157 157 'header_style_1' => array( 158 'url' => get_template_directory_uri() . '/assets/images/header-1. webp',158 'url' => get_template_directory_uri() . '/assets/images/header-1.svg', 159 159 'label' => esc_html__( 'Header Style 1', 'blogaura' ), 160 160 ), 161 161 'header_style_2' => array( 162 'url' => get_template_directory_uri() . '/assets/images/header-2. webp',162 'url' => get_template_directory_uri() . '/assets/images/header-2.svg', 163 163 'label' => esc_html__( 'Header Style 2', 'blogaura' ), 164 164 ), 165 165 'header_style_3' => array( 166 'url' => get_template_directory_uri() . '/assets/images/header-3. webp',166 'url' => get_template_directory_uri() . '/assets/images/header-3.svg', 167 167 'label' => esc_html__( 'Header Style 3', 'blogaura' ), 168 168 ), 169 169 'header_style_4' => array( 170 'url' => get_template_directory_uri() . '/assets/images/header-4. webp',170 'url' => get_template_directory_uri() . '/assets/images/header-4.svg', 171 171 'label' => esc_html__( 'Header Style 4', 'blogaura' ), 172 172 ), 173 173 'header_style_5' => array( 174 'url' => get_template_directory_uri() . '/assets/images/header-5. webp',174 'url' => get_template_directory_uri() . '/assets/images/header-5.svg', 175 175 'label' => esc_html__( 'Header Style 5', 'blogaura' ), 176 176 ), -
blogaura/1.1.5/inc/admin/dashboard/class-admin.php
r312189 r353892 1 1 <?php 2 2 /** 3 * BlogAura Admin Class. 3 * BlogAura admin helpers. 4 * 5 * Shared data for the welcome notice and the theme dashboard (recommended plugins, 6 * WPInterface services) and the on-demand list of WPInterface themes from WordPress.org. 4 7 * 5 8 * @package BlogAura … … 9 12 exit; 10 13 } 11 if (!class_exists('BlogAura_Admin')) :14 if (!class_exists('BlogAura_Admin')) : 12 15 /** 13 16 * BlogAura_Admin Class. … … 16 19 { 17 20 /** 21 * Whether this is the Pro version of the theme. 22 */ 23 const PRO = false; 24 25 /** 26 * Slug of the theme dashboard page (Appearance › BlogAura). 27 */ 28 const PAGE = 'blogaura'; 29 30 /** 31 * WordPress.org author whose themes are listed on the Recommended tab. 32 */ 33 const WPORG_AUTHOR = 'wpinterface'; 34 35 /** 36 * Transient that caches the WordPress.org themes list. 37 */ 38 const THEMES_TRANSIENT = 'blogaura_wporg_themes'; 39 40 /** 18 41 * Constructor. 19 42 */ 20 43 public function __construct() 21 44 { 22 add_action('admin_enqueue_scripts', array($this, 'enqueue_scripts')); 23 add_action('wp_ajax_install_plugin', array($this, 'handle_plugin_action')); 24 add_action('wp_ajax_activate_plugin', array($this, 'handle_plugin_action')); 25 } 26 27 /** 28 * Handle plugin install/activate AJAX. 29 */ 30 public function handle_plugin_action() 31 { 32 if (!isset($_POST['security']) || !wp_verify_nonce($_POST['security'], 'blogaura_demo_import_nonce')) { 33 wp_send_json_error(array('message' => 'Security check failed.')); 34 } 35 if (!current_user_can('install_plugins')) { 36 wp_send_json_error(array('message' => 'You are not allowed to perform this action.')); 37 } 38 39 $plugin = sanitize_text_field($_POST['plugin']); 40 $plugin_slug = sanitize_text_field($_POST['slug']); 41 42 if (function_exists('blogaura_is_plugin_installed') && blogaura_is_plugin_installed($plugin)) { 43 if (is_plugin_active($plugin)) { 44 wp_send_json_success(array('message' => 'Plugin is already activated.')); 45 } else { 46 // Activate the plugin 47 $result = activate_plugin($plugin); 48 49 if (is_wp_error($result)) { 50 wp_send_json_error(array('message' => 'Error activating the plugin.')); 51 } else { 52 wp_send_json_success(array('message' => 'Plugin activated successfully!')); 53 } 45 add_action('wp_ajax_blogaura_wporg_themes', array($this, 'ajax_wporg_themes')); 46 } 47 48 /** 49 * URL of a file in the dashboard images folder. 50 * 51 * @param string $file File name. 52 * @return string 53 */ 54 public static function image_url($file) 55 { 56 return BLOGAURA_PARENT_URL . '/inc/admin/dashboard/images/' . $file; 57 } 58 59 /** 60 * Plugins recommended by the theme. All are hosted on WordPress.org and are only 61 * installed when the user asks for it. 62 * 63 * @return array 64 */ 65 public static function plugins() 66 { 67 $plugins = array(); 68 // The free theme imports its starter sites through WPInterface Add-ons; Pro bundles its demos. 69 if (!self::PRO) { 70 $plugins[] = array( 71 'slug' => 'wpinterface-add-ons', 72 'file' => 'wpinterface-add-ons/wpinterface-add-ons.php', 73 'name' => 'WPInterface Add-ons', 74 'description' => __('Import WPInterface starter sites in one click: content, widgets and settings.', 'blogaura'), 75 'ours' => true, 76 'starter' => true, 77 ); 78 } 79 $plugins = array_merge($plugins, array( 80 array( 81 'slug' => 'one-click-demo-import', 82 'file' => 'one-click-demo-import/one-click-demo-import.php', 83 'name' => 'One Click Demo Import', 84 'description' => __('Imports demo content, widgets and theme settings.', 'blogaura'), 85 'ours' => false, 86 'starter' => true, 87 ), 88 array( 89 'slug' => 'mailchimp-for-wp', 90 'file' => 'mailchimp-for-wp/mailchimp-for-wp.php', 91 'name' => 'MC4WP: Mailchimp for WordPress', 92 'description' => __('Adds Mailchimp sign-up forms to your site.', 'blogaura'), 93 'ours' => false, 94 'starter' => true, 95 ), 96 )); 97 if (self::PRO) { 98 $plugins[] = array( 99 'slug' => 'web-stories', 100 'file' => 'web-stories/web-stories.php', 101 'name' => 'Web Stories', 102 'description' => __('Create visual, tappable stories that the theme can display.', 'blogaura'), 103 'ours' => false, 104 'starter' => true, 105 ); 106 } 107 return $plugins; 108 } 109 110 /** 111 * The plugins installed by the welcome notice's "Install starter plugins" button. 112 * 113 * @return array 114 */ 115 public static function starter_plugins() 116 { 117 return array_values(array_filter(self::plugins(), static function ($plugin) { 118 return $plugin['starter']; 119 })); 120 } 121 122 /** 123 * Install state of a plugin. 124 * 125 * @param string $file Plugin file, relative to the plugins folder. 126 * @return string active|installed|missing 127 */ 128 public static function plugin_state($file) 129 { 130 if (!function_exists('get_plugins')) { 131 require_once ABSPATH . 'wp-admin/includes/plugin.php'; 132 } 133 if (is_plugin_active($file)) { 134 return 'active'; 135 } 136 $plugins = get_plugins(); 137 return isset($plugins[$file]) ? 'installed' : 'missing'; 138 } 139 140 /** 141 * Whether the plugins the starter sites need are active. 142 * 143 * @return bool 144 */ 145 public static function starter_plugins_active() 146 { 147 foreach (self::starter_plugins() as $plugin) { 148 if ('active' !== self::plugin_state($plugin['file'])) { 149 return false; 54 150 } 55 } else { 56 // Install and activate the plugin 57 include_once ABSPATH . 'wp-admin/includes/plugin-install.php'; 58 include_once ABSPATH . 'wp-admin/includes/class-wp-upgrader.php'; 59 60 $api_args = array( 61 'slug' => $plugin_slug, 151 } 152 return true; 153 } 154 155 /** 156 * Starter sites registered with One Click Demo Import (by WPInterface Add-ons in the 157 * free theme, by the theme's bundled demos in Pro). The import itself always runs in 158 * One Click Demo Import. 159 * 160 * @return array List of array( name, image, preview, import ). 161 */ 162 public static function starter_sites() 163 { 164 if ('active' !== self::plugin_state('one-click-demo-import/one-click-demo-import.php')) { 165 return array(); 166 } 167 $has_helper = class_exists('OCDI\Helpers') && method_exists('OCDI\Helpers', 'apply_filters'); 168 // OCDI's helper also runs the legacy "pt-ocdi/" hooks the themes still use. 169 $files = $has_helper ? \OCDI\Helpers::apply_filters('ocdi/import_files', array()) : apply_filters('ocdi/import_files', array()); 170 $setup = $has_helper ? \OCDI\Helpers::apply_filters('ocdi/plugin_page_setup', array()) : apply_filters('ocdi/plugin_page_setup', array()); 171 $parent = !empty($setup['parent_slug']) ? $setup['parent_slug'] : 'themes.php'; 172 $page = !empty($setup['menu_slug']) ? $setup['menu_slug'] : 'one-click-demo-import'; 173 174 $sites = array(); 175 foreach ((array) $files as $index => $file) { 176 if (empty($file['import_file_name'])) { 177 continue; 178 } 179 $sites[] = array( 180 'name' => $file['import_file_name'], 181 'image' => isset($file['import_preview_image_url']) ? $file['import_preview_image_url'] : '', 182 'preview' => isset($file['preview_url']) ? $file['preview_url'] : '', 183 'notice' => isset($file['import_notice']) ? wp_strip_all_tags($file['import_notice']) : '', 184 'import' => add_query_arg(array('page' => $page, 'step' => 'import', 'import' => $index), admin_url($parent)), 185 ); 186 } 187 return $sites; 188 } 189 190 /** 191 * Changelog entry types, in display order, with the label and style used for each. 192 * 193 * @param string $tag Tag from changelog.txt, e.g. "Fix" or "Enhancement". 194 * @return array array( key, label, order ) 195 */ 196 public static function changelog_type($tag) 197 { 198 $tag = strtolower(trim($tag)); 199 $map = array( 200 'security' => array('security', __('Security', 'blogaura'), 0), 201 'new' => array('new', __('New', 'blogaura'), 1), 202 'added' => array('new', __('New', 'blogaura'), 1), 203 'feature' => array('new', __('New', 'blogaura'), 1), 204 'enhancement' => array('enhancement', __('Enhancement', 'blogaura'), 2), 205 'improvement' => array('improvement', __('Improvement', 'blogaura'), 3), 206 'tweak' => array('improvement', __('Improvement', 'blogaura'), 3), 207 'update' => array('improvement', __('Improvement', 'blogaura'), 3), 208 'fix' => array('fix', __('Fix', 'blogaura'), 4), 209 'fixed' => array('fix', __('Fix', 'blogaura'), 4), 210 'bugfix' => array('fix', __('Fix', 'blogaura'), 4), 211 'dev' => array('dev', __('Developers', 'blogaura'), 5), 212 ); 213 if (isset($map[$tag])) { 214 return array('key' => $map[$tag][0], 'label' => $map[$tag][1], 'order' => $map[$tag][2]); 215 } 216 return array('key' => 'other', 'label' => ucfirst($tag), 'order' => 6); 217 } 218 219 /** 220 * Core URL that installs or activates a plugin, or an empty string when the 221 * current user cannot do it. 222 * 223 * @param array $plugin Plugin data from plugins(). 224 * @param string $state Install state from plugin_state(). 225 * @return string 226 */ 227 public static function plugin_action_url($plugin, $state) 228 { 229 if ('installed' === $state && current_user_can('activate_plugin', $plugin['file'])) { 230 return wp_nonce_url( 231 self_admin_url('plugins.php?action=activate&plugin=' . rawurlencode($plugin['file'])), 232 'activate-plugin_' . $plugin['file'] 233 ); 234 } 235 if ('missing' === $state && current_user_can('install_plugins')) { 236 return wp_nonce_url( 237 self_admin_url('update.php?action=install-plugin&plugin=' . rawurlencode($plugin['slug'])), 238 'install-plugin_' . $plugin['slug'] 239 ); 240 } 241 return ''; 242 } 243 244 /** 245 * WPInterface professional services shown on the dashboard. 246 * 247 * @return array 248 */ 249 public static function services() 250 { 251 return array( 252 'featured' => array( 253 'title' => __('News & Blog Website Setup', 'blogaura'), 254 'description' => __('Skip the setup work. Our team gets your news or blog site running on BlogAura so you can start publishing.', 'blogaura'), 255 'url' => 'https://wpinterface.com/services/news-blog-website-setup/', 256 ), 257 'items' => array( 258 array( 259 'icon' => 'brush', 260 'title' => __('WordPress Theme Customization', 'blogaura'), 261 'description' => __('Layout, colour and feature changes made by the developers who built your theme.', 'blogaura'), 262 'url' => 'https://wpinterface.com/services/wordpress-theme-customization/', 263 ), 264 array( 265 'icon' => 'bolt', 266 'title' => __('Speed & Core Web Vitals', 'blogaura'), 267 'description' => __('Faster pages and passing Core Web Vitals, shown with before-and-after data.', 'blogaura'), 268 'url' => 'https://wpinterface.com/services/wordpress-speed-optimization/', 269 ), 270 array( 271 'icon' => 'shield', 272 'title' => __('WordPress Care Plans', 'blogaura'), 273 'description' => __('Weekly updates, backups and monitoring. Cancel any time.', 'blogaura'), 274 'url' => 'https://wpinterface.com/services/wordpress-care-plans/', 275 ), 276 array( 277 'icon' => 'lock', 278 'title' => __('Malware Removal & Security Hardening', 'blogaura'), 279 'description' => __('Manual cleanup of hacked sites, closing the entry point, and help getting off blacklists.', 'blogaura'), 280 'url' => 'https://wpinterface.com/services/wordpress-malware-removal/', 281 ), 282 array( 283 'icon' => 'headset', 284 'title' => __('VIP Support', 'blogaura'), 285 'description' => __('One priority ticket, handled first by a senior engineer.', 'blogaura'), 286 'url' => 'https://wpinterface.com/services/vip-support/', 287 ), 288 array( 289 'icon' => 'search', 290 'title' => __('Technical SEO for WordPress', 'blogaura'), 291 'description' => __('Fix the technical issues that stop search engines finding and showing your content.', 'blogaura'), 292 'url' => 'https://wpinterface.com/services/technical-seo-for-wordpress/', 293 ), 294 ), 295 'all_url' => 'https://wpinterface.com/services/', 296 'hire_url' => 'https://wpinterface.com/hire-us/', 297 ); 298 } 299 300 /** 301 * Inline SVG icon (24px grid, stroke style). Static markup only. 302 * 303 * @param string $name Icon name. 304 * @param int $size Width and height in px. 305 * @return string 306 */ 307 public static function icon($name, $size = 20) 308 { 309 $paths = array( 310 'brush' => '<path d="M9.06 11.9l8.07-8.06a2.85 2.85 0 1 1 4.03 4.03l-8.06 8.08"/><path d="M7.07 14.94c-1.66 0-3 1.35-3 3.02 0 1.33-2.5 1.52-2 2.02 1.08 1.1 2.49 2.02 4 2.02 2.2 0 4-1.8 4-4.04a3 3 0 0 0-3-3.02z"/>', 311 'bolt' => '<path d="M13 2 3 14h9l-1 8 10-12h-9z"/>', 312 'shield' => '<path d="M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z"/><path d="m9 12 2 2 4-4"/>', 313 'lock' => '<rect x="5" y="11" width="14" height="10" rx="2"/><path d="M8 11V7a4 4 0 0 1 8 0v4"/>', 314 'headset' => '<path d="M3 11a9 9 0 0 1 18 0v5a2 2 0 0 1-2 2h-1v-7h3"/><path d="M3 11v5a2 2 0 0 0 2 2h1v-7H3"/>', 315 'search' => '<circle cx="11" cy="11" r="7"/><path d="m21 21-4.3-4.3"/>', 316 'check' => '<path d="M20 6 9 17l-5-5"/>', 317 'badge' => '<path d="M3.85 8.62a4 4 0 0 1 4.78-4.77 4 4 0 0 1 6.74 0 4 4 0 0 1 4.78 4.78 4 4 0 0 1 0 6.74 4 4 0 0 1-4.77 4.78 4 4 0 0 1-6.75 0 4 4 0 0 1-4.78-4.77 4 4 0 0 1 0-6.76Z"/><path d="m9 12 2 2 4-4"/>', 318 'book' => '<path d="M4 19.5A2.5 2.5 0 0 1 6.5 17H20V3H6.5A2.5 2.5 0 0 0 4 5.5z"/><path d="M4 19.5A2.5 2.5 0 0 0 6.5 22H20v-5"/>', 319 'chat' => '<path d="M21 12a8 8 0 0 1-11.6 7.1L3 21l1.9-6.4A8 8 0 1 1 21 12z"/>', 320 'clock' => '<circle cx="12" cy="12" r="9"/><path d="M12 7v5l3 3"/>', 321 'star' => '<path d="m12 2 3.1 6.3 6.9 1-5 4.9 1.2 6.8L12 17.8 5.8 21l1.2-6.8-5-4.9 6.9-1z"/>', 322 'crown' => '<path d="M2 8l4 10h12l4-10-6 4-4-7-4 7z"/>', 323 'palette' => '<circle cx="13.5" cy="6.5" r="1.5"/><circle cx="17.5" cy="10.5" r="1.5"/><circle cx="8.5" cy="7.5" r="1.5"/><circle cx="6.5" cy="12.5" r="1.5"/><path d="M12 2a10 10 0 0 0 0 20c.9 0 1.6-.7 1.6-1.6 0-.4-.2-.8-.4-1.1-.3-.3-.4-.7-.4-1.1 0-.9.7-1.6 1.6-1.6H16a6 6 0 0 0 6-6c0-4.9-4.5-8.6-10-8.6z"/>', 324 'id' => '<rect x="3" y="5" width="18" height="14" rx="2"/><circle cx="9" cy="12" r="2.5"/><path d="M14 10h4"/><path d="M14 14h4"/>', 325 'header' => '<rect x="3" y="3" width="18" height="18" rx="2"/><path d="M3 9h18"/>', 326 'grid' => '<rect x="3" y="3" width="7" height="7" rx="1"/><rect x="14" y="3" width="7" height="7" rx="1"/><rect x="3" y="14" width="7" height="7" rx="1"/><rect x="14" y="14" width="7" height="7" rx="1"/>', 327 'list' => '<path d="M4 6h16"/><path d="M4 12h10"/><path d="M4 18h14"/>', 328 'type' => '<path d="M4 7V4h16v3"/><path d="M9 20h6"/><path d="M12 4v16"/>', 329 'post' => '<path d="M14 3H6v18h12V7z"/><path d="M14 3v4h4"/><path d="M9 13h6"/><path d="M9 17h4"/>', 330 'menu' => '<path d="M4 6h16"/><path d="M4 12h16"/><path d="M4 18h16"/>', 331 'footer' => '<rect x="3" y="3" width="18" height="18" rx="2"/><path d="M3 15h18"/>', 332 'external' => '<path d="M15 3h6v6"/><path d="M10 14 21 3"/><path d="M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6"/>', 333 'close' => '<path d="M18 6 6 18"/><path d="m6 6 12 12"/>', 334 'eye' => '<path d="M2 12s3.5-7 10-7 10 7 10 7-3.5 7-10 7S2 12 2 12z"/><circle cx="12" cy="12" r="3"/>', 335 'download' => '<path d="M12 3v12"/><path d="m7 10 5 5 5-5"/><path d="M5 21h14"/>', 336 'info' => '<circle cx="12" cy="12" r="9"/><path d="M12 11v5"/><path d="M12 8h.01"/>', 337 'a11y' => '<circle cx="12" cy="4.5" r="1.5"/><path d="M5 8.5c2.3.7 4.6 1 7 1s4.7-.3 7-1"/><path d="M12 9.5V14l-3 6"/><path d="m12 14 3 6"/>', 338 'text-size' => '<path d="M4 18 8.5 6 13 18"/><path d="M5.7 14h5.6"/><path d="m15 18 3-8 3 8"/><path d="M16 15.5h4"/>', 339 'contrast' => '<circle cx="12" cy="12" r="9"/><path d="M12 3v18"/><path d="M12 8h4.5"/><path d="M12 12h5.5"/><path d="M12 16h4.5"/>', 340 'font' => '<path d="m3 18 4.5-12L12 18"/><path d="M4.7 14h5.6"/><circle cx="17.5" cy="14.5" r="3.5"/><path d="M21 11v7"/>', 341 'link' => '<path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"/><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"/>', 342 'mask' => '<rect x="3" y="4" width="18" height="16" rx="2"/><path d="M3 10h18"/><path d="M3 14h18"/>', 343 'volume' => '<path d="M11 5 6 9H2v6h4l5 4z"/><path d="M15.5 8.5a5 5 0 0 1 0 7"/><path d="M19 5a10 10 0 0 1 0 14"/>', 344 ); 345 if (!isset($paths[$name])) { 346 return ''; 347 } 348 $size = absint($size); 349 return '<svg class="blogaura-icon" width="' . $size . '" height="' . $size . '" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" focusable="false">' . $paths[$name] . '</svg>'; 350 } 351 352 /** 353 * Allowed tags for icon() output, for wp_kses(). 354 * 355 * @return array 356 */ 357 public static function icon_kses() 358 { 359 $shape = array('d' => true, 'cx' => true, 'cy' => true, 'r' => true, 'x' => true, 'y' => true, 'width' => true, 'height' => true, 'rx' => true); 360 return array( 361 'svg' => array('class' => true, 'width' => true, 'height' => true, 'viewbox' => true, 'fill' => true, 'stroke' => true, 'stroke-width' => true, 'stroke-linecap' => true, 'stroke-linejoin' => true, 'aria-hidden' => true, 'focusable' => true), 362 'path' => $shape, 363 'circle' => $shape, 364 'rect' => $shape, 365 ); 366 } 367 368 /** 369 * Echo an icon. 370 * 371 * @param string $name Icon name. 372 * @param int $size Size in px. 373 */ 374 public static function the_icon($name, $size = 20) 375 { 376 echo wp_kses(self::icon($name, $size), self::icon_kses()); 377 } 378 379 /** 380 * Link to WordPress' own theme browser filtered to WPInterface themes. Core loads 381 * that list, so the theme itself makes no request. 382 * 383 * @return string 384 */ 385 public static function themes_browse_url() 386 { 387 if (current_user_can('install_themes')) { 388 return self_admin_url('theme-install.php?search=' . rawurlencode('author:' . self::WPORG_AUTHOR)); 389 } 390 return 'https://wordpress.org/themes/author/' . self::WPORG_AUTHOR . '/'; 391 } 392 393 /** 394 * Small screenshot URL for a WordPress.org theme (the resized image the theme 395 * directory itself uses), falling back to the full screenshot. 396 * 397 * @param array $theme Theme data from themes_api(). 398 * @return string 399 */ 400 private static function theme_thumbnail($theme) 401 { 402 $full = isset($theme['screenshot_url']) ? (string) $theme['screenshot_url'] : ''; 403 if (0 === strpos($full, '//')) { 404 $full = 'https:' . $full; 405 } 406 $thumb = $full; 407 if (!empty($theme['version']) && preg_match('#/themes/([a-z0-9-]+)/screenshot\.(png|jpe?g|gif|webp)#i', $full, $m)) { 408 $thumb = sprintf('https://i0.wp.com/themes.svn.wordpress.org/%1$s/%2$s/screenshot.%3$s?w=480&strip=all', $m[1], rawurlencode($theme['version']), $m[2]); 409 } 410 /** 411 * Filters the thumbnail URL used for a WordPress.org theme on the Recommended tab. 412 * 413 * @param string $thumb Thumbnail URL. 414 * @param array $theme Theme data from themes_api(). 415 */ 416 return (string) apply_filters('blogaura_wporg_theme_thumbnail', $thumb, $theme); 417 } 418 419 /** 420 * WPInterface themes from WordPress.org, cached for 12 hours. Only called from the 421 * AJAX handler below, i.e. after the user asked to see the list. 422 * 423 * @return array|WP_Error 424 */ 425 private static function wporg_themes() 426 { 427 $cached = get_transient(self::THEMES_TRANSIENT); 428 if (is_array($cached)) { 429 return isset($cached['error']) ? new WP_Error('blogaura_wporg_themes', $cached['error']) : $cached; 430 } 431 432 if (!function_exists('themes_api')) { 433 require_once ABSPATH . 'wp-admin/includes/theme.php'; 434 } 435 $api = themes_api( 436 'query_themes', 437 array( 438 'author' => self::WPORG_AUTHOR, 439 'per_page' => 100, 62 440 'fields' => array( 63 'short_description' => false, 441 'description' => true, 442 'screenshot_url' => true, 64 443 'sections' => false, 65 'requires' => false,66 444 'rating' => false, 67 445 'ratings' => false, 68 446 'downloaded' => false, 447 'download_link' => false, 69 448 'last_updated' => false, 70 ' added' => false,449 'homepage' => false, 71 450 'tags' => false, 72 'compatibility' => false, 73 'homepage' => false, 74 'donate_link' => false, 75 ), 451 'num_ratings' => false, 452 'parent' => false, 453 'versions' => false, 454 ), 455 ) 456 ); 457 458 if (is_wp_error($api) || empty($api->themes) || !is_array($api->themes)) { 459 $message = __('Could not load themes from WordPress.org. Please try again later.', 'blogaura'); 460 set_transient(self::THEMES_TRANSIENT, array('error' => $message), 15 * MINUTE_IN_SECONDS); 461 return new WP_Error('blogaura_wporg_themes', $message); 462 } 463 464 $themes = array(); 465 foreach ($api->themes as $theme) { 466 $theme = (array) $theme; 467 if (empty($theme['slug']) || empty($theme['name'])) { 468 continue; 469 } 470 $themes[] = array( 471 'slug' => sanitize_key($theme['slug']), 472 'name' => sanitize_text_field(html_entity_decode($theme['name'], ENT_QUOTES, 'UTF-8')), 473 'thumb' => esc_url_raw(self::theme_thumbnail($theme)), 474 'description' => wp_trim_words(wp_strip_all_tags(isset($theme['description']) ? $theme['description'] : ''), 16, '…'), 76 475 ); 77 78 $plugin_info = plugins_api('plugin_information', $api_args); 79 80 // Error check for plugins_api 81 if (is_wp_error($plugin_info)) { 82 wp_send_json_error(array('message' => 'Error retrieving plugin information.')); 476 } 477 set_transient(self::THEMES_TRANSIENT, $themes, 12 * HOUR_IN_SECONDS); 478 return $themes; 479 } 480 481 /** 482 * AJAX: return the WPInterface themes list (minus this theme and its Free/Pro twin). 483 */ 484 public function ajax_wporg_themes() 485 { 486 check_ajax_referer('blogaura_wporg_themes', 'nonce'); 487 if (!current_user_can('edit_theme_options')) { 488 wp_send_json_error(array('message' => __('You are not allowed to perform this action.', 'blogaura')), 403); 489 } 490 491 $themes = self::wporg_themes(); 492 if (is_wp_error($themes)) { 493 wp_send_json_error(array('message' => $themes->get_error_message()), 502); 494 } 495 496 $template = get_template(); 497 $exclude = array($template, preg_replace('/-pro$/', '', $template)); 498 $can_install = current_user_can('install_themes'); 499 $out = array(); 500 foreach ($themes as $theme) { 501 if (in_array($theme['slug'], $exclude, true)) { 502 continue; 83 503 } 84 85 $upgrader = new Plugin_Upgrader(new WP_Ajax_Upgrader_Skin()); 86 $result = $upgrader->install($plugin_info->download_link); 87 88 if (is_wp_error($result)) { 89 wp_send_json_error(array('message' => 'Error installing the plugin.')); 90 } 91 92 $result = activate_plugin($plugin); 93 94 if (is_wp_error($result)) { 95 wp_send_json_error(array('message' => 'Error activating the plugin.')); 96 } else { 97 wp_send_json_success(array('message' => 'Plugin installed and activated successfully!')); 98 } 99 } 100 } 101 102 /** 103 * Localize array for import button AJAX request. 104 */ 105 public function enqueue_scripts() 106 { 107 $suffix = (defined('SCRIPT_DEBUG') && SCRIPT_DEBUG) ? '' : '.min'; 108 109 $css_file = is_rtl() 110 ? 'admin-rtl' . $suffix . '.css' 111 : 'admin' . $suffix . '.css'; 112 113 wp_enqueue_style( 114 'blogaura-admin-style', 115 get_template_directory_uri() . '/inc/admin/dashboard/css/' . $css_file, 116 array(), 117 BLOGAURA_VERSION 118 ); 119 120 wp_enqueue_script('blogaura-plugin-install-helper', get_template_directory_uri() . '/inc/admin/dashboard/js/admin.js', array('jquery'), BLOGAURA_VERSION, true); 121 $welcome_data = array( 122 'uri' => esc_url(admin_url('/themes.php?page=blogaura&tab=starter-templates')), 123 'btn_text' => esc_html__('Processing...', 'blogaura'), 124 'nonce' => wp_create_nonce('blogaura_demo_import_nonce'), 125 'admin_url' => esc_url(admin_url()), 126 'ajaxurl' => admin_url('admin-ajax.php'), // Include this line for using admin-ajax.php 127 ); 128 wp_localize_script('blogaura-plugin-install-helper', 'blogauraRedirectDemoPage', $welcome_data); 504 $theme['details'] = 'https://wordpress.org/themes/' . $theme['slug'] . '/'; 505 $theme['preview'] = $can_install ? self_admin_url('theme-install.php?theme=' . $theme['slug']) : $theme['details']; 506 $out[] = $theme; 507 } 508 wp_send_json_success(array('themes' => $out)); 129 509 } 130 510 } -
blogaura/1.1.5/inc/admin/dashboard/class-dashboard.php
r316997 r353892 1 1 <?php 2 /** 3 * BlogAura theme dashboard (Appearance › BlogAura). 4 * 5 * @package BlogAura 6 */ 2 7 // Exit if accessed directly. 3 8 defined('ABSPATH') || exit; 9 4 10 class BlogAura_Dashboard 5 11 { 12 /** 13 * Instance. 14 * 15 * @var BlogAura_Dashboard 16 */ 6 17 private static $instance; 7 /** 8 * The pro_status of theme. 9 * 10 * @var string $pro_status The pro_status. 11 */ 12 public $pro_status = false; 13 public $demo_packages; 14 public static function instance() 15 { 16 if (is_null(self::$instance)) { 17 self::$instance = new self(); 18 } 19 return self::$instance; 20 } 21 private function __construct() 22 { 23 $this->setup_hooks(); 24 } 25 private function setup_hooks() 26 { 27 add_action('admin_menu', array($this, 'create_menu')); 28 add_action('in_admin_header', array($this, 'hide_admin_notices')); 29 } 30 /** 31 * Theme Url 32 * 33 * @access private 34 * @var string $theme_url 35 * @since 1.0.0 18 19 /** 20 * Whether this is the Pro version of the theme. 21 * 22 * @var bool 23 */ 24 public $pro_status = BlogAura_Admin::PRO; 25 26 /** 27 * Admin page hook suffix. 28 * 29 * @var string 30 */ 31 private $hook = ''; 32 33 /** 34 * Theme URL. 35 * 36 * @var string 36 37 */ 37 38 private $theme_url = 'https://wpinterface.com/themes/blogaura/'; 38 /** 39 * Documentation Url 40 * 41 * @access private 42 * @var string $doc_url 43 * @since 1.0.0 44 */ 45 private $doc_url = 'https://docs.wpinterface.com/blogaura/'; 46 /** 47 * Preview Url 48 * 49 * @access private 50 * @var string $preview_url 51 * @since 1.0.0 52 */ 53 private $preview_url = 'https://live-preview.wpinterface.com/blogaura'; 54 /** 55 * Misc Support Url 56 * 57 * @access private 58 * @since 1.0.0 39 40 /** 41 * Documentation URL. 42 * 43 * @var string 44 */ 45 private $doc_url = 'https://docs.wpinterface.com/'; 46 47 /** 48 * Pro demo URL. 49 * 50 * @var string 51 */ 52 private $pro_demo_url = 'https://live-preview.wpinterface.com/blogaura-pro/'; 53 54 /** 55 * Support URLs. 56 * 57 * @var string 59 58 */ 60 59 private $community_url = 'https://wordpress.org/support/theme/blogaura/'; 60 private $review_url = 'https://wordpress.org/support/theme/blogaura/reviews/#new-post'; 61 61 private $support_url = 'https://wpinterface.com/support/'; 62 63 /** 64 * Community URLs. 65 * 66 * @var string 67 */ 62 68 private $facebook_url = 'https://www.facebook.com/wpinterface'; 63 69 private $x_url = 'https://x.com/wp_interface'; 64 70 private $youtube_url = 'https://www.youtube.com/@wpinterface'; 71 72 public static function instance() 73 { 74 if (is_null(self::$instance)) { 75 self::$instance = new self(); 76 } 77 return self::$instance; 78 } 79 80 private function __construct() 81 { 82 add_action('admin_menu', array($this, 'create_menu')); 83 add_action('in_admin_header', array($this, 'hide_admin_notices')); 84 add_action('admin_enqueue_scripts', array($this, 'enqueue')); 85 add_filter('admin_body_class', array($this, 'body_class')); 86 } 87 88 /** 89 * The parent theme object. 90 * 91 * @return WP_Theme 92 */ 93 private function theme() 94 { 95 return is_child_theme() ? wp_get_theme()->parent() : wp_get_theme(); 96 } 97 65 98 public function create_menu() 66 99 { 67 if (!is_child_theme()) { 68 $theme = wp_get_theme(); 69 } else { 70 $theme = wp_get_theme()->parent(); 71 } 72 /* translators: %s: Theme Name. */ 73 $theme_page_name = sprintf(esc_html__('%s', 'blogaura'), $theme->Name); 74 add_theme_page( 75 $theme_page_name, 76 $theme_page_name, 100 $this->hook = add_theme_page( 101 $this->theme()->get('Name'), 102 $this->theme()->get('Name'), 77 103 'edit_theme_options', 78 'blogaura', 104 BlogAura_Admin::PAGE, 105 array($this, 'dashboard_page') 106 ); 107 } 108 109 /** 110 * Whether the current admin screen is this dashboard. 111 * 112 * @return bool 113 */ 114 private function is_dashboard_screen() 115 { 116 $screen = function_exists('get_current_screen') ? get_current_screen() : null; 117 return $screen && $this->hook && $screen->id === $this->hook; 118 } 119 120 /** 121 * Load the dashboard CSS and JS on this page only. 122 * 123 * @param string $hook_suffix Current admin page. 124 */ 125 public function enqueue($hook_suffix) 126 { 127 if (!$this->hook || $hook_suffix !== $this->hook) { 128 return; 129 } 130 $base = BLOGAURA_PARENT_URL . '/inc/admin/dashboard/'; 131 wp_enqueue_style('blogaura-dashboard', $base . 'css/dashboard.css', array(), BLOGAURA_VERSION); 132 wp_style_add_data('blogaura-dashboard', 'rtl', 'replace'); 133 134 wp_enqueue_script('blogaura-dashboard', $base . 'js/dashboard.js', array(), BLOGAURA_VERSION, array('in_footer' => true, 'strategy' => 'defer')); 135 wp_localize_script( 136 'blogaura-dashboard', 137 'blogauraDashboard', 79 138 array( 80 $this, 81 'dashboard_page', 139 'ajaxUrl' => admin_url('admin-ajax.php'), 140 'nonce' => wp_create_nonce('blogaura_wporg_themes'), 141 // Pro loads the list when it scrolls into view; the free theme waits for a click. 142 'autoload' => (bool) $this->pro_status, 143 'pageSize' => 8, 144 'i18n' => array( 145 'loading' => __('Loading themes from WordPress.org…', 'blogaura'), 146 /* translators: %d: number of themes. */ 147 'count' => __('%d themes by WPInterface', 'blogaura'), 148 'error' => __('Could not load themes from WordPress.org. Please try again later.', 'blogaura'), 149 'retry' => __('Try again', 'blogaura'), 150 'preview' => __('Preview', 'blogaura'), 151 'details' => __('Details', 'blogaura'), 152 /* translators: %s: theme name. */ 153 'alt' => __('%s theme screenshot', 'blogaura'), 154 ), 82 155 ) 83 156 ); 84 157 } 85 /** 86 * Hide admin notices from BlockArt admin pages. 87 * 88 * @since 1.0.0 158 159 /** 160 * Body class used to give the dashboard a full-width header (scoped to this page). 161 * 162 * @param string $classes Admin body classes. 163 * @return string 164 */ 165 public function body_class($classes) 166 { 167 if ($this->is_dashboard_screen()) { 168 $classes .= ' blogaura-dashboard-page'; 169 } 170 return $classes; 171 } 172 173 /** 174 * Hide admin notices on the BlogAura dashboard. 89 175 */ 90 176 public function hide_admin_notices() 91 177 { 92 // Bail if we're not on a BlogAura screen or page.93 if (empty($_REQUEST['page']) || false === strpos(sanitize_text_field(wp_unslash($_REQUEST['page'])), 'blogaura')) { // phpcs:ignore WordPress.Security.NonceVerification178 // Only on the dashboard itself: other pages (such as the Pro licence page) keep their notices. 179 if (empty($_REQUEST['page']) || BlogAura_Admin::PAGE !== sanitize_key(wp_unslash($_REQUEST['page']))) { // phpcs:ignore WordPress.Security.NonceVerification 94 180 return; 95 181 } … … 123 209 } 124 210 } 211 212 /** 213 * Dashboard tabs. 214 * 215 * @return array 216 */ 217 private function tabs() 218 { 219 $view = __DIR__ . '/views/'; 220 $tabs = array( 221 'dashboard' => array( 222 'name' => __('Overview', 'blogaura'), 223 'view' => $view . 'overview.php', 224 ), 225 ); 226 $tabs['starter-templates'] = array( 227 'name' => __('Starter sites', 'blogaura'), 228 'view' => $view . 'starter-templates.php', 229 ); 230 $tabs['recommended'] = array( 231 'name' => __('Recommended', 'blogaura'), 232 'view' => $view . 'recommended.php', 233 ); 234 if (!$this->pro_status) { 235 $tabs['free-vs-pro'] = array( 236 'name' => __('Free vs Pro', 'blogaura'), 237 'view' => $view . 'free-vs-pro.php', 238 ); 239 } 240 $tabs['help'] = array( 241 'name' => __('Help & support', 'blogaura'), 242 'view' => $view . 'help.php', 243 ); 244 245 /** 246 * Filters the BlogAura dashboard tabs. 247 * 248 * Each tab is array( 'name' => string, 'view' => file path ) or, as before 1.2.5, 249 * array( 'name' => string, 'callback' => callable ). 250 * 251 * @param array $tabs Tabs keyed by slug. 252 */ 253 return apply_filters('blogaura_dashboard_tabs', $tabs); 254 } 255 256 /** 257 * Theme page on wpinterface.com. 258 * 259 * @return string 260 */ 261 public function get_theme_url() 262 { 263 return $this->theme_url; 264 } 265 266 /** 267 * Pro demo URL. 268 * 269 * @return string 270 */ 271 public function get_pro_demo_url() 272 { 273 return $this->pro_demo_url; 274 } 275 276 /** 277 * URL of a dashboard tab. 278 * 279 * @param string $tab Tab slug. 280 * @return string 281 */ 282 public function tab_url($tab) 283 { 284 return add_query_arg(array('page' => BlogAura_Admin::PAGE, 'tab' => $tab), admin_url('themes.php')); 285 } 286 125 287 public function dashboard_page() 126 288 { 127 if (!is_child_theme()) { 128 $theme = wp_get_theme(); 129 } else { 130 $theme = wp_get_theme()->parent(); 131 } 132 $admin_url = admin_url(); 133 $tabs = apply_filters( 134 'blogaura_dashboard_tabs', 135 array( 136 'dashboard' => array( 137 'name' => esc_html__('Dashboard', 'blogaura'), 138 'callback' => function () { 139 include __DIR__ . '/views/dashboard.php'; 140 }, 141 ), 142 'starter-templates' => array( 143 'name' => esc_html__('Starter Templates', 'blogaura'), 144 'callback' => function () { 145 include __DIR__ . '/views/starter-templates.php'; 146 }, 147 ), 148 'products' => array( 149 'name' => esc_html__('Our Recommendation', 'blogaura'), 150 'callback' => function () { 151 include __DIR__ . '/views/products.php'; 152 }, 153 ), 154 'free-vs-pro' => array( 155 'name' => esc_html__('Free Vs Pro', 'blogaura'), 156 'callback' => function () { 157 include __DIR__ . '/views/free-vs-pro.php'; 158 }, 159 ), 160 'help' => array( 161 'name' => esc_html__('Help', 'blogaura'), 162 'callback' => function () { 163 include __DIR__ . '/views/help.php'; 164 }, 165 ), 166 ) 167 ) 289 $theme = $this->theme(); 290 $tabs = $this->tabs(); 291 $current_tab = isset($_GET['tab']) ? sanitize_key(wp_unslash($_GET['tab'])) : 'dashboard'; // phpcs:ignore WordPress.Security.NonceVerification 292 if ('products' === $current_tab) { 293 $current_tab = 'recommended'; 294 } 295 if (!isset($tabs[$current_tab])) { 296 $current_tab = 'dashboard'; 297 } 168 298 ?> 169 <div class="wrap"> 170 <div class="blogaura-dashboard-area"> 171 <div class="blogaura-dashboard-header"> 172 <a class="blogaura-logo" href="<?php echo esc_url($this->theme_url); ?>" 173 target="_blank"> 174 <img class="blogaura-brand-logo" src="<?php echo esc_url(BLOGAURA_PARENT_URL . '/inc/admin/dashboard/images/blogaura-logo.svg'); ?>" alt="<?php esc_attr_e('BlogAura', 'blogaura'); ?>"> 175 <span class="blogaura-theme-version"> 176 <?php 177 echo esc_html($theme->Version); 178 ?> 179 </span> 180 </a> 181 <nav class="dashboard-header-nav"> 182 <ul class="dashboard-primary-menu"> 183 <?php 184 foreach ($tabs as $id => $tab) : 185 if (!is_callable($tab['callback'])) { 186 continue; 187 } 188 ?> 189 <li class="menu-item menu-item-<?php echo esc_attr($id); ?>"> 190 <a id="<?php echo esc_attr($id); ?>" 191 href=<?php echo esc_url("{$admin_url}themes.php?page=blogaura&tab=$id"); ?>><?php echo esc_html($tab['name']); ?></a> 192 </li> 193 <?php endforeach; ?> 194 </ul> 195 </nav> 196 <div class="dashboard-header-extras"> 197 <div class="dashboard-button-group"> 198 <?php if (!$this->pro_status) { ?> 199 <a href="<?php echo esc_url($this->theme_url); ?>#choose-pricing-plan" class="button button-secondary dashboard-button dashboard-button-primary" target="_blank"> 200 <?php esc_html_e('Upgrade to Pro', 'blogaura'); ?> 201 </a> 202 <?php } ?> 203 <button type="button" id="dashboard-changelog-button" class="button button-secondary dashboard-button dashboard-button-secondary"> 204 <?php esc_html_e('Changelog', 'blogaura'); ?> 205 </button> 299 <div class="blogaura-dash"> 300 <header class="blogaura-dash__header"> 301 <div class="blogaura-dash__container"> 302 <div class="blogaura-dash__title-row"> 303 <div class="blogaura-dash__title"> 304 <div class="blogaura-dash__title-line"> 305 <h1><?php echo esc_html($theme->get('Name')); ?></h1> 306 <span class="blogaura-pill"><?php echo esc_html(sprintf(/* translators: %s: theme version. */ __('Version %s', 'blogaura'), $theme->get('Version'))); ?></span> 307 <?php if ($this->pro_status) : ?> 308 <span class="blogaura-pill blogaura-pill--pro"><?php esc_html_e('Pro', 'blogaura'); ?></span> 309 <?php endif; ?> 310 </div> 311 <p><?php echo esc_html(sprintf(/* translators: %s: theme author. */ __('by %s', 'blogaura'), $theme->get('Author'))); ?></p> 312 </div> 313 <div class="blogaura-dash__actions"> 314 <a class="button button-primary blogaura-button" href="<?php echo esc_url(admin_url('customize.php')); ?>"><?php esc_html_e('Customize', 'blogaura'); ?></a> 315 <a class="button blogaura-button" href="<?php echo esc_url($this->doc_url); ?>" target="_blank" rel="noopener"><?php esc_html_e('Documentation', 'blogaura'); ?></a> 316 <button type="button" class="button blogaura-button" data-blogaura-changelog-open aria-haspopup="dialog" aria-controls="blogaura-changelog"><?php BlogAura_Admin::the_icon('clock', 16); ?><?php esc_html_e('What’s new', 'blogaura'); ?></button> 317 <?php if (!$this->pro_status) : ?> 318 <a class="blogaura-upgrade-button" href="<?php echo esc_url($this->theme_url . '#choose-pricing-plan'); ?>" target="_blank" rel="noopener"><?php BlogAura_Admin::the_icon('crown', 16); ?><?php esc_html_e('Upgrade to Pro', 'blogaura'); ?></a> 319 <?php endif; ?> 206 320 </div> 207 321 </div> 322 <nav class="blogaura-dash__tabs" aria-label="<?php esc_attr_e('Theme dashboard sections', 'blogaura'); ?>"> 323 <?php foreach ($tabs as $id => $tab) : ?> 324 <?php if ($id === $current_tab) : ?> 325 <a class="is-active" aria-current="page" href="<?php echo esc_url($this->tab_url($id)); ?>"><?php echo esc_html($tab['name']); ?></a> 326 <?php else : ?> 327 <a href="<?php echo esc_url($this->tab_url($id)); ?>"><?php echo esc_html($tab['name']); ?></a> 328 <?php endif; ?> 329 <?php endforeach; ?> 330 </nav> 208 331 </div> 209 <?php 210 $current_tab = isset($_GET['tab']) ? sanitize_text_field(wp_unslash($_GET['tab'])) : 'dashboard'; 211 $current_tab = in_array($current_tab, array_keys($tabs), true) ? $current_tab : 'dashboard'; 212 $callback = $tabs[$current_tab]['callback']; 213 call_user_func($callback); 214 ?> 215 </div><!--/.blogaura-dashboard-area--> 216 </div><!--/.wrap--> 217 <div id="blogaura-dashboard-offcanvas" class="blogaura-dashboard-offcanvas"> 218 <div class="dialog-head"> 219 <h3><?php esc_html_e('Latest Updates', 'blogaura'); ?></h3> 220 <div id="dialog-close" class="dialog-close"> 221 <svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 18 18" fill="none"> 222 <path d="M10.052 9.34082L16.277 3.11582C16.577 2.81582 16.577 2.36582 16.277 2.06582C15.977 1.76582 15.5269 1.76582 15.227 2.06582L9.00195 8.29082L2.77695 2.06582C2.47695 1.76582 2.02695 1.76582 1.72695 2.06582C1.42695 2.36582 1.42695 2.81582 1.72695 3.11582L7.95195 9.34082L1.72695 15.5658C1.42695 15.8658 1.42695 16.3158 1.72695 16.6158C1.87695 16.7658 2.02695 16.8408 2.25195 16.8408C2.47695 16.8408 2.62695 16.7658 2.77695 16.6158L9.00195 10.3908L15.227 16.6158C15.377 16.7658 15.602 16.8408 15.752 16.8408C15.902 16.8408 16.127 16.7658 16.277 16.6158C16.577 16.3158 16.577 15.8658 16.277 15.5658L10.052 9.34082Z" fill="#999999"/> 223 </svg> 332 </header> 333 <hr class="wp-header-end"> 334 <div class="blogaura-dash__body"> 335 <div class="blogaura-dash__container"> 336 <?php 337 $tab = $tabs[$current_tab]; 338 if (!empty($tab['view']) && is_readable($tab['view'])) { 339 include $tab['view']; 340 } elseif (!empty($tab['callback']) && is_callable($tab['callback'])) { 341 call_user_func($tab['callback']); 342 } 343 ?> 224 344 </div> 225 345 </div> 226 <div class="dialog-content"> 227 <?php 228 $changelog = new BlogAura_Changelog_Parser(); 229 // Fetch changelog data. 230 $changelog_data = $changelog->get_items(); 231 232 if ($changelog_data) { 233 // Output the changelog data 234 echo '<div class="blogaura-changelog">'; 235 foreach ($changelog_data as $entry) { 236 echo '<div class="blogaura-changelog-list-item">'; 237 echo '<div class="blogaura-changelog-list-head">'; 238 echo '<h4 class="blogaura-changelog-version">Version: ' . esc_html($entry['version']) . '</h4>'; 239 echo '<p class="blogaura-changelog-date">' . esc_html($entry['date']) . '</p>'; 240 echo '</div>'; // blogaura-changelog-list-head 241 // Display each change 242 echo '<div class="blogaura-changelog-change">'; 243 foreach ($entry['changes'] as $tag => $changes) { 244 echo '<div class="blogaura-changelog-change-item item--' . esc_html(strtolower($tag)) . '">'; 245 echo '<span class="blogaura-changelog-change-type">' . esc_html($tag) . '</span>'; 246 echo '<div class="blogaura-changelog-change-list">'; 247 foreach ($changes as $change) { 248 echo '<p class="blogaura-changelog-change-desc">' . esc_html($change) . '</p>'; 249 } 250 echo '</div>'; // blogaura-changelog-change-list 251 echo '</div >'; // blogaura-changelog-change-item 252 } 253 echo '</div>'; // blogaura-changelog-change 254 echo '</div>'; // blogaura-changelog-list-item 255 } 256 echo '</div>'; // blogaura-changelog 257 } else { 258 echo '<p>No changelog data available.</p>'; 259 } 260 ?> 261 </div> 346 <?php include __DIR__ . '/views/changelog.php'; ?> 262 347 </div> 263 348 <?php 264 349 } 265 350 } 351 266 352 BlogAura_Dashboard::instance(); -
blogaura/1.1.5/inc/admin/dashboard/class-theme-review-notice.php
r312189 r353892 25 25 add_action('after_setup_theme', array($this, 'review_notice')); 26 26 add_action('admin_notices', array($this, 'review_notice_markup'), 0); 27 add_action('admin_enqueue_scripts', array($this, 'enqueue')); 27 28 add_action('admin_init', array($this, 'ignore_theme_review_notice'), 0); 28 29 add_action('admin_init', array($this, 'ignore_theme_review_notice_partially'), 0); … … 59 60 '_blogaura_ignore_theme_review_notice_nonce' 60 61 ); 61 if (!current_user_can(' edit_posts')) {62 if (!current_user_can('manage_options')) { 62 63 return; 63 64 } … … 72 73 return; 73 74 } 75 if (!$this->on_notice_screen()) { 76 return; 77 } 78 $theme = is_child_theme() ? wp_get_theme()->parent() : wp_get_theme(); 74 79 ?> 75 <div class="notice notice-success blogaura-notice theme-review-notice" style="position:relative;"> 76 <div class="blogaura-notice-wrapper"> 77 <div class="blogaura-notice-welcome notice-is-review"> 78 <div class="blogaura-notice-left"> 80 <div class="notice blogaura-welcome blogaura-review"> 81 <a class="notice-dismiss blogaura-welcome__dismiss" href="<?php echo esc_url($dismiss_url); ?>"><span class="screen-reader-text"><?php esc_html_e('Dismiss this notice.', 'blogaura'); ?></span></a> 79 82 80 <h2 class="blogaura-notice-heading"><?php echo esc_html('🌟 Love our theme? Give us a 5-star rating! 🌟'); ?></h2> 81 82 <p> 83 <?php 84 printf( 85 /* translators: %1$s: Opening of strong tag, %2$s: Theme's Name, %3$s: Closing of strong tag */ 86 esc_html__('We hope you\'re enjoying our %1$s%2$s%3$s WordPress theme! Your feedback helps us improve and reach more users. If you love our theme, please take a moment to leave us a 5-star rating. Your support means the world to us!', 'blogaura'), 87 '<strong>', 88 esc_html(wp_get_theme()->get('Name')), 89 '</strong>' 90 ); 91 ?> 92 93 </p> 94 <strong> 95 <?php esc_html_e('Thank you for being an awesome part of our community! 💖', 'blogaura'); ?> 96 </strong> 97 98 <div class="dashboard-button-group"> 99 <a href="https://wordpress.org/support/theme/blogaura/reviews/?filter=5#new-post" class="button button-primary dashboard-button dashboard-button-primary" target="_blank"> 100 <span class="dashicons dashicons-thumbs-up"></span> 101 <?php esc_html_e('Sure, I\'d love to!', 'blogaura'); ?> 102 </a> 103 <a href="<?php echo esc_url($dismiss_url); ?>" class="button button-secondary dashboard-button dashboard-button-secondary"> 104 <span class="dashicons dashicons-smiley"></span> 105 <?php esc_html_e('I already did!', 'blogaura'); ?> 106 </a> 107 <a href="<?php echo esc_url($temporary_dismiss_url); ?>" class="button button-secondary dashboard-button dashboard-button-secondary"> 108 <span class="dashicons dashicons-calendar"></span> 109 <?php esc_html_e('Maybe later', 'blogaura'); ?> 110 </a> 111 <a href="<?php echo esc_url('https://wordpress.org/support/theme/blogaura/'); ?>" 112 class="button button-secondary dashboard-button dashboard-button-secondary" target="_blank"> 113 <span class="dashicons dashicons-testimonial"></span> 114 <?php esc_html_e('I have a query', 'blogaura'); ?> 115 </a> 116 </div> 117 118 </div> 119 <div class="blogaura-notice-right"> 120 <div class="blogaura-intro-image"> 121 <img src="<?php echo esc_url(get_template_directory_uri() . '/screenshot.png'); ?>" 122 alt="<?php esc_attr_e('BlogAura', 'blogaura'); ?>"/> 123 </div> 124 </div> 83 <div class="blogaura-welcome__body"> 84 <span class="blogaura-review__badge"><?php BlogAura_Admin::the_icon('star', 22); ?></span> 85 <div class="blogaura-welcome__text"> 86 <h2><?php echo esc_html(sprintf(/* translators: %s: theme name. */ __('Enjoying %s? A quick review helps a lot.', 'blogaura'), $theme->get('Name'))); ?></h2> 87 <p><?php esc_html_e('A rating on WordPress.org helps other site owners find the theme and keeps the updates coming. It takes about a minute.', 'blogaura'); ?></p> 88 </div> 89 <div class="blogaura-welcome__actions"> 90 <a class="button button-primary" href="<?php echo esc_url('https://wordpress.org/support/theme/blogaura/reviews/?filter=5#new-post'); ?>" target="_blank" rel="noopener"><span class="blogaura-review__stars" aria-hidden="true">★★★★★</span> <?php esc_html_e('Leave a review', 'blogaura'); ?></a> 91 <a class="button" href="<?php echo esc_url($dismiss_url); ?>"><?php esc_html_e('I already did', 'blogaura'); ?></a> 92 <a class="button" href="<?php echo esc_url($temporary_dismiss_url); ?>"><?php esc_html_e('Maybe later', 'blogaura'); ?></a> 125 93 </div> 126 94 </div> 127 <a class="notice-dismiss" href="<?php echo esc_url($dismiss_url); ?>"></a> 128 </div> <!-- /.theme-review-notice --> 95 96 <div class="blogaura-welcome__services"> 97 <?php BlogAura_Admin::the_icon('chat', 16); ?> 98 <span><?php esc_html_e('Something not working, or missing a feature?', 'blogaura'); ?></span> 99 <a href="<?php echo esc_url('https://wordpress.org/support/theme/blogaura/'); ?>" target="_blank" rel="noopener"><?php esc_html_e('Ask in the support forum', 'blogaura'); ?> <span aria-hidden="true">→</span></a> 100 </div> 101 </div> 129 102 <?php 103 } 104 105 /** 106 * Whether the current screen shows the notice (Dashboard and Themes, like the welcome notice). 107 * 108 * @return bool 109 */ 110 private function on_notice_screen() 111 { 112 $screen = function_exists('get_current_screen') ? get_current_screen() : null; 113 return $screen && in_array($screen->id, array('dashboard', 'themes'), true); 114 } 115 116 /** 117 * Whether the notice is due for the current user. 118 * 119 * @return bool 120 */ 121 private function is_due() 122 { 123 if (!current_user_can('manage_options')) { 124 return false; 125 } 126 $user_id = get_current_user_id(); 127 return !(get_option('blogaura_theme_installed_time') > strtotime('-14 day')) 128 && !(get_user_meta($user_id, 'nag_blogaura_ignore_theme_review_notice_partially', true) > strtotime('-14 day')) 129 && !get_user_meta($user_id, 'blogaura_ignore_theme_review_notice', true); 130 } 131 132 /** 133 * Load the notice stylesheet (shared with the welcome notice) while the notice is due. 134 * 135 * @param string $hook_suffix Current admin page. 136 */ 137 public function enqueue($hook_suffix) 138 { 139 if (!in_array($hook_suffix, array('index.php', 'themes.php'), true) || !$this->is_due()) { 140 return; 141 } 142 wp_enqueue_style('blogaura-welcome-notice', BLOGAURA_PARENT_URL . '/inc/admin/dashboard/css/notice.css', array(), BLOGAURA_VERSION); 143 wp_style_add_data('blogaura-welcome-notice', 'rtl', 'replace'); 130 144 } 131 145 … … 167 181 public function review_notice_data_remove() 168 182 { 169 $get_all_users = get_users();170 183 $theme_installed_time = get_option('blogaura_theme_installed_time'); 171 184 // Delete options data. … … 173 186 delete_option('blogaura_theme_installed_time'); 174 187 } 175 // Delete user meta data for theme review notice. 176 foreach ($get_all_users as $user) { 177 $ignored_notice = get_user_meta($user->ID, 'blogaura_ignore_theme_review_notice', true); 178 $ignored_notice_partially = get_user_meta($user->ID, 'nag_blogaura_ignore_theme_review_notice_partially', true); 179 // Delete permanent notice remove data. 180 if ($ignored_notice) { 181 delete_user_meta($user->ID, 'blogaura_ignore_theme_review_notice'); 182 } 183 // Delete partial notice remove data. 184 if ($ignored_notice_partially) { 185 delete_user_meta($user->ID, 'nag_blogaura_ignore_theme_review_notice_partially'); 186 } 187 } 188 // Delete user meta data for theme review notice for all users efficiently. 189 delete_metadata('user', 0, 'blogaura_ignore_theme_review_notice', '', true); 190 delete_metadata('user', 0, 'nag_blogaura_ignore_theme_review_notice_partially', '', true); 188 191 } 189 192 } -
blogaura/1.1.5/inc/admin/dashboard/class-welcome-notice.php
r312189 r353892 1 1 <?php 2 /** 3 * BlogAura welcome notice, shown after activation until dismissed. 4 * 5 * @package BlogAura 6 */ 2 7 // Exit if accessed directly. 3 8 defined('ABSPATH') || exit; 4 9 5 10 class BlogAura_Welcome_Notice { 6 private $theme_url = 'https://wpinterface.com/themes/blogaura/'; 7 private $doc_url = 'https://docs.wpinterface.com/blogaura/'; 8 private $theme_name; 9 private $theme_version; 10 private $theme_slug; 11 /** 12 * Screens that show the notice (Dashboard and Themes only). 13 * 14 * @var array 15 */ 16 private $screens = array('dashboard', 'themes'); 11 17 12 18 public function __construct() { … … 16 22 } 17 23 24 /** 25 * Whether the notice should be shown to the current user at all. 26 * 27 * @return bool 28 */ 29 private function is_enabled() { 30 return !get_option('blogaura_admin_notice_welcome') && current_user_can('manage_options'); 31 } 32 18 33 public function show_welcome_notice() { 19 if ( !get_option('blogaura_admin_notice_welcome')) {34 if ($this->is_enabled()) { 20 35 add_action('admin_notices', [$this, 'render_welcome_notice']); 36 add_action('admin_enqueue_scripts', [$this, 'enqueue']); 21 37 } 22 38 } 23 39 24 private function get_import_button_html() { 25 return sprintf( 26 '<a class="btn-get-started button button-primary dashboard-button dashboard-button-primary" href="#" data-name="%s" data-slug="%s" aria-label="%s">%s</a>', 27 esc_attr('one-click-demo-import, mailchimp-for-wp, wpinterface-add-ons'), 28 esc_attr('one-click-demo-import, mailchimp-for-wp, wpinterface-add-ons'), 29 esc_attr__('Get Started', 'blogaura'), 30 esc_html__('Get started', 'blogaura') 40 /** 41 * Load the notice's small stylesheet and script on the screens that show it. 42 * 43 * @param string $hook_suffix Current admin page. 44 */ 45 public function enqueue($hook_suffix) { 46 if (!in_array($hook_suffix, array('index.php', 'themes.php'), true)) { 47 return; 48 } 49 $base = BLOGAURA_PARENT_URL . '/inc/admin/dashboard/'; 50 wp_enqueue_style('blogaura-welcome-notice', $base . 'css/notice.css', array(), BLOGAURA_VERSION); 51 wp_style_add_data('blogaura-welcome-notice', 'rtl', 'replace'); 52 wp_enqueue_script('blogaura-welcome-notice', $base . 'js/notice.js', array(), BLOGAURA_VERSION, array('in_footer' => true, 'strategy' => 'defer')); 53 wp_localize_script( 54 'blogaura-welcome-notice', 55 'blogauraWelcomeNotice', 56 array( 57 'ajaxUrl' => admin_url('admin-ajax.php'), 58 'nonce' => wp_create_nonce('blogaura_demo_import_nonce'), 59 'i18n' => array( 60 'installing' => __('Installing…', 'blogaura'), 61 'error' => __('Something went wrong. Please try again, or install the plugins from Plugins › Add New.', 'blogaura'), 62 ), 63 ) 31 64 ); 32 65 } 33 66 34 67 public function render_welcome_notice() { 68 $screen = get_current_screen(); 69 if (!$screen || !in_array($screen->id, $this->screens, true)) { 70 return; 71 } 72 73 $theme = is_child_theme() ? wp_get_theme()->parent() : wp_get_theme(); 74 $dashboard_url = admin_url('themes.php?page=' . BlogAura_Admin::PAGE); 35 75 $dismiss_url = wp_nonce_url( 36 76 remove_query_arg(['activated'], add_query_arg('blogaura-hide-notice', 'welcome')), … … 38 78 '_blogaura_notice_nonce' 39 79 ); 40 $current_user = wp_get_current_user(); 41 $theme = wp_get_theme(); 42 $this->theme_name = $theme->get('Name'); 43 $this->theme_version = $theme->get('Version'); 44 $this->theme_slug = $theme->get_template(); 80 $ready = BlogAura_Admin::starter_plugins_active(); 81 $services = BlogAura_Admin::services(); 82 /** 83 * Filters whether the welcome notice shows the one-line link to WPInterface services. 84 * 85 * @param bool $show Whether to show it. 86 */ 87 $show_services = apply_filters('blogaura_welcome_notice_show_services', true); 88 ?> 89 <div class="notice blogaura-welcome<?php echo $ready ? ' blogaura-welcome--ready' : ''; ?>"> 90 <a class="notice-dismiss blogaura-welcome__dismiss" href="<?php echo esc_url($dismiss_url); ?>"><span class="screen-reader-text"><?php esc_html_e('Dismiss this notice.', 'blogaura'); ?></span></a> 45 91 46 if (is_plugin_active('one-click-demo-import/one-click-demo-import.php') && is_plugin_active('mailchimp-for-wp/mailchimp-for-wp.php') && is_plugin_active('wpinterface-add-ons/wpinterface-add-ons.php')) { 47 return; 48 } 92 <div class="blogaura-welcome__body"> 93 <?php if ($ready) : ?> 94 <span class="blogaura-welcome__check"><?php BlogAura_Admin::the_icon('check', 22); ?></span> 95 <div class="blogaura-welcome__text"> 96 <h2><?php esc_html_e('Starter plugins are installed.', 'blogaura'); ?></h2> 97 <p><?php esc_html_e('Import a starter site, or start from a clean slate in the Customizer.', 'blogaura'); ?></p> 98 </div> 99 <div class="blogaura-welcome__actions"> 100 <a class="button button-primary" href="<?php echo esc_url(add_query_arg('tab', 'starter-templates', $dashboard_url)); ?>"><?php esc_html_e('Import a starter site', 'blogaura'); ?></a> 101 <a class="button" href="<?php echo esc_url(admin_url('customize.php')); ?>"><?php esc_html_e('Customize', 'blogaura'); ?></a> 102 </div> 103 <?php else : ?> 104 <img class="blogaura-welcome__thumb" src="<?php echo esc_url(BlogAura_Admin::image_url('theme-thumb.webp')); ?>" width="128" height="96" alt="<?php echo esc_attr(sprintf(/* translators: %s: theme name. */ __('%s theme screenshot', 'blogaura'), $theme->get('Name'))); ?>"> 105 <div class="blogaura-welcome__text"> 106 <span class="blogaura-welcome__eyebrow"><?php esc_html_e('Theme activated', 'blogaura'); ?></span> 107 <h2><?php echo esc_html(sprintf(/* translators: %s: theme name. */ __('%s is ready. Let’s make it yours.', 'blogaura'), $theme->get('Name'))); ?></h2> 108 <p><?php esc_html_e('Install the free starter plugins to import a demo layout in one click, then fine-tune colours, header and homepage in the Customizer.', 'blogaura'); ?></p> 109 <ul class="blogaura-welcome__plugins"> 110 <?php foreach (BlogAura_Admin::starter_plugins() as $plugin) : ?> 111 <li><img src="<?php echo esc_url(BlogAura_Admin::image_url('plugin-' . $plugin['slug'] . '.webp')); ?>" width="20" height="20" alt=""><?php echo esc_html($plugin['name']); ?></li> 112 <?php endforeach; ?> 113 </ul> 114 <p class="blogaura-welcome__error" role="alert" hidden></p> 115 </div> 116 <div class="blogaura-welcome__actions"> 117 <?php if (current_user_can('install_plugins')) : ?> 118 <button type="button" class="button button-primary" data-blogaura-install><?php esc_html_e('Install starter plugins', 'blogaura'); ?></button> 119 <?php endif; ?> 120 <a class="button" href="<?php echo esc_url($dashboard_url); ?>"><?php esc_html_e('Open theme dashboard', 'blogaura'); ?></a> 121 </div> 122 <?php endif; ?> 123 </div> 49 124 50 ?> 51 <div id="message" class="notice notice-success blogaura-notice"> 52 <a class="blogaura-message-close notice-dismiss" href="<?php echo esc_url($dismiss_url); ?>"></a> 53 <div class="blogaura-notice-wrapper"> 54 <div class="blogaura-notice-welcome"> 55 <div class="blogaura-notice-left"> 56 <div class="blogaura-notice-subheading"> 57 <?php printf(esc_html__('Welcome %1$s!', 'blogaura'), $current_user->user_login); ?> 58 </div> 59 <h2 class="blogaura-notice-heading"> 60 <?php esc_html_e('Thank you for choosing BlogAura!', 'blogaura'); ?> 61 </h2> 62 </div> 125 <?php if ($show_services) : ?> 126 <div class="blogaura-welcome__services"> 127 <?php BlogAura_Admin::the_icon('badge', 16); ?> 128 <span><?php echo esc_html(sprintf(/* translators: %s: theme name. */ __('Prefer it done for you? The WPInterface team can set up and customise %s for your site.', 'blogaura'), $theme->get('Name'))); ?></span> 129 <a href="<?php echo esc_url($services['featured']['url']); ?>" target="_blank" rel="noopener"><?php esc_html_e('Explore services', 'blogaura'); ?> <span aria-hidden="true">→</span></a> 63 130 </div> 64 <div class="blogaura-notice-content"> 65 <div class="blogaura-notice-item blogaura-notice-template-import"> 66 <h3><?php esc_html_e('Recommended Plugins', 'blogaura'); ?></h3> 67 <p><?php esc_html_e('Let\'s start by installing and activating One Click Demo Import, WPInterface Add-ons and MC4WP: Mailchimp for WordPress', 'blogaura'); ?></p> 68 <?php echo $this->get_import_button_html(); ?> 69 </div> 70 <div class="blogaura-notice-item blogaura-notice-theme-dashboard"> 71 <h3><?php esc_html_e('Quick Links', 'blogaura'); ?></h3> 72 <p><?php esc_html_e("Check the quick links below for detailed information and to make the most of all the features our theme offers.", 'blogaura'); ?></p> 73 <div class="dashboard-button-group"> 74 <a href="<?php echo esc_url(admin_url('themes.php?page=' . $this->theme_slug)); ?>" class="button button-secondary dashboard-button dashboard-button-secondary"> 75 <?php esc_html_e('Theme Dashboard', 'blogaura'); ?> 76 </a> 77 <a href="<?php echo esc_url($this->doc_url); ?>" class="button button-secondary dashboard-button dashboard-button-secondary" target="_blank"> 78 <?php esc_html_e('Documentation', 'blogaura'); ?> 79 </a> 80 <a href="<?php echo esc_url($this->theme_url); ?>#choose-pricing-plan" class="button button-secondary dashboard-button dashboard-button-primary" target="_blank"> 81 <?php esc_html_e('Upgrade to Pro', 'blogaura'); ?> 82 </a> 83 84 </div> 85 </div> 86 </div> 87 </div> 131 <?php endif; ?> 88 132 </div> 89 133 <?php … … 105 149 public function handle_import_button() { 106 150 check_ajax_referer('blogaura_demo_import_nonce', 'security'); 107 $state = []; 151 if (!current_user_can('activate_plugins')) { 152 wp_send_json_error(array('message' => esc_html__('You are not allowed to perform this action.', 'blogaura')), 403); 153 } 154 $response = ['redirect' => admin_url('/themes.php?page=' . BlogAura_Admin::PAGE . '&tab=dashboard')]; 108 155 109 if (class_exists('OCDI_Plugin')) { 110 $state['one-click-demo-import'] = 'activated'; 111 } elseif (file_exists(WP_PLUGIN_DIR . '/one-click-demo-import/one-click-demo-import.php')) { 112 $state['one-click-demo-import'] = 'installed'; 113 } 114 115 if (class_exists('MC4WP_MailChimp')) { 116 $state['mailchimp-for-wp'] = 'activated'; 117 } elseif (file_exists(WP_PLUGIN_DIR . '/mailchimp-for-wp/mailchimp-for-wp.php')) { 118 $state['mailchimp-for-wp'] = 'installed'; 119 } 120 121 if (class_exists('Wpinterface_Add_Ons')) { 122 $state['wpinterface-add-ons'] = 'activated'; 123 } elseif (file_exists(WP_PLUGIN_DIR . '/wpinterface-add-ons/wpinterface-add-ons.php')) { 124 $state['wpinterface-add-ons'] = 'installed'; 125 } 126 127 $response = ['redirect' => admin_url('/themes.php?page=blogaura&tab=dashboard')]; 128 129 foreach (['one-click-demo-import', 'mailchimp-for-wp', 'wpinterface-add-ons'] as $plugin) { 130 if (isset($state[$plugin]) && ('activated' === $state[$plugin] || 'installed' === $state[$plugin])) { 131 if (current_user_can('activate_plugin')) { 132 $result = activate_plugin($plugin . '/' . $plugin . '.php'); 133 if (is_wp_error($result)) { 134 $response['errorCode'] = $result->get_error_code(); 135 $response['errorMessage'] = $result->get_error_message(); 136 } 156 foreach (BlogAura_Admin::starter_plugins() as $plugin) { 157 $state = BlogAura_Admin::plugin_state($plugin['file']); 158 if ('active' === $state) { 159 continue; 160 } 161 if ('missing' === $state) { 162 if (!current_user_can('install_plugins')) { 163 continue; 137 164 } 138 } else {139 wp_enqueue_style('plugin-install');140 wp_enqueue_script('plugin-install');141 165 include_once ABSPATH . 'wp-admin/includes/class-wp-upgrader.php'; 142 166 include_once ABSPATH . 'wp-admin/includes/plugin-install.php'; 143 167 144 $api = plugins_api('plugin_information', ['slug' => $plugin, 'fields' => ['sections' => false]]); 168 $api = plugins_api('plugin_information', ['slug' => $plugin['slug'], 'fields' => ['sections' => false]]); 169 if (is_wp_error($api)) { 170 $response['errorCode'] = $api->get_error_code(); 171 $response['errorMessage'] = $api->get_error_message(); 172 continue; 173 } 145 174 $upgrader = new Plugin_Upgrader(new WP_Ajax_Upgrader_Skin()); 146 175 $result = $upgrader->install($api->download_link); 147 148 if ($result && current_user_can('activate_plugin')) { 149 $result = activate_plugin($plugin . '/' . $plugin . '.php'); 150 if (is_wp_error($result)) { 151 $response['errorCode'] = $result->get_error_code(); 152 $response['errorMessage'] = $result->get_error_message(); 153 } 176 if (!$result || is_wp_error($result)) { 177 $response['errorCode'] = is_wp_error($result) ? $result->get_error_code() : 'install_failed'; 178 $response['errorMessage'] = is_wp_error($result) ? $result->get_error_message() : __('Could not install the plugin.', 'blogaura'); 179 continue; 180 } 181 wp_clean_plugins_cache(); 182 } 183 if (current_user_can('activate_plugin', $plugin['file'])) { 184 $result = activate_plugin($plugin['file']); 185 if (is_wp_error($result)) { 186 $response['errorCode'] = $result->get_error_code(); 187 $response['errorMessage'] = $result->get_error_message(); 154 188 } 155 189 } -
blogaura/1.1.5/inc/admin/dashboard/views/free-vs-pro.php
r312189 r353892 1 1 <?php 2 if (!is_child_theme()) { 3 $theme = wp_get_theme(); 4 } else { 5 $theme = wp_get_theme()->parent(); 6 } 7 $tick_mark = '<span class="compare-checkmark"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" fill="none"><path d="M5.37994 11.5537L5.7335 11.9073L6.08705 11.5537L13.887 3.75375C13.9296 3.71119 13.9703 3.7002 14.0002 3.7002C14.03 3.7002 14.0707 3.71119 14.1133 3.75375C14.1558 3.79631 14.1668 3.83698 14.1668 3.86686C14.1668 3.89675 14.1558 3.93742 14.1133 3.97998L5.84661 12.2466C5.80946 12.2838 5.79218 12.2918 5.78876 12.2933L5.7886 12.2934C5.78668 12.2943 5.7738 12.3002 5.7335 12.3002C5.6932 12.3002 5.68032 12.2943 5.67839 12.2934L5.67823 12.2933C5.67482 12.2918 5.65753 12.2838 5.62038 12.2466L1.88705 8.51331C1.84449 8.47075 1.8335 8.43008 1.8335 8.4002C1.8335 8.37031 1.84449 8.32964 1.88705 8.28708L1.54017 7.9402L1.88705 8.28708C1.92961 8.24452 1.97028 8.23353 2.00016 8.23353C2.03005 8.23353 2.07072 8.24452 2.11328 8.28708L5.37994 11.5537Z" stroke="#3fb28f"/></svg></span>'; 8 $cross_mark = '<span class="compare-crossmark"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" fill="none"><path fill-rule="evenodd" clip-rule="evenodd" d="M12.7071 4.70711C13.0976 4.31658 13.0976 3.68342 12.7071 3.29289C12.3166 2.90237 11.6834 2.90237 11.2929 3.29289L8 6.58579L4.70711 3.29289C4.31658 2.90237 3.68342 2.90237 3.29289 3.29289C2.90237 3.68342 2.90237 4.31658 3.29289 4.70711L6.58579 8L3.29289 11.2929C2.90237 11.6834 2.90237 12.3166 3.29289 12.7071C3.68342 13.0976 4.31658 13.0976 4.70711 12.7071L8 9.41421L11.2929 12.7071C11.6834 13.0976 12.3166 13.0976 12.7071 12.7071C13.0976 12.3166 13.0976 11.6834 12.7071 11.2929L9.41421 8L12.7071 4.70711Z" fill="#e62424"/></svg></span>'; 2 /** 3 * Dashboard › Free vs Pro tab. 4 * 5 * Included from BlogAura_Dashboard::dashboard_page(), so $this is the dashboard. 6 * 7 * @package BlogAura 8 */ 9 defined('ABSPATH') || exit; 10 11 // true = included, false = not included, anything else is shown as text. 12 $blogaura_features = array( 13 __('General Features', 'blogaura') => array( 14 array('Hook For Developers', true, true), 15 array('WooCommerce Compatible', true, true), 16 array('Gutenberg Compatible', true, true), 17 array('Elementor Compatible', true, true), 18 array('Dark Mode', false, true), 19 array('Typography(Font Size, Font Family, Font Weight,...)', false, true), 20 array('Styling Options', 'Limited', true), 21 array('Background Options', 'Limited', true), 22 array('Pre Built Demos', 1, 2), 23 ), 24 __('Colors', 'blogaura') => array( 25 array('Background Color', true, true), 26 array('Primary Color', false, true), 27 array('Heading Colors', false, true), 28 array('Element Colors', false, true), 29 array('Link Color', false, true), 30 array('Category Colors', true, true), 31 ), 32 __('Header Features', 'blogaura') => array( 33 array('Site Identity Customization', 'Limited', true), 34 array('Header Layouts', 2, 6), 35 array('Sticky Header', true, true), 36 array('Date and Time', true, true), 37 array('News Ticker', 'Limited', true), 38 array('Offcanvas Widget Area', false, true), 39 array('Top Bar Navigation', false, true), 40 ), 41 __('WooCommerce', 'blogaura') => array( 42 array('Advanced WooCommerce Support', false, true), 43 array('WooCommerce Product Page Sidebar', true, true), 44 ), 45 __('Container Layout', 'blogaura') => array( 46 array('Boxed', false, true), 47 array('Left Sidebar', true, true), 48 array('Right Sidebar', true, true), 49 array('No Sidebar', true, true), 50 ), 51 __('Blog', 'blogaura') => array( 52 array('Archive Layout', 3, 5), 53 array('Post Format Support', false, true), 54 array('Sticky Sidebar', true, true), 55 array('Excerpt', true, true), 56 array('Excerpt Length', true, true), 57 array('Excerpt Line Limit', true, true), 58 array('Read More Text', false, true), 59 array('Infinite Scroll', true, true), 60 array('Social Share Button', false, true), 61 ), 62 __('Content', 'blogaura') => array( 63 array('Author Info Area', true, true), 64 array('Social Media Icons on Author Info Area', false, true), 65 array('Post Navigation Style', 1, 3), 66 array('Related Posts', true, true), 67 array('Related Author Posts', false, true), 68 array('Read Time', false, true), 69 array('Post Date Format', 1, 2), 70 array('Sticky Sidebar', true, true), 71 array('Social Share Button', false, true), 72 array('Fixed Next/Prev Posts', true, true), 73 ), 74 __('Footer', 'blogaura') => array( 75 array('Footer Column Layout', 7, 9), 76 array('Background Color', false, true), 77 array('Background Image', false, true), 78 array('Scroll To Top Button', true, true), 79 array('Reading Progress Indicator', true, true), 80 array('Footer Widgets Area', true, true), 81 array('Remove Copyright Theme Credit', false, true), 82 ), 83 __('Additional', 'blogaura') => array( 84 array('Schema Markup', false, true), 85 array('Social Share Icons', false, 3), 86 array('Newsletter Popup Model Box', false, true), 87 ), 88 __('API Integrations', 'blogaura') => array( 89 array('OpenWeatherMap API Integration', false, true), 90 array('GoogleMaps API Integration', false, true), 91 array('Exchange Rate API Integration', false, true), 92 ), 93 __('Widgets', 'blogaura') => array( 94 array('Widget Areas', 20, '25+'), 95 ), 96 __('Theme Widgets', 'blogaura') => array( 97 array('BlogAura: Advertisement Widget', false, true), 98 array('BlogAura: Instagram Widget', false, true), 99 array('BlogAura: Author Widget', true, true), 100 array('BlogAura: CTA', true, true), 101 array('BlogAura: Carousel Posts', true, true), 102 array('BlogAura: Categories', true, true), 103 array('BlogAura: Grid Posts', true, true), 104 array('BlogAura: Image Widget', true, true), 105 array('BlogAura: Mailchimp', true, true), 106 array('BlogAura: Metro Post', true, true), 107 array('BlogAura: Recent Posts', true, true), 108 array('BlogAura: Currency Exchange', false, true), 109 array('BlogAura: Google Maps', false, true), 110 array('BlogAura: Weather', false, true), 111 array('BlogAura: Slider Posts', true, true), 112 array('BlogAura: Social Menu', true, true), 113 array('BlogAura: Tab Posts', true, true), 114 array('BlogAura: Youtube Video', true, true), 115 ), 116 __('Premium Elementor Widgets', 'blogaura') => array( 117 array('Slider', false, true), 118 ), 119 __('Widget Blocks', 'blogaura') => array( 120 array('Block Style 1', true, true), 121 array('Block Style 2', true, true), 122 array('Block Style 3', true, true), 123 array('Block Style 4', true, true), 124 array('Block Style 5', true, true), 125 array('Block Style 6', false, true), 126 array('Block Style 7', false, true), 127 array('Block Style 8', false, true), 128 array('Block Style 9', false, true), 129 array('Block Style 10', false, true), 130 ), 131 __('Widget Grid', 'blogaura') => array( 132 array('Grid Style 1', true, true), 133 array('Grid Style 2', true, true), 134 array('Grid Style 3', true, true), 135 array('Grid Style 4', true, true), 136 array('Grid Style 5', true, true), 137 array('Grid Style 6', false, true), 138 array('Grid Style 7', false, true), 139 array('Grid Style 8', false, true), 140 array('Grid Style 9', false, true), 141 array('Grid Style 10', false, true), 142 ), 143 __('Pro Only', 'blogaura') => array( 144 array('Whitelist Theme Credit', false, true), 145 array('Webmasters Tools', false, true), 146 array('Meta Open Graph', false, true), 147 array('Twitter Summary Card', false, true), 148 ), 149 __('Support', 'blogaura') => array( 150 array('Support', 'WordPress.org Forum', 'Personalized Support through Email/Ticket System'), 151 ), 152 ); 153 154 $blogaura_cell = static function ($value) { 155 if (true === $value) { 156 echo '<span class="blogaura-yes">'; 157 BlogAura_Admin::the_icon('check', 16); 158 echo '<span class="screen-reader-text">' . esc_html__('Included', 'blogaura') . '</span></span>'; 159 } elseif (false === $value) { 160 echo '<span class="blogaura-no" aria-hidden="true">—</span><span class="screen-reader-text">' . esc_html__('Not included', 'blogaura') . '</span>'; 161 } else { 162 echo esc_html($value); 163 } 164 }; 9 165 ?> 10 <div class="blogaura-dashboard-content free-vs-pro-page"> 11 <table class="blogaura-compare-table"> 12 <tbody> 13 <?php 14 $show_free_pro = true; // Set to false to hide the Free/Pro column 15 $features = array( 16 'General Features' => array( 17 'showFreePro' => true, 18 'items' => array( 19 array('Hook For Developers', $tick_mark, $tick_mark), 20 array('WooCommerce Compatible', $tick_mark, $tick_mark), 21 array('Gutenberg Compatible', $tick_mark, $tick_mark), 22 array('Elementor Compatible', $tick_mark, $tick_mark), 23 array('Dark Mode', $cross_mark, $tick_mark), 24 array('Typography(Font Size, Font Family, Font Weight,...)', $cross_mark, $tick_mark), 25 array('Styling Options', 'Limited', $tick_mark), 26 array('Background Options', 'Limited', $tick_mark), 27 array('Pre Built Demos', 1, 2), 28 ), 29 ), 30 'Colors' => array( 31 'showFreePro' => true, 32 'items' => array( 33 array('Background Color', $tick_mark, $tick_mark), 34 array('Primary Color', $cross_mark, $tick_mark), 35 array('Heading Colors', $cross_mark, $tick_mark), 36 array('Element Colors', $cross_mark, $tick_mark), 37 array('Link Color', $cross_mark, $tick_mark), 38 array('Category Colors', $tick_mark, $tick_mark), 39 ), 40 ), 41 'Header Features' => array( 42 'showFreePro' => true, 43 'items' => array( 44 array('Site Identity Customization', 'Limited', $tick_mark), 45 array('Header Layouts', 2, 6), 46 array('Sticky Header', $tick_mark, $tick_mark), 47 array('Date and Time', $tick_mark, $tick_mark), 48 array('News Ticker', 'Limited', $tick_mark), 49 array('Offcanvas Widget Area', $cross_mark, $tick_mark), 50 array('Top Bar Navigation', $cross_mark, $tick_mark), 51 ), 52 ), 53 'WooCommerce' => array( 54 'showFreePro' => true, 55 'items' => array( 56 array('Advanced WooCommerce Support', $cross_mark, $tick_mark), 57 array('WooCommerce Product Page Sidebar', $tick_mark, $tick_mark), 58 array('WooCommerce Product Page Sidebar', $tick_mark, $tick_mark), 59 ), 60 ), 61 'Container Layout' => array( 62 'showFreePro' => true, 63 'items' => array( 64 array('Boxed', $cross_mark, $tick_mark), 65 array('Left Sidebar', $tick_mark, $tick_mark), 66 array('Right Sidebar', $tick_mark, $tick_mark), 67 array('No Sidebar', $tick_mark, $tick_mark), 68 ), 69 ), 70 'Blog' => array( 71 'showFreePro' => true, 72 'items' => array( 73 array('Archive Layout', 3, 5), 74 array('Post Format Support', $cross_mark, $tick_mark), 75 array('Sticky Sidebar', $tick_mark, $tick_mark), 76 array('Excerpt', $tick_mark, $tick_mark), 77 array('Excerpt Length', $tick_mark, $tick_mark), 78 array('Excerpt Line Limit', $tick_mark, $tick_mark), 79 array('Read More Text', $cross_mark, $tick_mark), 80 array('Infinite Scroll', $tick_mark, $tick_mark), 81 array('Social Share Button', $cross_mark, $tick_mark), 82 ), 83 ), 84 'Content' => array( 85 'showFreePro' => true, 86 'items' => array( 87 array('Author Info Area', $tick_mark, $tick_mark), 88 array('Social Media Icons on Author Info Area', $cross_mark, $tick_mark), 89 array('Post Navigation Style', 1, 3), 90 array('Related Posts', $tick_mark, $tick_mark), 91 array('Related Author Posts', $cross_mark, $tick_mark), 92 array('Read Time', $cross_mark, $tick_mark), 93 array('Post Date Format', 1, 2), 94 array('Sticky Sidebar', $tick_mark, $tick_mark), 95 array('Social Share Button', $cross_mark, $tick_mark), 96 array('Fixed Next/Prev Posts', $tick_mark, $tick_mark), 97 ), 98 ), 99 'Footer' => array( 100 'showFreePro' => true, 101 'items' => array( 102 array('Footer Column Layout', 7, 9), 103 array('Background Color', $cross_mark, $tick_mark), 104 array('Background Image', $cross_mark, $tick_mark), 105 array('Scroll To Top Button', $tick_mark, $tick_mark), 106 array('Reading Progress Indicator', $tick_mark, $tick_mark), 107 array('Footer Widgets Area', $tick_mark, $tick_mark), 108 array('Remove Copyright Theme Credit', $cross_mark, $tick_mark), 109 ), 110 ), 111 'Additional' => array( 112 'showFreePro' => true, 113 'items' => array( 114 array('Schema Markup', $cross_mark, $tick_mark), 115 array('Social Share Icons', $cross_mark, 3), 116 array('Newsletter Popup Model Box', $cross_mark, $tick_mark), 117 ), 118 ), 119 'API Integrations' => array( 120 'showFreePro' => true, 121 'items' => array( 122 array('OpenWeatherMap API Integration', $cross_mark, $tick_mark), 123 array('GoogleMaps API Integration', $cross_mark, $tick_mark), 124 array('Exchange Rate API Integration', $cross_mark, $tick_mark), 125 ), 126 ), 127 'Widgets' => array( 128 'showFreePro' => true, 129 'items' => array( 130 array('Widget Areas', 20, '25+'), 131 ), 132 ), 133 'TG Widgets' => array( 134 'showFreePro' => true, 135 'items' => array( 136 array('BlogAura: Advertisement Widget', $cross_mark, $tick_mark), 137 array('BlogAura: Instagram Widget', $cross_mark, $tick_mark), 138 array('BlogAura: Author Widget', $tick_mark, $tick_mark), 139 array('BlogAura: CTA', $tick_mark, $tick_mark), 140 array('BlogAura: Carousel Posts', $tick_mark, $tick_mark), 141 array('BlogAura: Categories', $tick_mark, $tick_mark), 142 array('BlogAura: Grid Posts', $tick_mark, $tick_mark), 143 array('BlogAura: Image Widget', $tick_mark, $tick_mark), 144 array('BlogAura: Mailchimp', $tick_mark, $tick_mark), 145 array('BlogAura: Metro Post', $tick_mark, $tick_mark), 146 array('BlogAura: Recent Posts', $tick_mark, $tick_mark), 147 array('BlogAura: Currency Exchange', $cross_mark, $tick_mark), 148 array('BlogAura: Google Maps', $cross_mark, $tick_mark), 149 array('BlogAura: Weather', $cross_mark, $tick_mark), 150 array('BlogAura: Slider Posts', $tick_mark, $tick_mark), 151 array('BlogAura: Social Menu', $tick_mark, $tick_mark), 152 array('BlogAura: Tab Posts', $tick_mark, $tick_mark), 153 array('BlogAura: Youtube Video', $tick_mark, $tick_mark), 154 ), 155 ), 156 'Premium Elementor Widgets' => array( 157 'showFreePro' => true, 158 'items' => array( 159 array('Slider', $cross_mark, $tick_mark), 160 ), 161 ), 162 'BlogAura Widget Blocks' => array( 163 'showFreePro' => true, 164 'items' => array( 165 array('Block Style 1', $tick_mark, $tick_mark), 166 array('Block Style 2', $tick_mark, $tick_mark), 167 array('Block Style 3', $tick_mark, $tick_mark), 168 array('Block Style 4', $tick_mark, $tick_mark), 169 array('Block Style 5', $tick_mark, $tick_mark), 170 array('Block Style 6', $cross_mark, $tick_mark), 171 array('Block Style 7', $cross_mark, $tick_mark), 172 array('Block Style 8', $cross_mark, $tick_mark), 173 array('Block Style 9', $cross_mark, $tick_mark), 174 array('Block Style 10', $cross_mark, $tick_mark), 175 ), 176 ), 177 'BlogAura Widget Grid' => array( 178 'showFreePro' => true, 179 'items' => array( 180 array('Grid Style 1', $tick_mark, $tick_mark), 181 array('Grid Style 2', $tick_mark, $tick_mark), 182 array('Grid Style 3', $tick_mark, $tick_mark), 183 array('Grid Style 4', $tick_mark, $tick_mark), 184 array('Grid Style 5', $tick_mark, $tick_mark), 185 array('Grid Style 6', $cross_mark, $tick_mark), 186 array('Grid Style 7', $cross_mark, $tick_mark), 187 array('Grid Style 8', $cross_mark, $tick_mark), 188 array('Grid Style 9', $cross_mark, $tick_mark), 189 array('Grid Style 10', $cross_mark, $tick_mark), 190 ), 191 ), 192 'BlogAura Premium Only' => array( 193 'showFreePro' => true, 194 'items' => array( 195 array('Whitelist Theme Credit', $cross_mark, $tick_mark), 196 array('Webmasters Tools', $cross_mark, $tick_mark), 197 array('Meta Open Graph', $cross_mark, $tick_mark), 198 array('Twitter Summary Card', $cross_mark, $tick_mark), 199 ), 200 ), 201 'BlogAura Support Widgets' => array( 202 'showFreePro' => true, 203 'items' => array( 204 array('Support', 'WordPress.org Forum', 'Personalized Support through Email/Ticket System'), 205 ), 206 ), 207 ); 208 foreach ($features as $category => $feature) : 209 $show_free_pro = $feature['showFreePro']; 210 ?> 211 <tr class="compare-table-head"> 212 <td><?php $category; ?></td> 213 <?php if ($show_free_pro) : ?> 214 <td><?php esc_html_e('Free', 'blogaura'); ?></td> 215 <td><?php esc_html_e('Pro', 'blogaura'); ?></td> 216 <?php endif; ?> 217 </tr> 218 <?php foreach ($feature['items'] as $item) : ?> 219 <tr> 220 <td><?php echo esc_html($item[0]); ?></td> 221 <td><?php echo $item[1]; ?></td> 222 <td><?php echo $item[2]; ?></td> 223 </tr> 224 <?php endforeach; ?> 225 <?php endforeach; ?> 226 </tbody> 227 </table> 228 <div class="postbox blogaura-postbox-upsell"> 229 <div class="icon"> 230 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100" width="150px" height="150px"> 231 <path fill="#c7ede6" 232 d="M87.215,56.71C88.35,54.555,89,52.105,89,49.5c0-6.621-4.159-12.257-10.001-14.478C78.999,35.015,79,35.008,79,35c0-11.598-9.402-21-21-21c-9.784,0-17.981,6.701-20.313,15.757C36.211,29.272,34.638,29,33,29c-7.692,0-14.023,5.793-14.89,13.252C12.906,43.353,9,47.969,9,53.5C9,59.851,14.149,65,20.5,65c0.177,0,0.352-0.012,0.526-0.022C21.022,65.153,21,65.324,21,65.5C21,76.822,30.178,86,41.5,86c6.437,0,12.175-2.972,15.934-7.614C59.612,80.611,62.64,82,66,82c4.65,0,8.674-2.65,10.666-6.518C77.718,75.817,78.837,76,80,76c6.075,0,11-4.925,11-11C91,61.689,89.53,58.727,87.215,56.71z"/> 233 <path fill="#fff" 234 d="M15.5 51h-10C5.224 51 5 50.776 5 50.5S5.224 50 5.5 50h10c.276 0 .5.224.5.5S15.777 51 15.5 51zM18.5 51h-1c-.276 0-.5-.224-.5-.5s.224-.5.5-.5h1c.276 0 .5.224.5.5S18.777 51 18.5 51zM23.491 53H14.5c-.276 0-.5-.224-.5-.5s.224-.5.5-.5h8.991c.276 0 .5.224.5.5S23.767 53 23.491 53zM12.5 53h-1c-.276 0-.5-.224-.5-.5s.224-.5.5-.5h1c.276 0 .5.224.5.5S12.777 53 12.5 53zM9.5 53h-2C7.224 53 7 52.776 7 52.5S7.224 52 7.5 52h2c.276 0 .5.224.5.5S9.777 53 9.5 53zM15.5 55h-2c-.276 0-.5-.224-.5-.5s.224-.5.5-.5h2c.276 0 .5.224.5.5S15.776 55 15.5 55zM18.5 46c-.177 0-.823 0-1 0-.276 0-.5.224-.5.5s.224.5.5.5c.177 0 .823 0 1 0 .276 0 .5-.224.5-.5S18.776 46 18.5 46zM18.5 48c-.177 0-4.823 0-5 0-.276 0-.5.224-.5.5s.224.5.5.5c.177 0 4.823 0 5 0 .276 0 .5-.224.5-.5S18.776 48 18.5 48zM23.5 50c-.177 0-2.823 0-3 0-.276 0-.5.224-.5.5s.224.5.5.5c.177 0 2.823 0 3 0 .276 0 .5-.224.5-.5S23.776 50 23.5 50zM72.5 24h-10c-.276 0-.5-.224-.5-.5s.224-.5.5-.5h10c.276 0 .5.224.5.5S72.776 24 72.5 24zM76.5 24h-2c-.276 0-.5-.224-.5-.5s.224-.5.5-.5h2c.276 0 .5.224.5.5S76.776 24 76.5 24zM81.5 26h-10c-.276 0-.5-.224-.5-.5s.224-.5.5-.5h10c.276 0 .5.224.5.5S81.777 26 81.5 26zM69.5 26h-1c-.276 0-.5-.224-.5-.5s.224-.5.5-.5h1c.276 0 .5.224.5.5S69.776 26 69.5 26zM66.47 26H64.5c-.276 0-.5-.224-.5-.5s.224-.5.5-.5h1.97c.276 0 .5.224.5.5S66.746 26 66.47 26zM75.5 22h-5c-.276 0-.5-.224-.5-.5s.224-.5.5-.5h5c.276 0 .5.224.5.5S75.777 22 75.5 22zM72.5 28h-2c-.276 0-.5-.224-.5-.5s.224-.5.5-.5h2c.276 0 .5.224.5.5S72.776 28 72.5 28z"/> 235 <path fill="#508ecc" 236 d="M51.275,24.017C43.207,24.397,37,31.347,37,39.424V47h6v-7.692c0-4.794,3.617-8.979,8.401-9.289C56.643,29.68,61,33.831,61,39c0,1.657,1.343,3,3,3s3-1.343,3-3C67,30.475,59.889,23.611,51.275,24.017z"/> 237 <path fill="#472b29" 238 d="M52,24c-0.241,0-0.482,0.006-0.725,0.017C43.207,24.397,37,31.347,37,39.424V47h6v-7.692c0-4.794,3.617-8.979,8.401-9.289C51.602,30.006,51.802,30,52,30c4.971,0,9,4.029,9,9c0,1.657,1.343,3,3,3s3-1.343,3-3C67,30.716,60.284,24,52,24z M64,40.6c-0.882,0-1.6-0.718-1.6-1.6c0-5.735-4.665-10.4-10.4-10.4c-0.228,0-0.458,0.007-0.69,0.022c-5.445,0.353-9.711,5.046-9.711,10.686V45.6h-3.2v-6.176c0-7.513,5.684-13.666,12.941-14.008C51.562,25.405,51.781,25.4,52,25.4c7.499,0,13.6,6.101,13.6,13.6C65.6,39.882,64.882,40.6,64,40.6z"/> 239 <path fill="#7dafe2" 240 d="M67.6,45.5H36.4c-2.154,0-3.9,1.727-3.9,3.857v13.5c0,5.326,4.365,9.643,9.75,9.643h19.5c5.385,0,9.75-4.317,9.75-9.643v-13.5C71.5,47.227,69.754,45.5,67.6,45.5z"/> 241 <path fill="#f1bc19" d="M33 50H71V56.5H33z"/> 242 <path fill="#508ecc" 243 d="M54,62c0-1.105-0.895-2-2-2s-2,0.895-2,2c0,0.653,0.318,1.227,0.801,1.592L50,68h4l-0.801-4.408C53.682,63.227,54,62.653,54,62z"/> 244 <path fill="#472b29" 245 d="M68,45H36c-2.209,0-4,1.791-4,4v14c0,5.523,4.477,10,10,10h20c5.523,0,10-4.477,10-10V49C72,46.791,70.209,45,68,45z M70.6,63c0,4.742-3.858,8.6-8.6,8.6H42c-4.742,0-8.6-3.858-8.6-8.6V49c0-1.434,1.166-2.6,2.6-2.6h32c1.434,0,2.6,1.166,2.6,2.6V63z"/> 246 <path fill="#472b29" 247 d="M71 50h-3.5c-.276 0-.5.224-.5.5s.224.5.5.5H71c.276 0 .5-.224.5-.5S71.276 50 71 50zM64.5 51h-2c-.276 0-.5-.224-.5-.5s.224-.5.5-.5h2c.276 0 .5.224.5.5S64.776 51 64.5 51zM59.5 51H33c-.276 0-.5-.224-.5-.5S32.724 50 33 50h26.5c.276 0 .5.224.5.5S59.776 51 59.5 51zM71 57H33c-.276 0-.5-.224-.5-.5S32.724 56 33 56h38c.276 0 .5.224.5.5S71.276 57 71 57zM52 60.35c.91 0 1.65.74 1.65 1.65 0 .517-.241.995-.662 1.313-.106.08-.157.212-.134.342l.726 3.995h-3.161l.726-3.995c.024-.13-.028-.262-.134-.342-.42-.318-.661-.796-.661-1.313C50.35 61.09 51.09 60.35 52 60.35M52 60c-1.105 0-2 .895-2 2 0 .653.318 1.227.801 1.592L50 68h4l-.801-4.408C53.682 63.227 54 62.653 54 62 54 60.895 53.105 60 52 60L52 60z"/> 248 <path fill="#472b29" d="M31.441 53.322H38.771V53.673H31.441z" 249 transform="rotate(-54.984 35.106 53.497)"/> 250 <path fill="#472b29" d="M35.231 53.322H42.561V53.673H35.231z" 251 transform="rotate(-54.984 38.896 53.497)"/> 252 <path fill="#472b29" d="M38.94 53.322H46.269999999999996V53.673H38.94z" 253 transform="rotate(-54.984 42.606 53.497)"/> 254 <path fill="#472b29" d="M42.73 53.321H50.059999999999995V53.672H42.73z" 255 transform="rotate(-54.984 46.395 53.497)"/> 256 <path fill="#472b29" d="M46.44 53.321H53.769999999999996V53.672H46.44z" 257 transform="rotate(-54.984 50.105 53.497)"/> 258 <path fill="#472b29" d="M50.23 53.321H57.559999999999995V53.672H50.23z" 259 transform="rotate(-54.984 53.895 53.496)"/> 260 <path fill="#472b29" d="M53.94 53.321H61.269999999999996V53.672H53.94z" 261 transform="rotate(-54.984 57.605 53.496)"/> 262 <path fill="#472b29" d="M57.73 53.321H65.06V53.672H57.73z" transform="rotate(-54.984 61.395 53.496)"/> 263 <path fill="#472b29" d="M61.44 53.321H68.77V53.672H61.44z" transform="rotate(-54.984 65.105 53.496)"/> 264 <path fill="#472b29" d="M65.23 53.321H72.56V53.672H65.23z" transform="rotate(-54.984 68.895 53.496)"/> 265 <path fill="#fdfcef" 266 d="M87,67.5c-0.187,0-0.364,0.033-0.545,0.055C86.234,65.835,84.781,64.5,83,64.5c-1.087,0-2.045,0.505-2.687,1.282c0.11-0.412,0.187-0.836,0.187-1.282c0-2.761-2.239-5-5-5c-2.671,0-4.833,2.1-4.973,4.736C69.703,63.186,68.438,62.5,67,62.5c-2.485,0-4.5,2.015-4.5,4.5c0,0.187,0.033,0.364,0.055,0.545C60.282,67.771,58.5,69.667,58.5,72c0,2.485,2.015,4.5,4.5,4.5s7.125,0,7.125,0H77.5c0,0,7.015,0,9.5,0s4.5-2.015,4.5-4.5S89.485,67.5,87,67.5z"/> 267 <path fill="#472b29" 268 d="M87,67c-0.048,0-0.095,0.002-0.142,0.005C86.411,65.261,84.831,64,83,64c-0.71,0-1.398,0.192-2,0.547c0-0.016,0-0.031,0-0.047c0-3.033-2.467-5.5-5.5-5.5c-2.555,0-4.719,1.76-5.317,4.164C69.293,62.416,68.176,62,67,62c-2.757,0-5,2.243-5,5c0,0.041,0.001,0.082,0.003,0.123C59.689,67.587,58,69.603,58,72c0,2.757,2.243,5,5,5h6.5c0.276,0,0.5-0.224,0.5-0.5S69.776,76,69.5,76H63c-2.206,0-4-1.794-4-4c0-2.051,1.549-3.753,3.605-3.958c0.133-0.013,0.256-0.08,0.34-0.185s0.122-0.239,0.106-0.373l-0.019-0.141C63.017,67.23,63,67.117,63,67c0-2.206,1.794-4,4-4c1.221,0,2.362,0.563,3.133,1.545c0.096,0.123,0.242,0.192,0.392,0.192c0.051,0,0.102-0.008,0.152-0.024c0.199-0.063,0.338-0.242,0.349-0.45C71.153,61.872,73.119,60,75.5,60c2.481,0,4.5,2.019,4.5,4.5c0,0.352-0.054,0.718-0.169,1.153c-0.06,0.227,0.045,0.466,0.254,0.573c0.072,0.038,0.15,0.056,0.228,0.056c0.145,0,0.288-0.064,0.386-0.182C81.277,65.401,82.115,65,83,65c1.496,0,2.768,1.125,2.959,2.618c0.033,0.252,0.249,0.437,0.495,0.437c0.021,0,0.041-0.001,0.062-0.004l0.141-0.019C86.77,68.017,86.883,68,87,68c2.206,0,4,1.794,4,4s-1.794,4-4,4H72.5c-0.276,0-0.5,0.224-0.5,0.5s0.224,0.5,0.5,0.5H87c2.757,0,5-2.243,5-5S89.757,67,87,67z"/> 269 <path fill="#472b29" 270 d="M84.062 70c-.188 0-.381.022-.584.068C83.323 68.897 82.327 68 81.125 68c-.426 0-.845.119-1.212.341C79.609 66.999 78.403 66 77 66c-.256 0-.517.04-.819.126-.133.038-.21.176-.172.309.032.109.13.182.239.182.023 0 .047-.003.07-.01C76.575 66.534 76.792 66.5 77 66.5c1.288 0 2.377 1.012 2.481 2.305.007.095.067.177.155.212.03.013.061.019.093.019.059 0 .118-.022.165-.063.346-.305.784-.473 1.231-.473 1.034 0 1.875.841 1.875 1.875 0 .08.038.162.102.208.046.034.101.054.156.054.022 0 .045-.003.067-.01.268-.085.509-.127.738-.127 1.268 0 2.33.997 2.419 2.268C86.491 72.899 86.601 73 86.731 73c.006 0 .012 0 .018 0 .137-.01.241-.13.231-.268C86.873 71.2 85.591 70 84.062 70zM63.117 67.5c1.326 0 2.508.897 2.874 2.182.038.133-.039.271-.172.309C65.795 69.997 65.772 70 65.75 70c-.109 0-.209-.072-.24-.182C65.205 68.748 64.221 68 63.117 68c-.117 0-.23.014-.342.029-.012.002-.023.003-.035.003-.121 0-.229-.092-.246-.217-.019-.137.077-.263.214-.281C62.842 67.516 62.978 67.5 63.117 67.5L63.117 67.5z"/> 271 <path fill="#fdfcef" 272 d="M36.445,60.545C36.473,60.366,36.5,60.187,36.5,60c0-1.933-1.567-3.5-3.5-3.5c-1.032,0-1.95,0.455-2.59,1.165c-0.384-1.808-1.987-3.165-3.91-3.165c-2.209,0-4,1.791-4,4c0,0.191,0.03,0.374,0.056,0.558C22.128,58.714,21.592,58.5,21,58.5c-1.228,0-2.245,0.887-2.455,2.055C18.366,60.527,18.187,60.5,18,60.5c-1.933,0-3.5,1.567-3.5,3.5s1.567,3.5,3.5,3.5s7.5,0,7.5,0h7c0,0,1.567,0,3.5,0s3.5-1.567,3.5-3.5C39.5,62.219,38.165,60.766,36.445,60.545z"/> 273 <path fill="#472b29" 274 d="M34.25 63C34.112 63 34 62.888 34 62.75c0-1.223.995-2.218 2.218-2.218.034.009.737-.001 1.244.136.133.036.212.173.176.306-.036.134-.173.213-.306.176-.444-.12-1.1-.12-1.113-.118-.948 0-1.719.771-1.719 1.718C34.5 62.888 34.388 63 34.25 63zM27.5 67A.5.5 0 1 0 27.5 68 .5.5 0 1 0 27.5 67z"/> 275 <path fill="#472b29" 276 d="M36.996,60.142C36.999,60.095,37,60.048,37,60c0-2.206-1.794-4-4-4c-0.845,0-1.666,0.276-2.347,0.774C29.966,55.127,28.331,54,26.5,54c-2.374,0-4.324,1.847-4.489,4.18C21.689,58.061,21.349,58,21,58c-1.289,0-2.412,0.82-2.826,2.006C18.116,60.002,18.059,60,18,60c-2.206,0-4,1.794-4,4s1.794,4,4,4h7.5c0.276,0,0.5-0.224,0.5-0.5S25.776,67,25.5,67H18c-1.654,0-3-1.346-3-3s1.346-3,3-3c0.16,0,0.314,0.025,0.468,0.049c0.273,0.041,0.521-0.138,0.569-0.405C19.208,59.691,20.034,59,21,59c0.449,0,0.878,0.155,1.243,0.448c0.16,0.128,0.377,0.112,0.556,0.01s0.271-0.337,0.242-0.54C23.021,58.78,23,58.643,23,58.5c0-1.93,1.57-3.5,3.5-3.5c1.641,0,3.08,1.165,3.421,2.769c0.039,0.184,0.178,0.33,0.36,0.379c0.179,0.05,0.375-0.009,0.5-0.148c0.581-0.645,1.369-1,2.219-1c1.654,0,3,1.346,3,3c0,0.16-0.025,0.314-0.048,0.468c-0.021,0.133,0.013,0.269,0.094,0.377c0.081,0.108,0.202,0.178,0.336,0.196C37.875,61.232,39,62.504,39,64c0,1.654-1.346,3-3,3h-3.5c-0.276,0-0.5,0.224-0.5,0.5s0.224,0.5,0.5,0.5H36c2.206,0,4-1.794,4-4C40,62.169,38.739,60.59,36.996,60.142z"/> 277 <path fill="#472b29" 278 d="M30.5,67c-0.159,0-0.841,0-1,0c-0.276,0-0.5,0.224-0.5,0.5s0.224,0.5,0.5,0.5c0.159,0,0.841,0,1,0c0.276,0,0.5-0.224,0.5-0.5S30.776,67,30.5,67z"/> 279 </svg> 280 </div> 281 <h3><?php esc_html_e('Upgrade Now', 'blogaura'); ?></h3> 282 <p><?php echo __('Access all premium extensions, features, and upcoming updates right away by <br> upgrading to the Pro version.', 'blogaura'); ?></p> 283 <a href="<?php echo esc_url($this->theme_url); ?>#choose-pricing-plan" class="button button-secondary dashboard-button dashboard-button-primary" target="_blank"> 284 <?php esc_html_e('Get BlogAura Pro Now', 'blogaura'); ?> 285 </a> 286 </div> 166 <div class="blogaura-stack"> 167 <section class="blogaura-card blogaura-compare-wrap" aria-labelledby="blogaura-compare-title"> 168 <div class="blogaura-compare-head"> 169 <div> 170 <h2 id="blogaura-compare-title"><?php esc_html_e('Free vs Pro', 'blogaura'); ?></h2> 171 <p><?php echo esc_html(sprintf(/* translators: %s: theme name. */ __('Everything in %s, plus the extras in Pro.', 'blogaura'), $this->theme()->get('Name'))); ?></p> 172 </div> 173 <a class="blogaura-upgrade-button" href="<?php echo esc_url($this->theme_url . '#choose-pricing-plan'); ?>" target="_blank" rel="noopener"><?php BlogAura_Admin::the_icon('crown', 16); ?><?php esc_html_e('Upgrade to Pro', 'blogaura'); ?></a> 174 </div> 175 <div class="blogaura-compare-scroll"> 176 <table class="blogaura-compare"> 177 <thead> 178 <tr> 179 <th scope="col"><?php esc_html_e('Feature', 'blogaura'); ?></th> 180 <th scope="col"><?php esc_html_e('Free', 'blogaura'); ?></th> 181 <th scope="col"><?php esc_html_e('Pro', 'blogaura'); ?></th> 182 </tr> 183 </thead> 184 <?php foreach ($blogaura_features as $blogaura_group => $blogaura_rows) : ?> 185 <tbody> 186 <tr class="blogaura-compare__group"> 187 <th scope="colgroup" colspan="3"><?php echo esc_html($blogaura_group); ?></th> 188 </tr> 189 <?php foreach ($blogaura_rows as $blogaura_row) : ?> 190 <tr> 191 <th scope="row"><?php echo esc_html($blogaura_row[0]); ?></th> 192 <td><?php $blogaura_cell($blogaura_row[1]); ?></td> 193 <td><?php $blogaura_cell($blogaura_row[2]); ?></td> 194 </tr> 195 <?php endforeach; ?> 196 </tbody> 197 <?php endforeach; ?> 198 </table> 199 </div> 200 </section> 201 202 <section class="blogaura-upgrade" aria-labelledby="blogaura-upgrade-title"> 203 <div class="blogaura-upgrade__text"> 204 <span class="blogaura-upgrade__eyebrow"><?php BlogAura_Admin::the_icon('crown', 16); ?><?php echo esc_html(sprintf(/* translators: %s: theme name. */ __('%s Pro', 'blogaura'), $this->theme()->get('Name'))); ?></span> 205 <h2 id="blogaura-upgrade-title"><?php esc_html_e('Unlock every feature in the comparison above', 'blogaura'); ?></h2> 206 <ul> 207 <li><?php BlogAura_Admin::the_icon('check', 16); ?><?php esc_html_e('Dark mode', 'blogaura'); ?></li> 208 <li><?php BlogAura_Admin::the_icon('check', 16); ?><?php esc_html_e('Font size, family and weight controls', 'blogaura'); ?></li> 209 <li><?php BlogAura_Admin::the_icon('check', 16); ?><?php esc_html_e('Advanced colour options', 'blogaura'); ?></li> 210 <li><?php BlogAura_Admin::the_icon('check', 16); ?><?php esc_html_e('Accessibility toolbar for your visitors', 'blogaura'); ?></li> 211 <li><?php BlogAura_Admin::the_icon('check', 16); ?><?php esc_html_e('Our own SEO plugin, included', 'blogaura'); ?></li> 212 <li><?php BlogAura_Admin::the_icon('check', 16); ?><?php esc_html_e('Personal support by email and tickets', 'blogaura'); ?></li> 213 </ul> 214 </div> 215 <div class="blogaura-upgrade__actions"> 216 <a class="blogaura-upgrade-button blogaura-upgrade-button--large" href="<?php echo esc_url($this->theme_url . '#choose-pricing-plan'); ?>" target="_blank" rel="noopener"><?php BlogAura_Admin::the_icon('crown', 18); ?><?php esc_html_e('Upgrade to Pro', 'blogaura'); ?></a> 217 <a class="blogaura-link-strong" href="<?php echo esc_url($this->pro_demo_url); ?>" target="_blank" rel="noopener"><?php esc_html_e('View the Pro demo', 'blogaura'); ?> <span aria-hidden="true">→</span></a> 218 </div> 219 </section> 287 220 </div> -
blogaura/1.1.5/inc/admin/dashboard/views/help.php
r312189 r353892 1 1 <?php 2 if (!is_child_theme()) { 3 $theme = wp_get_theme(); 4 } else { 5 $theme = wp_get_theme()->parent(); 6 } 7 $star_icon = '<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path fill="currentColor" d="M24,9l-19.655,15l2.821,-8.866l-7.166,-6.134l9.153,0l2.846,-9l2.853,9l9.148,0Zm-4.216,15l-6.361,-4.429l3.872,-2.96l2.489,7.389Z" /></svg>'; 2 /** 3 * Dashboard › Help & support tab. 4 * 5 * Included from BlogAura_Dashboard::dashboard_page(), so $this is the dashboard. 6 * 7 * @package BlogAura 8 */ 9 defined('ABSPATH') || exit; 10 11 $blogaura_services = BlogAura_Admin::services(); 8 12 ?> 9 <div class="blogaura-dashboard-content blogaura-help-panel"> 10 <div class="dashboard-content-panel content-panel-lower"> 11 <div class="dashboard-content-left"> 12 <div class="blogaura-support-channels"> 13 <div class="postbox"> 14 <svg xmlns="http://www.w3.org/2000/svg" width="33" height="33" viewBox="0 0 33 33" fill="none"> 15 <path d="M19.833 3.00977H8.49967C7.79243 3.00977 7.11415 3.29072 6.61406 3.79081C6.11396 4.29091 5.83301 4.96919 5.83301 5.67643V27.0098C5.83301 27.717 6.11396 28.3953 6.61406 28.8954C7.11415 29.3955 7.79243 29.6764 8.49967 29.6764H24.4997C25.2069 29.6764 25.8852 29.3955 26.3853 28.8954C26.8854 28.3953 27.1663 27.717 27.1663 27.0098V10.3431L19.833 3.00977Z" 16 stroke="#2563EB" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> 17 <path d="M19.1665 3.00977V11.0098H27.1665" stroke="#2563EB" stroke-width="2" 18 stroke-linecap="round" stroke-linejoin="round"/> 19 <path d="M21.8332 17.6758H11.1665" stroke="#2563EB" stroke-width="2" stroke-linecap="round" 20 stroke-linejoin="round"/> 21 <path d="M21.8332 23.0098H11.1665" stroke="#2563EB" stroke-width="2" stroke-linecap="round" 22 stroke-linejoin="round"/> 23 <path d="M13.8332 12.3428H11.1665" stroke="#2563EB" stroke-width="2" stroke-linecap="round" 24 stroke-linejoin="round"/> 25 </svg> 26 <h3><?php esc_html_e('Read Theme Documentation', 'blogaura'); ?></h3> 27 <p><?php esc_html_e('Please check out basic documentation for detailed information on how to use BlogAura.', 'blogaura'); ?></p> 13 <div class="blogaura-layout"> 14 <div class="blogaura-layout__main blogaura-stack"> 28 15 29 <a href="<?php echo esc_url($this->doc_url); ?>" class="button button-secondary dashboard-button dashboard-button-primary" target="_blank"> 30 <?php esc_html_e('View Now', 'blogaura'); ?> 31 </a> 32 </div> 33 <div class="postbox"> 34 <svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 33 33" fill="none"> 35 <path d="M19.1667 20.3428V23.0094C19.1667 23.3631 19.0262 23.7022 18.7761 23.9523C18.5261 24.2023 18.187 24.3428 17.8333 24.3428H8.5L4.5 28.3428V15.0094C4.5 14.6558 4.64048 14.3167 4.89052 14.0666C5.14057 13.8166 5.47971 13.6761 5.83333 13.6761H8.5M28.5 19.0094L24.5 15.0094H15.1667C14.813 15.0094 14.4739 14.869 14.2239 14.6189C13.9738 14.3689 13.8333 14.0297 13.8333 13.6761V5.67611C13.8333 5.32248 13.9738 4.98335 14.2239 4.7333C14.4739 4.48325 14.813 4.34277 15.1667 4.34277H27.1667C27.5203 4.34277 27.8594 4.48325 28.1095 4.7333C28.3595 4.98335 28.5 5.32248 28.5 5.67611V19.0094Z" stroke="#2563EB" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> 36 </svg> 37 <h3><?php esc_html_e('Support', 'blogaura'); ?></h3> 38 <p><?php esc_html_e('We would be happy to guide you through any issues and queries you have regarding BlogAura!', 'blogaura'); ?></p> 39 40 41 <?php if (!$this->pro_status) { ?> 42 <a href="<?php echo esc_url($this->community_url); ?>" class="button button-secondary dashboard-button dashboard-button-primary" target="_blank"> 43 <?php esc_html_e('Community Support', 'blogaura'); ?> 44 </a> 45 <?php } else { ?> 46 <a href="<?php echo esc_url($this->support_url); ?>" class="button button-secondary dashboard-button dashboard-button-secondary" target="_blank"> 47 <?php esc_html_e('Contact Support', 'blogaura'); ?> 48 </a> 49 <?php } ?> 50 51 </div> 52 </div> 53 <h2><?php esc_html_e('Join Our Community', 'blogaura'); ?></h2> 54 <div class="postbox blogaura-postbox-community"> 55 <div class="community-image"> 56 <img src="<?php echo esc_url(BLOGAURA_PARENT_URL . '/inc/admin/dashboard/images/facebook.webp'); ?>" alt="<?php esc_attr_e('facebook', 'blogaura'); ?>"> 57 </div> 58 <div class="community-details"> 59 <h3><?php esc_html_e('Facebook Community', 'blogaura'); ?></h3> 60 <p><?php esc_html_e('Join our Facebook haven, where the latest news and updates eagerly await your arrival.', 'blogaura'); ?></p> 61 <a href="<?php echo esc_url($this->facebook_url); ?>" class="button button-secondary dashboard-button dashboard-button-secondary" target="_blank"><?php esc_html_e('Like or follow us on Facebook', 'blogaura'); ?></a> 62 </div> 63 </div> 64 <div class="postbox blogaura-postbox-community"> 65 <div class="community-image"> 66 <img src="<?php echo esc_url(BLOGAURA_PARENT_URL . '/inc/admin/dashboard/images/x.webp'); ?>" alt="<?php esc_attr_e('x', 'blogaura'); ?>"> 67 </div> 68 <div class="community-details"> 69 <h3><?php esc_html_e('X Community', 'blogaura'); ?></h3> 70 <p><?php esc_html_e('Join our Twitter haven, where the latest news and updates eagerly await your arrival.', 'blogaura'); ?></p> 71 <a href="<?php echo esc_url($this->x_url); ?>" class="button button-secondary dashboard-button dashboard-button-secondary" target="_blank"><?php esc_html_e('Connect with us on X', 'blogaura'); ?></a> 72 </div> 73 </div> 74 <div class="postbox blogaura-postbox-community"> 75 <div class="community-image"> 76 <img src="<?php echo esc_url(BLOGAURA_PARENT_URL . '/inc/admin/dashboard/images/youtube.webp'); ?>" alt="<?php esc_attr_e('youtube', 'blogaura'); ?>"> 77 </div> 78 <div class="community-details"> 79 <h3><?php esc_html_e('Youtube Community', 'blogaura'); ?></h3> 80 <p><?php esc_html_e('Join our YouTube haven, where the latest news and updates eagerly await your arrival.', 'blogaura'); ?></p> 81 <a href="<?php echo esc_url($this->youtube_url); ?>" class="button button-secondary dashboard-button dashboard-button-secondary" target="_blank"><?php esc_html_e('Subscribe', 'blogaura'); ?></a> 82 </div> 83 </div> 84 </div> 85 <div class="dashboard-content-right"> 86 <div class="postbox blogaura-postbox-review"> 87 <div class="postbox-header"> 88 <h3 class="hndle"> 89 <?php esc_html_e('Leave us a Review', 'blogaura'); ?> 90 </h3> 91 <div class="hndle-controller"> 92 <svg xmlns="http://www.w3.org/2000/svg" width="21" height="20" viewBox="0 0 21 20" fill="none"> 93 <path d="M10.5001 1.66699L13.0751 6.88366L18.8334 7.72533L14.6667 11.7837L15.6501 17.517L10.5001 14.8087L5.35008 17.517L6.33341 11.7837L2.16675 7.72533L7.92508 6.88366L10.5001 1.66699Z" 94 stroke="#2563EB" stroke-width="1.66667" stroke-linecap="round" 95 stroke-linejoin="round"/> 96 </svg> 97 </div> 98 </div> 99 <div class="inside"> 100 <div class="ratings"> 101 102 <?php 103 echo $star_icon; 104 echo $star_icon; 105 echo $star_icon; 106 echo $star_icon; 107 echo $star_icon; 108 ?> 109 110 111 </div> 112 <div><?php esc_html_e('Based on 20+ Reviews', 'blogaura'); ?></div> 113 <p> 114 <?php 115 echo sprintf( 116 /* translators: %s: Theme Name. */ 117 esc_html__('Sharing your review is a valuable way to help us enhance your experience.', 'blogaura'), 118 $theme->Name 119 ); 120 ?> 121 </p> 122 <a href="<?php echo esc_url('https://wordpress.org/support/theme/blogaura/reviews/?rate=5#new-post'); ?>" 123 target="_blank"><?php esc_html_e('Submit a Review', 'blogaura'); ?></a> 124 </div> 125 </div> 126 127 <div class="postbox blogaura-postbox-plugins"> 128 <div class="postbox-header"> 129 <h3 class="hndle"> 130 <?php esc_html_e('Useful Plugins', 'blogaura'); ?> 131 </h3> 132 <div class="hndle-controller"> 133 <span class="dashicons dashicons-admin-plugins"></span> 134 </div> 135 </div> 136 <div class="inside"> 137 <?php 138 $plugins = array( 139 array( 140 'name' => 'One Click Demo Import', 141 'file' => 'one-click-demo-import/one-click-demo-import.php', 142 'slug' => 'one-click-demo-import', 143 'color' => '#5317AA', 144 'image' => BLOGAURA_PARENT_URL . '/inc/admin/dashboard/images/ocdi-256x256.webp', 145 ), 146 ); 147 // Loop through the plugins 148 foreach ($plugins as $plugin) { 149 $plugin_name = $plugin['name']; 150 $plugin_file = $plugin['file']; 151 $plugin_slug = $plugin['slug']; 152 $is_plugin_installed = blogaura_is_plugin_installed($plugin_file); 153 $is_plugin_activated = is_plugin_active($plugin_file); 154 ?> 155 <div class="postbox-recommended-plugin"> 156 <div class="recommended-plugin-content"> 157 <img class="<?php echo $plugin_slug; ?>-logo" src="<?php echo $plugin['image']; ?>" width="100" height="100" alt="<?php echo $plugin['name']; ?>"> 158 <h4><?php echo esc_html($plugin['name']); ?></h4> 159 </div> 160 <?php if ($is_plugin_installed) : ?> 161 <?php if ($is_plugin_activated) : ?> 162 <div class="recommended-plugin-action"><?php esc_html_e('Activated', 'blogaura'); ?></div> 163 <?php else : ?> 164 <div class="recommended-plugin-action"> 165 <a href="#" class="activate-plugin" data-plugin="<?php echo esc_attr($plugin_file); ?>" data-slug="<?php echo esc_attr($plugin_slug); ?> "><?php esc_html_e('Activate', 'blogaura'); ?></a> 166 </div> 167 <?php endif; ?> 168 <?php else : ?> 169 <div class="recommended-plugin-action"> 170 <a href="#" class="install-plugin" data-plugin="<?php echo esc_attr($plugin_file); ?>" data-slug="<?php echo esc_attr($plugin_slug); ?> "><?php esc_html_e('Install', 'blogaura'); ?></a> 171 </div> 172 <?php endif; ?> 173 </div> 174 <?php 175 } 176 ?> 177 </div> 178 </div> 16 <div class="blogaura-grid"> 17 <a class="blogaura-card blogaura-service" href="<?php echo esc_url($this->doc_url); ?>" target="_blank" rel="noopener"> 18 <span class="blogaura-tile"><?php BlogAura_Admin::the_icon('book', 20); ?></span> 19 <span class="blogaura-service__title"><?php esc_html_e('Documentation', 'blogaura'); ?></span> 20 <span class="blogaura-service__desc"><?php echo esc_html(sprintf(/* translators: %s: theme name. */ __('Step-by-step guides for every %s setting.', 'blogaura'), $this->theme()->get('Name'))); ?></span> 21 <span class="blogaura-service__more"><?php esc_html_e('Read the docs', 'blogaura'); ?> <span aria-hidden="true">→</span></span> 22 </a> 23 <?php if ($this->pro_status) : ?> 24 <a class="blogaura-card blogaura-service" href="<?php echo esc_url($this->support_url); ?>" target="_blank" rel="noopener"> 25 <span class="blogaura-tile"><?php BlogAura_Admin::the_icon('chat', 20); ?></span> 26 <span class="blogaura-service__title"><?php esc_html_e('Priority support', 'blogaura'); ?></span> 27 <span class="blogaura-service__desc"><?php esc_html_e('Open a ticket and our team will get back to you by email.', 'blogaura'); ?></span> 28 <span class="blogaura-service__more"><?php esc_html_e('Create a ticket', 'blogaura'); ?> <span aria-hidden="true">→</span></span> 29 </a> 30 <?php else : ?> 31 <a class="blogaura-card blogaura-service" href="<?php echo esc_url($this->community_url); ?>" target="_blank" rel="noopener"> 32 <span class="blogaura-tile"><?php BlogAura_Admin::the_icon('chat', 20); ?></span> 33 <span class="blogaura-service__title"><?php esc_html_e('Community support', 'blogaura'); ?></span> 34 <span class="blogaura-service__desc"><?php esc_html_e('Ask a question on the WordPress.org support forum.', 'blogaura'); ?></span> 35 <span class="blogaura-service__more"><?php esc_html_e('Visit the forum', 'blogaura'); ?> <span aria-hidden="true">→</span></span> 36 </a> 37 <?php endif; ?> 38 <a class="blogaura-card blogaura-service" href="<?php echo esc_url($blogaura_services['items'][4]['url']); ?>" target="_blank" rel="noopener"> 39 <span class="blogaura-tile"><?php BlogAura_Admin::the_icon('headset', 20); ?></span> 40 <span class="blogaura-service__title"><?php echo esc_html($blogaura_services['items'][4]['title']); ?></span> 41 <span class="blogaura-service__desc"><?php echo esc_html($blogaura_services['items'][4]['description']); ?></span> 42 <span class="blogaura-service__more"><?php esc_html_e('Learn more', 'blogaura'); ?> <span aria-hidden="true">→</span></span> 43 </a> 44 <button type="button" class="blogaura-card blogaura-service" data-blogaura-changelog-open aria-haspopup="dialog" aria-controls="blogaura-changelog"> 45 <span class="blogaura-tile"><?php BlogAura_Admin::the_icon('clock', 20); ?></span> 46 <span class="blogaura-service__title"><?php esc_html_e('What’s new', 'blogaura'); ?></span> 47 <span class="blogaura-service__desc"><?php echo esc_html(sprintf(/* translators: %s: theme version. */ __('New features, improvements and fixes in version %s and earlier.', 'blogaura'), $this->theme()->get('Version'))); ?></span> 48 <span class="blogaura-service__more"><?php esc_html_e('View changelog', 'blogaura'); ?> <span aria-hidden="true">→</span></span> 49 </button> 179 50 </div> 180 51 </div> 52 53 <aside class="blogaura-layout__side"> 54 <section class="blogaura-card blogaura-links" aria-labelledby="blogaura-community-title"> 55 <h2 id="blogaura-community-title" class="blogaura-eyebrow"><?php esc_html_e('Community', 'blogaura'); ?></h2> 56 <a href="<?php echo esc_url($this->facebook_url); ?>" target="_blank" rel="noopener"><?php BlogAura_Admin::the_icon('external', 18); ?><span><?php esc_html_e('Facebook', 'blogaura'); ?></span></a> 57 <a href="<?php echo esc_url($this->x_url); ?>" target="_blank" rel="noopener"><?php BlogAura_Admin::the_icon('external', 18); ?><span><?php esc_html_e('X (Twitter)', 'blogaura'); ?></span></a> 58 <a href="<?php echo esc_url($this->youtube_url); ?>" target="_blank" rel="noopener"><?php BlogAura_Admin::the_icon('external', 18); ?><span><?php esc_html_e('YouTube', 'blogaura'); ?></span></a> 59 </section> 60 <?php if (!$this->pro_status) : ?> 61 <section class="blogaura-card blogaura-review" aria-labelledby="blogaura-help-review-title"> 62 <h2 id="blogaura-help-review-title"><?php esc_html_e('Leave us a review', 'blogaura'); ?></h2> 63 <p><?php esc_html_e('Sharing your experience helps us improve the theme.', 'blogaura'); ?></p> 64 <a class="blogaura-link-strong" href="<?php echo esc_url($this->review_url); ?>" target="_blank" rel="noopener"><?php esc_html_e('Write a review', 'blogaura'); ?> <span aria-hidden="true">→</span></a> 65 </section> 66 <?php endif; ?> 67 </aside> 181 68 </div> -
blogaura/1.1.5/inc/admin/dashboard/views/starter-templates.php
r312189 r353892 1 <?php 2 /** 3 * Dashboard › Starter sites tab. 4 * 5 * Lists the starter sites registered with One Click Demo Import (by WPInterface Add-ons in 6 * the free theme, by the bundled demos in Pro). The theme only links to the importer; the 7 * import itself runs in One Click Demo Import. 8 * 9 * Included from BlogAura_Dashboard::dashboard_page(), so $this is the dashboard. 10 * 11 * @package BlogAura 12 */ 13 defined('ABSPATH') || exit; 1 14 2 <div class="blogaura-dashboard-content blogaura-starter-panel"> 15 $blogaura_sites = BlogAura_Admin::starter_sites(); 16 $blogaura_services = BlogAura_Admin::services(); 17 $blogaura_name = $this->theme()->get('Name'); 3 18 4 <?php // Check if TDI is installed but not activated or not installed at all or installed and activated. 5 $plugins = get_plugins(); 6 if (is_plugin_active('wpinterface-add-ons/wpinterface-add-ons.php') && is_plugin_active('one-click-demo-import/one-click-demo-import.php')) { 7 do_action('wpinterface_add_ons_starter_templates'); 8 } else { ?> 9 <div class="starter-templates-notification"> 10 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100" width="150px" height="150px"><path fill="#c7ede6" d="M87.215,56.71C88.35,54.555,89,52.105,89,49.5c0-6.621-4.159-12.257-10.001-14.478C78.999,35.015,79,35.008,79,35c0-11.598-9.402-21-21-21c-9.784,0-17.981,6.701-20.313,15.757C36.211,29.272,34.638,29,33,29c-7.692,0-14.023,5.793-14.89,13.252C12.906,43.353,9,47.969,9,53.5C9,59.851,14.149,65,20.5,65c0.177,0,0.352-0.012,0.526-0.022C21.022,65.153,21,65.324,21,65.5C21,76.822,30.178,86,41.5,86c6.437,0,12.175-2.972,15.934-7.614C59.612,80.611,62.64,82,66,82c4.65,0,8.674-2.65,10.666-6.518C77.718,75.817,78.837,76,80,76c6.075,0,11-4.925,11-11C91,61.689,89.53,58.727,87.215,56.71z"/><path fill="#fff" d="M15.5 51h-10C5.224 51 5 50.776 5 50.5S5.224 50 5.5 50h10c.276 0 .5.224.5.5S15.777 51 15.5 51zM18.5 51h-1c-.276 0-.5-.224-.5-.5s.224-.5.5-.5h1c.276 0 .5.224.5.5S18.777 51 18.5 51zM23.491 53H14.5c-.276 0-.5-.224-.5-.5s.224-.5.5-.5h8.991c.276 0 .5.224.5.5S23.767 53 23.491 53zM12.5 53h-1c-.276 0-.5-.224-.5-.5s.224-.5.5-.5h1c.276 0 .5.224.5.5S12.777 53 12.5 53zM9.5 53h-2C7.224 53 7 52.776 7 52.5S7.224 52 7.5 52h2c.276 0 .5.224.5.5S9.777 53 9.5 53zM15.5 55h-2c-.276 0-.5-.224-.5-.5s.224-.5.5-.5h2c.276 0 .5.224.5.5S15.776 55 15.5 55zM18.5 46c-.177 0-.823 0-1 0-.276 0-.5.224-.5.5s.224.5.5.5c.177 0 .823 0 1 0 .276 0 .5-.224.5-.5S18.776 46 18.5 46zM18.5 48c-.177 0-4.823 0-5 0-.276 0-.5.224-.5.5s.224.5.5.5c.177 0 4.823 0 5 0 .276 0 .5-.224.5-.5S18.776 48 18.5 48zM23.5 50c-.177 0-2.823 0-3 0-.276 0-.5.224-.5.5s.224.5.5.5c.177 0 2.823 0 3 0 .276 0 .5-.224.5-.5S23.776 50 23.5 50zM72.5 24h-10c-.276 0-.5-.224-.5-.5s.224-.5.5-.5h10c.276 0 .5.224.5.5S72.776 24 72.5 24zM76.5 24h-2c-.276 0-.5-.224-.5-.5s.224-.5.5-.5h2c.276 0 .5.224.5.5S76.776 24 76.5 24zM81.5 26h-10c-.276 0-.5-.224-.5-.5s.224-.5.5-.5h10c.276 0 .5.224.5.5S81.777 26 81.5 26zM69.5 26h-1c-.276 0-.5-.224-.5-.5s.224-.5.5-.5h1c.276 0 .5.224.5.5S69.776 26 69.5 26zM66.47 26H64.5c-.276 0-.5-.224-.5-.5s.224-.5.5-.5h1.97c.276 0 .5.224.5.5S66.746 26 66.47 26zM75.5 22h-5c-.276 0-.5-.224-.5-.5s.224-.5.5-.5h5c.276 0 .5.224.5.5S75.777 22 75.5 22zM72.5 28h-2c-.276 0-.5-.224-.5-.5s.224-.5.5-.5h2c.276 0 .5.224.5.5S72.776 28 72.5 28z"/><path fill="#508ecc" d="M51.275,24.017C43.207,24.397,37,31.347,37,39.424V47h6v-7.692c0-4.794,3.617-8.979,8.401-9.289C56.643,29.68,61,33.831,61,39c0,1.657,1.343,3,3,3s3-1.343,3-3C67,30.475,59.889,23.611,51.275,24.017z"/><path fill="#472b29" d="M52,24c-0.241,0-0.482,0.006-0.725,0.017C43.207,24.397,37,31.347,37,39.424V47h6v-7.692c0-4.794,3.617-8.979,8.401-9.289C51.602,30.006,51.802,30,52,30c4.971,0,9,4.029,9,9c0,1.657,1.343,3,3,3s3-1.343,3-3C67,30.716,60.284,24,52,24z M64,40.6c-0.882,0-1.6-0.718-1.6-1.6c0-5.735-4.665-10.4-10.4-10.4c-0.228,0-0.458,0.007-0.69,0.022c-5.445,0.353-9.711,5.046-9.711,10.686V45.6h-3.2v-6.176c0-7.513,5.684-13.666,12.941-14.008C51.562,25.405,51.781,25.4,52,25.4c7.499,0,13.6,6.101,13.6,13.6C65.6,39.882,64.882,40.6,64,40.6z"/><path fill="#7dafe2" d="M67.6,45.5H36.4c-2.154,0-3.9,1.727-3.9,3.857v13.5c0,5.326,4.365,9.643,9.75,9.643h19.5c5.385,0,9.75-4.317,9.75-9.643v-13.5C71.5,47.227,69.754,45.5,67.6,45.5z"/><path fill="#f1bc19" d="M33 50H71V56.5H33z"/><path fill="#508ecc" d="M54,62c0-1.105-0.895-2-2-2s-2,0.895-2,2c0,0.653,0.318,1.227,0.801,1.592L50,68h4l-0.801-4.408C53.682,63.227,54,62.653,54,62z"/><path fill="#472b29" d="M68,45H36c-2.209,0-4,1.791-4,4v14c0,5.523,4.477,10,10,10h20c5.523,0,10-4.477,10-10V49C72,46.791,70.209,45,68,45z M70.6,63c0,4.742-3.858,8.6-8.6,8.6H42c-4.742,0-8.6-3.858-8.6-8.6V49c0-1.434,1.166-2.6,2.6-2.6h32c1.434,0,2.6,1.166,2.6,2.6V63z"/><path fill="#472b29" d="M71 50h-3.5c-.276 0-.5.224-.5.5s.224.5.5.5H71c.276 0 .5-.224.5-.5S71.276 50 71 50zM64.5 51h-2c-.276 0-.5-.224-.5-.5s.224-.5.5-.5h2c.276 0 .5.224.5.5S64.776 51 64.5 51zM59.5 51H33c-.276 0-.5-.224-.5-.5S32.724 50 33 50h26.5c.276 0 .5.224.5.5S59.776 51 59.5 51zM71 57H33c-.276 0-.5-.224-.5-.5S32.724 56 33 56h38c.276 0 .5.224.5.5S71.276 57 71 57zM52 60.35c.91 0 1.65.74 1.65 1.65 0 .517-.241.995-.662 1.313-.106.08-.157.212-.134.342l.726 3.995h-3.161l.726-3.995c.024-.13-.028-.262-.134-.342-.42-.318-.661-.796-.661-1.313C50.35 61.09 51.09 60.35 52 60.35M52 60c-1.105 0-2 .895-2 2 0 .653.318 1.227.801 1.592L50 68h4l-.801-4.408C53.682 63.227 54 62.653 54 62 54 60.895 53.105 60 52 60L52 60z"/><path fill="#472b29" d="M31.441 53.322H38.771V53.673H31.441z" transform="rotate(-54.984 35.106 53.497)"/><path fill="#472b29" d="M35.231 53.322H42.561V53.673H35.231z" transform="rotate(-54.984 38.896 53.497)"/><path fill="#472b29" d="M38.94 53.322H46.269999999999996V53.673H38.94z" transform="rotate(-54.984 42.606 53.497)"/><path fill="#472b29" d="M42.73 53.321H50.059999999999995V53.672H42.73z" transform="rotate(-54.984 46.395 53.497)"/><path fill="#472b29" d="M46.44 53.321H53.769999999999996V53.672H46.44z" transform="rotate(-54.984 50.105 53.497)"/><path fill="#472b29" d="M50.23 53.321H57.559999999999995V53.672H50.23z" transform="rotate(-54.984 53.895 53.496)"/><path fill="#472b29" d="M53.94 53.321H61.269999999999996V53.672H53.94z" transform="rotate(-54.984 57.605 53.496)"/><path fill="#472b29" d="M57.73 53.321H65.06V53.672H57.73z" transform="rotate(-54.984 61.395 53.496)"/><path fill="#472b29" d="M61.44 53.321H68.77V53.672H61.44z" transform="rotate(-54.984 65.105 53.496)"/><path fill="#472b29" d="M65.23 53.321H72.56V53.672H65.23z" transform="rotate(-54.984 68.895 53.496)"/><path fill="#fdfcef" d="M87,67.5c-0.187,0-0.364,0.033-0.545,0.055C86.234,65.835,84.781,64.5,83,64.5c-1.087,0-2.045,0.505-2.687,1.282c0.11-0.412,0.187-0.836,0.187-1.282c0-2.761-2.239-5-5-5c-2.671,0-4.833,2.1-4.973,4.736C69.703,63.186,68.438,62.5,67,62.5c-2.485,0-4.5,2.015-4.5,4.5c0,0.187,0.033,0.364,0.055,0.545C60.282,67.771,58.5,69.667,58.5,72c0,2.485,2.015,4.5,4.5,4.5s7.125,0,7.125,0H77.5c0,0,7.015,0,9.5,0s4.5-2.015,4.5-4.5S89.485,67.5,87,67.5z"/><path fill="#472b29" d="M87,67c-0.048,0-0.095,0.002-0.142,0.005C86.411,65.261,84.831,64,83,64c-0.71,0-1.398,0.192-2,0.547c0-0.016,0-0.031,0-0.047c0-3.033-2.467-5.5-5.5-5.5c-2.555,0-4.719,1.76-5.317,4.164C69.293,62.416,68.176,62,67,62c-2.757,0-5,2.243-5,5c0,0.041,0.001,0.082,0.003,0.123C59.689,67.587,58,69.603,58,72c0,2.757,2.243,5,5,5h6.5c0.276,0,0.5-0.224,0.5-0.5S69.776,76,69.5,76H63c-2.206,0-4-1.794-4-4c0-2.051,1.549-3.753,3.605-3.958c0.133-0.013,0.256-0.08,0.34-0.185s0.122-0.239,0.106-0.373l-0.019-0.141C63.017,67.23,63,67.117,63,67c0-2.206,1.794-4,4-4c1.221,0,2.362,0.563,3.133,1.545c0.096,0.123,0.242,0.192,0.392,0.192c0.051,0,0.102-0.008,0.152-0.024c0.199-0.063,0.338-0.242,0.349-0.45C71.153,61.872,73.119,60,75.5,60c2.481,0,4.5,2.019,4.5,4.5c0,0.352-0.054,0.718-0.169,1.153c-0.06,0.227,0.045,0.466,0.254,0.573c0.072,0.038,0.15,0.056,0.228,0.056c0.145,0,0.288-0.064,0.386-0.182C81.277,65.401,82.115,65,83,65c1.496,0,2.768,1.125,2.959,2.618c0.033,0.252,0.249,0.437,0.495,0.437c0.021,0,0.041-0.001,0.062-0.004l0.141-0.019C86.77,68.017,86.883,68,87,68c2.206,0,4,1.794,4,4s-1.794,4-4,4H72.5c-0.276,0-0.5,0.224-0.5,0.5s0.224,0.5,0.5,0.5H87c2.757,0,5-2.243,5-5S89.757,67,87,67z"/><path fill="#472b29" d="M84.062 70c-.188 0-.381.022-.584.068C83.323 68.897 82.327 68 81.125 68c-.426 0-.845.119-1.212.341C79.609 66.999 78.403 66 77 66c-.256 0-.517.04-.819.126-.133.038-.21.176-.172.309.032.109.13.182.239.182.023 0 .047-.003.07-.01C76.575 66.534 76.792 66.5 77 66.5c1.288 0 2.377 1.012 2.481 2.305.007.095.067.177.155.212.03.013.061.019.093.019.059 0 .118-.022.165-.063.346-.305.784-.473 1.231-.473 1.034 0 1.875.841 1.875 1.875 0 .08.038.162.102.208.046.034.101.054.156.054.022 0 .045-.003.067-.01.268-.085.509-.127.738-.127 1.268 0 2.33.997 2.419 2.268C86.491 72.899 86.601 73 86.731 73c.006 0 .012 0 .018 0 .137-.01.241-.13.231-.268C86.873 71.2 85.591 70 84.062 70zM63.117 67.5c1.326 0 2.508.897 2.874 2.182.038.133-.039.271-.172.309C65.795 69.997 65.772 70 65.75 70c-.109 0-.209-.072-.24-.182C65.205 68.748 64.221 68 63.117 68c-.117 0-.23.014-.342.029-.012.002-.023.003-.035.003-.121 0-.229-.092-.246-.217-.019-.137.077-.263.214-.281C62.842 67.516 62.978 67.5 63.117 67.5L63.117 67.5z"/><path fill="#fdfcef" d="M36.445,60.545C36.473,60.366,36.5,60.187,36.5,60c0-1.933-1.567-3.5-3.5-3.5c-1.032,0-1.95,0.455-2.59,1.165c-0.384-1.808-1.987-3.165-3.91-3.165c-2.209,0-4,1.791-4,4c0,0.191,0.03,0.374,0.056,0.558C22.128,58.714,21.592,58.5,21,58.5c-1.228,0-2.245,0.887-2.455,2.055C18.366,60.527,18.187,60.5,18,60.5c-1.933,0-3.5,1.567-3.5,3.5s1.567,3.5,3.5,3.5s7.5,0,7.5,0h7c0,0,1.567,0,3.5,0s3.5-1.567,3.5-3.5C39.5,62.219,38.165,60.766,36.445,60.545z"/><path fill="#472b29" d="M34.25 63C34.112 63 34 62.888 34 62.75c0-1.223.995-2.218 2.218-2.218.034.009.737-.001 1.244.136.133.036.212.173.176.306-.036.134-.173.213-.306.176-.444-.12-1.1-.12-1.113-.118-.948 0-1.719.771-1.719 1.718C34.5 62.888 34.388 63 34.25 63zM27.5 67A.5.5 0 1 0 27.5 68 .5.5 0 1 0 27.5 67z"/><path fill="#472b29" d="M36.996,60.142C36.999,60.095,37,60.048,37,60c0-2.206-1.794-4-4-4c-0.845,0-1.666,0.276-2.347,0.774C29.966,55.127,28.331,54,26.5,54c-2.374,0-4.324,1.847-4.489,4.18C21.689,58.061,21.349,58,21,58c-1.289,0-2.412,0.82-2.826,2.006C18.116,60.002,18.059,60,18,60c-2.206,0-4,1.794-4,4s1.794,4,4,4h7.5c0.276,0,0.5-0.224,0.5-0.5S25.776,67,25.5,67H18c-1.654,0-3-1.346-3-3s1.346-3,3-3c0.16,0,0.314,0.025,0.468,0.049c0.273,0.041,0.521-0.138,0.569-0.405C19.208,59.691,20.034,59,21,59c0.449,0,0.878,0.155,1.243,0.448c0.16,0.128,0.377,0.112,0.556,0.01s0.271-0.337,0.242-0.54C23.021,58.78,23,58.643,23,58.5c0-1.93,1.57-3.5,3.5-3.5c1.641,0,3.08,1.165,3.421,2.769c0.039,0.184,0.178,0.33,0.36,0.379c0.179,0.05,0.375-0.009,0.5-0.148c0.581-0.645,1.369-1,2.219-1c1.654,0,3,1.346,3,3c0,0.16-0.025,0.314-0.048,0.468c-0.021,0.133,0.013,0.269,0.094,0.377c0.081,0.108,0.202,0.178,0.336,0.196C37.875,61.232,39,62.504,39,64c0,1.654-1.346,3-3,3h-3.5c-0.276,0-0.5,0.224-0.5,0.5s0.224,0.5,0.5,0.5H36c2.206,0,4-1.794,4-4C40,62.169,38.739,60.59,36.996,60.142z"/><path fill="#472b29" d="M30.5,67c-0.159,0-0.841,0-1,0c-0.276,0-0.5,0.224-0.5,0.5s0.224,0.5,0.5,0.5c0.159,0,0.841,0,1,0c0.276,0,0.5-0.224,0.5-0.5S30.776,67,30.5,67z"/></svg> 11 <p> 12 <?php echo __( 'To import starter sites for BlogAura, you need to install and activate the One-Click Demo Import and WPInterface Add-ons plugins.', 'blogaura' ); ?> 13 </p> 14 </div> 15 <?php } ?> 19 // Free theme: the Pro starter site, shown with an upgrade link (it cannot be imported here). 20 $blogaura_pro_card = static function ($dashboard, $name) { 21 if (BlogAura_Admin::PRO) { 22 return; 23 } 24 $pro_name = sprintf(/* translators: %s: theme name. */ __('%s Pro', 'blogaura'), $name); 25 ?> 26 <article class="blogaura-site blogaura-site--pro"> 27 <div class="blogaura-site__shot"> 28 <span class="blogaura-site__badge"><?php BlogAura_Admin::the_icon('crown', 14); ?><?php esc_html_e('Pro', 'blogaura'); ?></span> 29 <img src="<?php echo esc_url(BlogAura_Admin::image_url('pro-starter.webp')); ?>" width="600" height="450" alt="<?php echo esc_attr(sprintf(/* translators: %s: starter site name. */ __('%s starter site preview', 'blogaura'), $pro_name)); ?>" loading="lazy" decoding="async"> 30 </div> 31 <div class="blogaura-site__body"> 32 <h3 class="blogaura-site__name"><?php echo esc_html($pro_name); ?></h3> 33 <p class="blogaura-site__note"><?php esc_html_e('Included with the Pro version, together with every Pro feature.', 'blogaura'); ?></p> 34 <div class="blogaura-site__actions"> 35 <a class="blogaura-upgrade-button" href="<?php echo esc_url($dashboard->get_theme_url() . '#choose-pricing-plan'); ?>" target="_blank" rel="noopener"><?php BlogAura_Admin::the_icon('crown', 16); ?><?php esc_html_e('Upgrade to Pro', 'blogaura'); ?></a> 36 <a class="button blogaura-button blogaura-button--small" href="<?php echo esc_url($dashboard->get_pro_demo_url()); ?>" target="_blank" rel="noopener"><?php BlogAura_Admin::the_icon('eye', 16); ?><?php esc_html_e('Preview', 'blogaura'); ?><span class="screen-reader-text"><?php echo esc_html(' ' . $pro_name); ?></span></a> 37 </div> 38 </div> 39 </article> 40 <?php 41 }; 16 42 17 </div> 43 if (!$blogaura_sites) : 44 $blogaura_needed = BlogAura_Admin::PRO ? array('One Click Demo Import') : array('WPInterface Add-ons', 'One Click Demo Import'); 45 ?> 46 <div class="blogaura-stack"> 47 <section class="blogaura-card blogaura-empty" aria-labelledby="blogaura-starter-title"> 48 <img src="<?php echo esc_url(BlogAura_Admin::image_url(BlogAura_Admin::PRO ? 'plugin-one-click-demo-import.webp' : 'plugin-wpinterface-add-ons.webp')); ?>" width="56" height="56" alt=""> 49 <h2 id="blogaura-starter-title"><?php esc_html_e('Starter sites need a free plugin', 'blogaura'); ?></h2> 50 <p><?php echo esc_html(sprintf(/* translators: 1: plugin names, 2: theme name. */ __('Install %1$s to browse and import ready-made %2$s designs.', 'blogaura'), wp_sprintf('%l', $blogaura_needed), $blogaura_name)); ?></p> 51 <a class="button button-primary blogaura-button" href="<?php echo esc_url($this->tab_url('recommended') . '#blogaura-plugins'); ?>"><?php esc_html_e('Go to recommended plugins', 'blogaura'); ?></a> 52 </section> 53 <?php if (!BlogAura_Admin::PRO) : ?> 54 <section class="blogaura-section" aria-labelledby="blogaura-starter-pro-title"> 55 <h2 id="blogaura-starter-pro-title" class="blogaura-eyebrow"><?php esc_html_e('Also in Pro', 'blogaura'); ?></h2> 56 <div class="blogaura-sites"><?php $blogaura_pro_card($this, $blogaura_name); ?></div> 57 </section> 58 <?php endif; ?> 59 </div> 60 <?php 61 return; 62 endif; 18 63 19 <?php 64 $blogaura_notice = ''; 65 foreach ($blogaura_sites as $blogaura_site) { 66 if ($blogaura_site['notice']) { 67 $blogaura_notice = $blogaura_site['notice']; 68 break; 69 } 70 } 71 ?> 72 <div class="blogaura-stack"> 73 <section class="blogaura-section" aria-labelledby="blogaura-starter-title"> 74 <div class="blogaura-section__head"> 75 <div> 76 <h2 id="blogaura-starter-title"><?php esc_html_e('Starter sites', 'blogaura'); ?></h2> 77 <p><?php esc_html_e('Import a ready-made design, then make it yours in the Customizer.', 'blogaura'); ?></p> 78 </div> 79 </div> 80 81 <div class="blogaura-card blogaura-import-note"> 82 <div class="blogaura-import-note__main"> 83 <span class="blogaura-tile"><?php BlogAura_Admin::the_icon('info', 20); ?></span> 84 <div class="blogaura-import-note__text"> 85 <h3><?php esc_html_e('Importing adds demo content', 'blogaura'); ?></h3> 86 <p><?php esc_html_e('A starter site imports its demo posts, pages, images, menus and widgets, and updates your Customizer settings to match the design. For the best result, import it on a new site.', 'blogaura'); ?></p> 87 <?php if ($blogaura_notice) : ?> 88 <p class="blogaura-import-note__tip"><?php echo esc_html($blogaura_notice); ?></p> 89 <?php endif; ?> 90 </div> 91 </div> 92 <div class="blogaura-import-note__service"> 93 <p><?php BlogAura_Admin::the_icon('badge', 18); ?><span><strong><?php esc_html_e('Already have content?', 'blogaura'); ?></strong> <?php esc_html_e('Our team can apply this design to your existing site and set it up around your content, without importing any demo content.', 'blogaura'); ?></span></p> 94 <a class="button blogaura-button blogaura-button--small" href="<?php echo esc_url($blogaura_services['featured']['url']); ?>" target="_blank" rel="noopener"><?php esc_html_e('Have it set up for you', 'blogaura'); ?></a> 95 </div> 96 </div> 97 98 <div class="blogaura-sites"> 99 <?php foreach ($blogaura_sites as $blogaura_site) : ?> 100 <article class="blogaura-site"> 101 <div class="blogaura-site__shot"> 102 <?php if ($blogaura_site['image']) : ?> 103 <img src="<?php echo esc_url($blogaura_site['image']); ?>" width="600" height="450" alt="<?php echo esc_attr(sprintf(/* translators: %s: starter site name. */ __('%s starter site preview', 'blogaura'), $blogaura_site['name'])); ?>" loading="lazy" decoding="async"> 104 <?php endif; ?> 105 </div> 106 <div class="blogaura-site__body"> 107 <h3 class="blogaura-site__name"><?php echo esc_html($blogaura_site['name']); ?></h3> 108 <div class="blogaura-site__actions"> 109 <a class="button button-primary blogaura-button blogaura-button--small" href="<?php echo esc_url($blogaura_site['import']); ?>"><?php BlogAura_Admin::the_icon('download', 16); ?><?php esc_html_e('Import', 'blogaura'); ?><span class="screen-reader-text"><?php echo esc_html(' ' . $blogaura_site['name']); ?></span></a> 110 <?php if ($blogaura_site['preview']) : ?> 111 <a class="button blogaura-button blogaura-button--small" href="<?php echo esc_url($blogaura_site['preview']); ?>" target="_blank" rel="noopener"><?php BlogAura_Admin::the_icon('eye', 16); ?><?php esc_html_e('Preview', 'blogaura'); ?><span class="screen-reader-text"><?php echo esc_html(' ' . $blogaura_site['name']); ?></span></a> 112 <?php endif; ?> 113 </div> 114 </div> 115 </article> 116 <?php endforeach; ?> 117 <?php $blogaura_pro_card($this, $blogaura_name); ?> 118 </div> 119 </section> 120 </div> -
blogaura/1.1.5/inc/admin/meta-box/category-meta-box.php
r312189 r353892 9 9 // Add custom fields to the category add form 10 10 function blogaura_add_category_fields() { 11 wp_nonce_field( 'blogaura_category_meta_action', 'blogaura_category_meta_nonce' ); 11 12 ?> 12 13 <div class="form-field term-thumbnail-wrap"> … … 36 37 $thumbnail_id = absint( get_term_meta( $term->term_id, 'thumbnail_id', true ) ); 37 38 $image = $thumbnail_id ? wp_get_attachment_thumb_url( $thumbnail_id ) : blogaura_placeholder_image(); 39 wp_nonce_field( 'blogaura_category_meta_action', 'blogaura_category_meta_nonce' ); 38 40 ?> 39 41 <tr class="form-field"> … … 64 66 // Save custom category fields 65 67 function blogaura_save_category_fields( $term_id ) { 68 if ( ! isset( $_POST['blogaura_category_meta_nonce'] ) || ! wp_verify_nonce( sanitize_text_field( wp_unslash( $_POST['blogaura_category_meta_nonce'] ) ), 'blogaura_category_meta_action' ) ) { 69 return; 70 } 71 72 if ( ! current_user_can( 'edit_term', $term_id ) ) { 73 return; 74 } 75 66 76 if ( isset( $_POST['post_cat_thumbnail_id'] ) ) { 67 77 update_term_meta( $term_id, 'thumbnail_id', absint( $_POST['post_cat_thumbnail_id'] ) ); … … 70 80 if ( isset( $_POST['category_color'] ) && ! empty( $_POST['category_color'] ) ) { 71 81 update_term_meta( $term_id, 'category_color', sanitize_hex_color( $_POST['category_color'] ) ); 72 } else {82 } elseif ( isset( $_POST['category_color'] ) ) { 73 83 delete_term_meta( $term_id, 'category_color' ); 74 84 } -
blogaura/1.1.5/languages/blogaura.pot
r325078 r353892 4 4 "Project-Id-Version: BlogAura\n" 5 5 "Report-Msgid-Bugs-To: \n" 6 "POT-Creation-Date: 2026- 04-27 14:15+0000\n"6 "POT-Creation-Date: 2026-10-15 15:52+0000\n" 7 7 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" 8 8 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" … … 14 14 "Content-Transfer-Encoding: 8bit\n" 15 15 "X-Generator: Loco https://localise.biz/\n" 16 "X-Loco-Version: 2.8. 1; wp-6.9.1; php-8.3.11\n"16 "X-Loco-Version: 2.8.8; wp-7.1.3; php-8.5.8\n" 17 17 "X-Domain: blogaura" 18 18 … … 26 26 msgstr "" 27 27 28 #. %s: Theme Name. 29 #: inc/template-tags.php:110 inc/admin/dashboard/class-dashboard.php:73 28 #. 1: steps done, 2: total steps. 29 #: inc/admin/dashboard/views/overview.php:88 30 #, php-format 31 msgid "%1$d of %2$d" 32 msgstr "" 33 34 #. %d: number of themes. 35 #: inc/admin/dashboard/class-dashboard.php:147 36 msgid "%d themes by WPInterface" 37 msgstr "" 38 39 #: inc/template-tags.php:110 30 40 #, php-format 31 41 msgid "%s" 32 42 msgstr "" 33 43 44 #. %s: Pro theme name. 45 #: inc/admin/dashboard/views/features.php:139 46 #, php-format 47 msgid "" 48 "%s comes with the SEO plugin made by our team, at no extra cost. Help " 49 "readers find your stories first." 50 msgstr "" 51 52 #. %s: theme name. 53 #: inc/admin/dashboard/class-welcome-notice.php:107 54 #, php-format 55 msgid "%s is ready. Let’s make it yours." 56 msgstr "" 57 34 58 #. %s: Read Time. 35 #: inc/template-functions.php:2 80 inc/template-functions.php:28659 #: inc/template-functions.php:279 inc/template-functions.php:285 36 60 #, php-format 37 61 msgid "%s min read" 62 msgstr "" 63 64 #. %s: theme name. 65 #: inc/admin/dashboard/views/starter-templates.php:24 66 #: inc/admin/dashboard/views/features.php:18 67 #: inc/admin/dashboard/views/overview.php:180 68 #: inc/admin/dashboard/views/free-vs-pro.php:204 69 #, php-format 70 msgid "%s Pro" 38 71 msgstr "" 39 72 … … 42 75 #, php-format 43 76 msgid "%s Settings" 77 msgstr "" 78 79 #. %s: starter site name. 80 #: inc/admin/dashboard/views/starter-templates.php:29 81 #: inc/admin/dashboard/views/starter-templates.php:103 82 #, php-format 83 msgid "%s starter site preview" 84 msgstr "" 85 86 #. %s: theme name. 87 #: inc/admin/dashboard/class-dashboard.php:153 88 #: inc/admin/dashboard/class-welcome-notice.php:104 89 #, php-format 90 msgid "%s theme screenshot" 44 91 msgstr "" 45 92 … … 131 178 msgstr "" 132 179 133 #: inc/admin/dashboard/views/free-vs-pro.php:282 134 msgid "" 135 "Access all premium extensions, features, and upcoming updates right away by " 136 "<br> upgrading to the Pro version." 137 msgstr "" 138 139 #: inc/admin/dashboard/class-welcome-notice.php:95 140 #: inc/admin/dashboard/class-theme-review-notice.php:140 141 #: inc/admin/dashboard/class-theme-review-notice.php:156 180 #: inc/admin/dashboard/views/features.php:48 181 msgid "" 182 "A built-in accessibility toolbar and our own SEO plugin, ready when you " 183 "upgrade." 184 msgstr "" 185 186 #: inc/admin/dashboard/views/overview.php:84 187 msgid "A few short steps from a fresh install to a finished site." 188 msgstr "" 189 190 #: inc/admin/dashboard/views/overview.php:173 191 msgid "A quick review on WordPress.org helps other publishers find the theme." 192 msgstr "" 193 194 #: inc/admin/dashboard/class-theme-review-notice.php:87 195 msgid "" 196 "A rating on WordPress.org helps other site owners find the theme and keeps " 197 "the updates coming. It takes about a minute." 198 msgstr "" 199 200 #: inc/admin/dashboard/views/features.php:57 201 msgid "" 202 "A reader toolbar built into the theme lets every visitor adjust your site to " 203 "their sight, motor and reading needs." 204 msgstr "" 205 206 #: inc/admin/dashboard/views/starter-templates.php:86 207 msgid "" 208 "A starter site imports its demo posts, pages, images, menus and widgets, and " 209 "updates your Customizer settings to match the design. For the best result, " 210 "import it on a new site." 211 msgstr "" 212 213 #: inc/admin/dashboard/views/features.php:62 214 msgid "Accessibility statement generator for your site" 215 msgstr "" 216 217 #: inc/admin/dashboard/views/features.php:56 218 #: inc/admin/dashboard/views/overview.php:66 219 msgid "Accessibility toolbar" 220 msgstr "" 221 222 #: inc/admin/dashboard/views/features.php:95 223 msgid "Accessibility toolbar demo" 224 msgstr "" 225 226 #: inc/admin/dashboard/views/free-vs-pro.php:210 227 msgid "Accessibility toolbar for your visitors" 228 msgstr "" 229 230 #: inc/admin/dashboard/class-welcome-notice.php:139 231 #: inc/admin/dashboard/class-theme-review-notice.php:154 232 #: inc/admin/dashboard/class-theme-review-notice.php:170 142 233 msgid "Action failed. Please refresh the page and retry." 143 234 msgstr "" 144 235 145 #: inc/admin/dashboard/views/dashboard.php:393 146 #: inc/admin/dashboard/views/help.php:165 147 #: inc/admin/dashboard/views/products.php:128 236 #: inc/admin/dashboard/views/recommended.php:14 148 237 msgid "Activate" 149 238 msgstr "" 150 239 151 #: inc/admin/dashboard/views/dashboard.php:15 152 msgid "Activate MC4WP: Mailchimp for WordPress" 153 msgstr "" 154 155 #: inc/admin/dashboard/views/dashboard.php:387 156 #: inc/admin/dashboard/views/help.php:162 157 #: inc/admin/dashboard/views/products.php:126 158 msgid "Activated" 240 #: inc/admin/dashboard/views/recommended.php:13 241 msgid "Active" 242 msgstr "" 243 244 #: inc/admin/dashboard/views/overview.php:37 245 msgid "Add widgets to the sidebar" 159 246 msgstr "" 160 247 … … 163 250 msgstr "" 164 251 252 #: inc/admin/dashboard/views/overview.php:25 253 msgid "Add your logo and site icon" 254 msgstr "" 255 256 #: inc/admin/dashboard/views/free-vs-pro.php:83 257 msgid "Additional" 258 msgstr "" 259 165 260 #: inc/admin/customizer/helpers/controls.php:236 166 261 msgid "Additional Customizer Sections" … … 175 270 msgstr "" 176 271 272 #: inc/admin/dashboard/class-admin.php:92 273 msgid "Adds Mailchimp sign-up forms to your site." 274 msgstr "" 275 177 276 #: inc/admin/widgets/class-ads-code.php:30 178 277 msgid "Ads Code" 179 278 msgstr "" 180 279 181 #: inc/admin/dashboard/views/ dashboard.php:159182 msgid "Advanced Color options"280 #: inc/admin/dashboard/views/free-vs-pro.php:209 281 msgid "Advanced colour options" 183 282 msgstr "" 184 283 … … 214 313 msgstr "" 215 314 315 #: inc/admin/dashboard/views/recommended.php:26 316 msgid "All services" 317 msgstr "" 318 319 #: inc/admin/dashboard/views/starter-templates.php:93 320 msgid "Already have content?" 321 msgstr "" 322 323 #: inc/admin/dashboard/views/starter-templates.php:55 324 msgid "Also in Pro" 325 msgstr "" 326 327 #: inc/admin/dashboard/views/free-vs-pro.php:88 328 msgid "API Integrations" 329 msgstr "" 330 331 #: inc/admin/dashboard/views/overview.php:72 332 msgid "API integrations" 333 msgstr "" 334 335 #: inc/admin/dashboard/views/overview.php:38 336 msgid "Appearance › Widgets" 337 msgstr "" 338 216 339 #: inc/admin/customizer/helpers/helper-function.php:48 217 340 msgid "Archive Alternate Grid View" … … 237 360 #: inc/admin/customizer/sections/panel.php:93 238 361 msgid "Archive Options" 239 msgstr ""240 241 #: inc/admin/dashboard/views/dashboard.php:110242 msgid "Archive Sidebar Options"243 362 msgstr "" 244 363 … … 277 396 #: inc/admin/customizer/sections/show-author-post.php:99 278 397 msgid "ASC" 398 msgstr "" 399 400 #: inc/admin/dashboard/views/help.php:34 401 msgid "Ask a question on the WordPress.org support forum." 402 msgstr "" 403 404 #: inc/admin/dashboard/class-theme-review-notice.php:99 405 msgid "Ask in the support forum" 406 msgstr "" 407 408 #: inc/admin/dashboard/views/overview.php:31 409 msgid "Assign your main menu" 279 410 msgstr "" 280 411 … … 357 488 msgstr "" 358 489 359 #: inc/admin/dashboard/views/dashboard.php:281360 #: inc/admin/dashboard/views/help.php:112361 msgid "Based on 20+ Reviews"362 msgstr ""363 364 490 #: inc/admin/widgets/widget-init.php:105 365 491 msgid "Before Footer" … … 402 528 msgstr "" 403 529 530 #: inc/admin/dashboard/views/free-vs-pro.php:51 531 msgid "Blog" 532 msgstr "" 533 534 #: inc/admin/dashboard/views/overview.php:51 535 msgid "Blog & archive" 536 msgstr "" 537 404 538 #. Name of the theme 405 #: inc/admin/dashboard/class-dashboard.php:174406 #: inc/admin/dashboard/class-theme-review-notice.php:122407 #: inc/admin/dashboard/views/dashboard.php:215408 539 msgid "BlogAura" 409 540 msgstr "" … … 509 640 msgstr "" 510 641 642 #. %s: Pro theme name. 643 #: inc/admin/dashboard/views/features.php:44 644 #, php-format 645 msgid "Built into %s" 646 msgstr "" 647 511 648 #: inc/admin/widgets/class-image-widget.php:41 512 649 msgid "Button Text" … … 519 656 #: inc/admin/widgets/class-cta.php:83 520 657 msgid "Button Text - 2" 658 msgstr "" 659 660 #: inc/admin/dashboard/views/features.php:34 661 msgid "Button, Subscribe" 521 662 msgstr "" 522 663 … … 524 665 #: inc/admin/customizer/helpers/defaults.php:179 525 666 msgid "by" 667 msgstr "" 668 669 #. %s: theme author. 670 #: inc/admin/dashboard/class-dashboard.php:311 671 #, php-format 672 msgid "by %s" 673 msgstr "" 674 675 #: inc/admin/dashboard/views/recommended.php:71 676 msgid "By WPInterface" 526 677 msgstr "" 527 678 … … 558 709 msgstr "" 559 710 560 #: inc/admin/meta-box/category-meta-box.php:2 5561 #: inc/admin/meta-box/category-meta-box.php:5 4711 #: inc/admin/meta-box/category-meta-box.php:26 712 #: inc/admin/meta-box/category-meta-box.php:56 562 713 msgid "Category Color" 563 714 msgstr "" … … 637 788 msgstr "" 638 789 639 #: inc/admin/dashboard/class-dashboard.php:204640 msgid "Changelog"641 msgstr ""642 643 790 #: inc/admin/dashboard/class-changelog-parser.php:25 644 791 #: inc/admin/dashboard/class-changelog-parser.php:81 … … 654 801 msgstr "" 655 802 656 #: inc/admin/dashboard/class-welcome-notice.php: 98803 #: inc/admin/dashboard/class-welcome-notice.php:142 657 804 msgid "Cheatin’ huh?" 658 msgstr ""659 660 #: inc/admin/dashboard/class-welcome-notice.php:72661 msgid ""662 "Check the quick links below for detailed information and to make the most of "663 "all the features our theme offers."664 805 msgstr "" 665 806 … … 668 809 msgstr "" 669 810 670 #: inc/admin/meta-box/category-meta-box.php: 94811 #: inc/admin/meta-box/category-meta-box.php:104 671 812 msgid "Choose an image" 672 813 msgstr "" … … 710 851 msgstr "" 711 852 853 #: inc/admin/dashboard/views/features.php:81 854 msgid "City council approves the new riverside park" 855 msgstr "" 856 712 857 #: inc/admin/customizer/helpers/helper-function.php:68 713 858 msgid "Classic" … … 718 863 msgstr "" 719 864 865 #: inc/admin/dashboard/views/changelog.php:21 866 msgid "Close" 867 msgstr "" 868 720 869 #: template-parts/modal-search.php:21 721 870 msgid "Close search" … … 724 873 #: inc/compatibility/elementor/widgets/class-blogaura-elementor-widget-base.php:93 725 874 msgid "Color:" 875 msgstr "" 876 877 #: inc/admin/dashboard/views/overview.php:48 878 #: inc/admin/dashboard/views/free-vs-pro.php:24 879 msgid "Colors" 726 880 msgstr "" 727 881 … … 749 903 msgstr[1] "" 750 904 751 #: inc/admin/dashboard/views/ dashboard.php:325752 #: inc/admin/dashboard/views/help.php:43 753 msg id "Community Support"754 msgstr "" 755 756 #: inc/admin/dashboard/views/help.php:71 757 msg id "Connect with us on X"758 msgstr "" 759 760 #: inc/admin/dashboard/views/ help.php:47761 msgid "Co ntact Support"905 #: inc/admin/dashboard/views/help.php:55 906 msgid "Community" 907 msgstr "" 908 909 #: inc/admin/dashboard/views/help.php:33 910 msgid "Community support" 911 msgstr "" 912 913 #: inc/admin/dashboard/views/features.php:148 914 #: inc/admin/dashboard/views/overview.php:181 915 msgid "Compare Free and Pro" 762 916 msgstr "" 763 917 764 918 #: inc/admin/customizer/helpers/controls.php:249 765 919 msgid "Contact Us" 920 msgstr "" 921 922 #: inc/admin/dashboard/views/free-vs-pro.php:45 923 msgid "Container Layout" 924 msgstr "" 925 926 #: inc/admin/dashboard/views/free-vs-pro.php:62 927 msgid "Content" 766 928 msgstr "" 767 929 … … 787 949 msgstr "" 788 950 789 #: inc/template-functions.php:2 10951 #: inc/template-functions.php:209 790 952 msgid "Copyright © {{ date }}." 791 953 msgstr "" … … 807 969 msgstr "" 808 970 809 #: inc/admin/dashboard/views/dashboard.php:337 810 msgid "Create a Ticket" 971 #: inc/admin/dashboard/class-welcome-notice.php:178 972 msgid "Could not install the plugin." 973 msgstr "" 974 975 #: inc/admin/dashboard/class-dashboard.php:148 976 #: inc/admin/dashboard/class-admin.php:459 977 msgid "Could not load themes from WordPress.org. Please try again later." 978 msgstr "" 979 980 #: inc/admin/dashboard/views/help.php:28 981 msgid "Create a ticket" 982 msgstr "" 983 984 #: inc/admin/dashboard/class-admin.php:102 985 msgid "Create visual, tappable stories that the theme can display." 811 986 msgstr "" 812 987 … … 817 992 #: inc/admin/widgets/class-cta.php:30 818 993 msgid "CTA Title" 994 msgstr "" 995 996 #: inc/admin/dashboard/class-dashboard.php:314 997 #: inc/admin/dashboard/class-welcome-notice.php:101 998 msgid "Customize" 999 msgstr "" 1000 1001 #: inc/admin/dashboard/views/overview.php:32 1002 msgid "Customize › Menus" 1003 msgstr "" 1004 1005 #: inc/admin/dashboard/views/overview.php:26 1006 msgid "Customize › Site Identity" 1007 msgstr "" 1008 1009 #: inc/admin/dashboard/views/overview.php:119 1010 msgid "Customizer shortcuts" 819 1011 msgstr "" 820 1012 … … 825 1017 msgstr "" 826 1018 1019 #: inc/admin/dashboard/views/overview.php:65 1020 #: inc/admin/dashboard/views/free-vs-pro.php:207 1021 msgid "Dark mode" 1022 msgstr "" 1023 827 1024 #: inc/admin/customizer/helpers/controls.php:232 828 1025 msgid "Dark Mode Feature" … … 831 1028 #: inc/admin/customizer/helpers/theme-upsell.php:34 832 1029 msgid "Dark mode options" 833 msgstr ""834 835 #: inc/admin/dashboard/class-dashboard.php:137836 msgid "Dashboard"837 1030 msgstr "" 838 1031 … … 921 1114 msgstr "" 922 1115 1116 #: inc/admin/dashboard/class-dashboard.php:151 1117 msgid "Details" 1118 msgstr "" 1119 1120 #: inc/admin/dashboard/class-admin.php:211 1121 msgid "Developers" 1122 msgstr "" 1123 1124 #: inc/admin/dashboard/class-welcome-notice.php:90 1125 #: inc/admin/dashboard/class-theme-review-notice.php:81 1126 msgid "Dismiss this notice." 1127 msgstr "" 1128 923 1129 #: inc/admin/meta-box/meta-box.php:160 924 1130 #: inc/admin/customizer/sections/spotlight-block.php:140 … … 1017 1223 msgstr "" 1018 1224 1019 #: inc/admin/dashboard/class- welcome-notice.php:781020 #: inc/admin/dashboard/views/ dashboard.php:2281021 #: inc/admin/dashboard/views/ dashboard.php:2541225 #: inc/admin/dashboard/class-dashboard.php:315 1226 #: inc/admin/dashboard/views/overview.php:161 1227 #: inc/admin/dashboard/views/help.php:19 1022 1228 msgid "Documentation" 1229 msgstr "" 1230 1231 #: inc/admin/dashboard/views/overview.php:109 1232 msgid "Done" 1233 msgstr "" 1234 1235 #: inc/admin/dashboard/views/recommended.php:31 1236 msgid "Done for you" 1023 1237 msgstr "" 1024 1238 … … 1189 1403 msgstr "" 1190 1404 1191 #: inc/admin/dashboard/views/dashboard.php:250 1192 msgid "" 1193 "Encountering an issue? Our comprehensive and detailed documentation is " 1194 "designed to address your concerns and provide clear, thorough explanations " 1195 "to resolve any confusion." 1405 #: inc/admin/dashboard/class-admin.php:204 1406 msgid "Enhancement" 1407 msgstr "" 1408 1409 #. %s: theme name. 1410 #: inc/admin/dashboard/views/overview.php:172 1411 #, php-format 1412 msgid "Enjoying %s?" 1413 msgstr "" 1414 1415 #. %s: theme name. 1416 #: inc/admin/dashboard/class-theme-review-notice.php:86 1417 #, php-format 1418 msgid "Enjoying %s? A quick review helps a lot." 1196 1419 msgstr "" 1197 1420 … … 1216 1439 msgstr "" 1217 1440 1218 #: inc/template-functions.php:27 51441 #: inc/template-functions.php:274 1219 1442 msgid "Estimated read time" 1443 msgstr "" 1444 1445 #. %s: theme name. 1446 #: inc/admin/dashboard/views/free-vs-pro.php:171 1447 #, php-format 1448 msgid "Everything in %s, plus the extras in Pro." 1220 1449 msgstr "" 1221 1450 … … 1240 1469 msgstr "" 1241 1470 1242 #: inc/admin/dashboard/views/dashboard.php:471243 msgid ""1244 "Experience effortless magazine-themed website creation with BlogAura! "1245 "Explore all the settings and features here."1246 msgstr ""1247 1248 1471 #: inc/admin/customizer/helpers/controls.php:227 1249 1472 msgid "Explore Our Premium Features" 1250 1473 msgstr "" 1251 1474 1475 #: inc/admin/dashboard/class-welcome-notice.php:129 1476 #: inc/admin/dashboard/views/overview.php:154 1477 msgid "Explore services" 1478 msgstr "" 1479 1252 1480 #: inc/admin/customizer/helpers/controls.php:235 1253 1481 msgid "Extended Widget Options" 1254 msgstr ""1255 1256 #: inc/admin/dashboard/views/dashboard.php:1831257 msgid "Extra Customizer Sections"1258 1482 msgstr "" 1259 1483 … … 1264 1488 msgstr "" 1265 1489 1266 #: inc/admin/dashboard/views/dashboard.php:1751267 msgid "Extra Widget Area"1268 msgstr ""1269 1270 1490 #: inc/admin/dashboard/views/help.php:56 1271 msgid "facebook" 1272 msgstr "" 1273 1274 #: inc/admin/dashboard/views/dashboard.php:415 1275 #: inc/admin/dashboard/views/help.php:59 1276 msgid "Facebook Community" 1491 msgid "Facebook" 1277 1492 msgstr "" 1278 1493 … … 1281 1496 msgstr "" 1282 1497 1498 #: inc/admin/dashboard/class-admin.php:267 1499 msgid "" 1500 "Faster pages and passing Core Web Vitals, shown with before-and-after data." 1501 msgstr "" 1502 1503 #: inc/admin/dashboard/views/free-vs-pro.php:179 1504 msgid "Feature" 1505 msgstr "" 1506 1283 1507 #: inc/admin/customizer/helpers/defaults.php:126 1284 1508 msgid "Featured - 1" … … 1309 1533 msgstr "" 1310 1534 1535 #: inc/admin/dashboard/class-admin.php:208 1536 #: inc/admin/dashboard/class-admin.php:209 1537 #: inc/admin/dashboard/class-admin.php:210 1538 msgid "Fix" 1539 msgstr "" 1540 1541 #: inc/admin/dashboard/class-admin.php:291 1542 msgid "" 1543 "Fix the technical issues that stop search engines finding and showing your " 1544 "content." 1545 msgstr "" 1546 1311 1547 #: inc/admin/customizer/helpers/controls.php:231 1312 #: inc/admin/dashboard/views/dashboard.php:1511313 1548 msgid "Font Options" 1314 1549 msgstr "" … … 1322 1557 msgstr "" 1323 1558 1559 #: inc/admin/dashboard/views/free-vs-pro.php:208 1560 msgid "Font size, family and weight controls" 1561 msgstr "" 1562 1563 #: inc/admin/dashboard/views/overview.php:54 1564 #: inc/admin/dashboard/views/free-vs-pro.php:74 1565 msgid "Footer" 1566 msgstr "" 1567 1324 1568 #: inc/admin/widgets/widget-init.php:141 1325 1569 #, php-format … … 1340 1584 1341 1585 #: inc/admin/customizer/sections/panel.php:115 1342 #: inc/admin/dashboard/views/dashboard.php:1001343 1586 msgid "Footer Options" 1344 1587 msgstr "" … … 1382 1625 msgstr "" 1383 1626 1384 #: inc/admin/dashboard/views/free-vs-pro.php: 2141627 #: inc/admin/dashboard/views/free-vs-pro.php:180 1385 1628 msgid "Free" 1386 1629 msgstr "" 1387 1630 1388 #: inc/admin/dashboard/class-dashboard.php:155 1389 msgid "Free Vs Pro" 1631 #: inc/admin/dashboard/views/recommended.php:57 1632 msgid "Free on WordPress.org. Install only what you need." 1633 msgstr "" 1634 1635 #: inc/admin/dashboard/views/recommended.php:91 1636 msgid "Free on WordPress.org. Preview any of them before switching." 1637 msgstr "" 1638 1639 #: inc/admin/dashboard/class-dashboard.php:236 1640 #: inc/admin/dashboard/views/free-vs-pro.php:170 1641 msgid "Free vs Pro" 1642 msgstr "" 1643 1644 #: inc/admin/dashboard/views/features.php:137 1645 msgid "Free with every Pro theme" 1390 1646 msgstr "" 1391 1647 … … 1394 1650 msgstr "" 1395 1651 1396 #: inc/admin/dashboard/views/ dashboard.php:1951397 msgid "F SE Support"1652 #: inc/admin/dashboard/views/overview.php:50 1653 msgid "Front page sections" 1398 1654 msgstr "" 1399 1655 … … 1416 1672 msgstr "" 1417 1673 1674 #: inc/admin/dashboard/views/free-vs-pro.php:13 1675 msgid "General Features" 1676 msgstr "" 1677 1418 1678 #: inc/admin/widgets/class-tab-post.php:204 1419 1679 #: inc/admin/customizer/sections/panel.php:62 … … 1421 1681 msgstr "" 1422 1682 1423 #: inc/admin/dashboard/views/free-vs-pro.php:284 1424 msgid "Get BlogAura Pro Now" 1425 msgstr "" 1426 1427 #: inc/admin/dashboard/class-welcome-notice.php:29 1428 msgid "Get Started" 1429 msgstr "" 1430 1431 #: inc/admin/dashboard/class-welcome-notice.php:30 1432 msgid "Get started" 1433 msgstr "" 1434 1435 #: inc/admin/dashboard/views/dashboard.php:105 1436 msgid "Global Colors" 1683 #. %s: theme name. 1684 #: inc/admin/dashboard/views/overview.php:146 1685 #, php-format 1686 msgid "Get %s set up by the people who built it" 1437 1687 msgstr "" 1438 1688 1439 1689 #: 404.php:22 1440 1690 msgid "Go Back To Homepage" 1691 msgstr "" 1692 1693 #: inc/admin/dashboard/views/starter-templates.php:51 1694 msgid "Go to recommended plugins" 1695 msgstr "" 1696 1697 #: inc/admin/dashboard/views/features.php:181 1698 msgid "Good" 1441 1699 msgstr "" 1442 1700 … … 1468 1726 #: inc/compatibility/elementor/widgets/blogaura-elementor-widgets-grid-5.php:54 1469 1727 msgid "Grid Style 5" 1728 msgstr "" 1729 1730 #. %s: theme name. 1731 #: inc/admin/dashboard/views/recommended.php:24 1732 #, php-format 1733 msgid "Hands-on help from the team that builds %s." 1470 1734 msgstr "" 1471 1735 … … 1500 1764 msgstr "" 1501 1765 1766 #: inc/admin/dashboard/views/starter-templates.php:94 1767 msgid "Have it set up for you" 1768 msgstr "" 1769 1770 #: inc/admin/dashboard/views/free-vs-pro.php:32 1771 msgid "Header Features" 1772 msgstr "" 1773 1774 #: inc/admin/dashboard/views/overview.php:49 1775 msgid "Header layout" 1776 msgstr "" 1777 1502 1778 #: inc/admin/customizer/sections/panel.php:72 1503 #: inc/admin/dashboard/views/dashboard.php:951504 1779 msgid "Header Options" 1505 1780 msgstr "" … … 1544 1819 msgstr "" 1545 1820 1546 #: inc/admin/dashboard/class-dashboard.php:161 1547 msgid "Help" 1821 #: inc/admin/dashboard/views/overview.php:160 1822 msgid "Help & resources" 1823 msgstr "" 1824 1825 #: inc/admin/dashboard/class-dashboard.php:241 1826 msgid "Help & support" 1548 1827 msgstr "" 1549 1828 … … 1572 1851 msgstr "" 1573 1852 1853 #: inc/admin/dashboard/views/features.php:23 1854 msgid "High contrast" 1855 msgstr "" 1856 1574 1857 #: inc/admin/customizer/sections/highlight-cat-post.php:105 1575 1858 msgid "Highlight Category Section Meta" … … 1580 1863 msgstr "" 1581 1864 1865 #: inc/admin/dashboard/views/features.php:25 1866 msgid "Highlight links" 1867 msgstr "" 1868 1582 1869 #: inc/admin/customizer/sections/highlight-cat-post.php:10 1583 1870 msgid "Highlight Post Section" 1584 1871 msgstr "" 1585 1872 1873 #: inc/admin/dashboard/views/overview.php:155 1874 #: inc/admin/dashboard/views/recommended.php:37 1875 msgid "Hire us" 1876 msgstr "" 1877 1586 1878 #: assets/breadcrumbs/breadcrumbs.php:270 1879 #: inc/admin/dashboard/views/features.php:112 1587 1880 msgid "Home" 1588 1881 msgstr "" … … 1633 1926 msgstr "" 1634 1927 1635 #: inc/admin/dashboard/class-theme-review-notice.php:105 1636 msgid "I already did!" 1637 msgstr "" 1638 1639 #: inc/admin/dashboard/class-theme-review-notice.php:114 1640 msgid "I have a query" 1928 #: inc/admin/dashboard/class-theme-review-notice.php:91 1929 msgid "I already did" 1641 1930 msgstr "" 1642 1931 … … 1659 1948 msgstr "" 1660 1949 1661 #: inc/admin/meta-box/category-meta-box.php:1 111950 #: inc/admin/meta-box/category-meta-box.php:121 1662 1951 msgid "Image" 1663 1952 msgstr "" … … 1689 1978 msgstr "" 1690 1979 1980 #: inc/admin/dashboard/views/starter-templates.php:109 1981 msgid "Import" 1982 msgstr "" 1983 1984 #: inc/admin/dashboard/views/starter-templates.php:77 1985 msgid "Import a ready-made design, then make it yours in the Customizer." 1986 msgstr "" 1987 1988 #: inc/admin/dashboard/class-welcome-notice.php:100 1989 msgid "Import a starter site" 1990 msgstr "" 1991 1992 #: inc/admin/dashboard/class-welcome-notice.php:97 1993 msgid "Import a starter site, or start from a clean slate in the Customizer." 1994 msgstr "" 1995 1996 #: inc/admin/dashboard/class-admin.php:74 1997 msgid "" 1998 "Import WPInterface starter sites in one click: content, widgets and settings." 1999 msgstr "" 2000 2001 #: inc/admin/dashboard/views/starter-templates.php:85 2002 msgid "Importing adds demo content" 2003 msgstr "" 2004 2005 #: inc/admin/dashboard/class-admin.php:84 2006 msgid "Imports demo content, widgets and theme settings." 2007 msgstr "" 2008 2009 #: inc/admin/dashboard/class-admin.php:205 2010 #: inc/admin/dashboard/class-admin.php:206 2011 #: inc/admin/dashboard/class-admin.php:207 2012 msgid "Improvement" 2013 msgstr "" 2014 2015 #: inc/admin/dashboard/views/free-vs-pro.php:158 2016 msgid "Included" 2017 msgstr "" 2018 2019 #: inc/admin/dashboard/views/features.php:145 2020 msgid "Included at no extra cost" 2021 msgstr "" 2022 2023 #. %s: Pro theme name. 2024 #: inc/admin/dashboard/views/features.php:55 2025 #, php-format 2026 msgid "Included in %s" 2027 msgstr "" 2028 2029 #: inc/admin/dashboard/views/features.php:55 2030 msgid "Included in your theme" 2031 msgstr "" 2032 2033 #. %s: Pro theme name. 2034 #: inc/admin/dashboard/views/features.php:47 2035 #, php-format 2036 msgid "Included with %s" 2037 msgstr "" 2038 2039 #: inc/admin/dashboard/views/starter-templates.php:33 2040 msgid "Included with the Pro version, together with every Pro feature." 2041 msgstr "" 2042 1691 2043 #: inc/admin/meta-box/meta-box.php:109 inc/admin/meta-box/meta-box.php:120 1692 2044 #: inc/admin/meta-box/meta-box.php:138 inc/admin/meta-box/meta-box.php:151 … … 1696 2048 msgstr "" 1697 2049 1698 #: inc/admin/dashboard/views/dashboard.php:191 1699 msgid "Instagram Widget" 1700 msgstr "" 1701 1702 #: inc/admin/dashboard/views/dashboard.php:402 1703 #: inc/admin/dashboard/views/help.php:170 1704 #: inc/admin/dashboard/views/products.php:131 2050 #: inc/admin/dashboard/views/recommended.php:15 1705 2051 msgid "Install" 1706 2052 msgstr "" 1707 2053 1708 #: inc/admin/dashboard/views/dashboard.php:20 1709 msgid "Install WpInterface Add-Ons" 2054 #. 1: plugin names, 2: theme name. 2055 #: inc/admin/dashboard/views/starter-templates.php:50 2056 #, php-format 2057 msgid "Install %1$s to browse and import ready-made %2$s designs." 2058 msgstr "" 2059 2060 #: inc/admin/dashboard/class-welcome-notice.php:118 2061 msgid "Install starter plugins" 2062 msgstr "" 2063 2064 #: inc/admin/dashboard/class-welcome-notice.php:108 2065 msgid "" 2066 "Install the free starter plugins to import a demo layout in one click, then " 2067 "fine-tune colours, header and homepage in the Customizer." 2068 msgstr "" 2069 2070 #: inc/admin/dashboard/views/overview.php:19 2071 msgid "Install the starter plugins" 2072 msgstr "" 2073 2074 #: inc/admin/dashboard/class-welcome-notice.php:60 2075 msgid "Installing…" 1710 2076 msgstr "" 1711 2077 … … 1726 2092 msgstr "" 1727 2093 1728 #: inc/admin/dashboard/views/help.php:531729 msgid "Join Our Community"1730 msgstr ""1731 1732 #: inc/admin/dashboard/views/help.php:601733 msgid ""1734 "Join our Facebook haven, where the latest news and updates eagerly await "1735 "your arrival."1736 msgstr ""1737 1738 #: inc/admin/dashboard/views/dashboard.php:4371739 msgid ""1740 "Join our Facebook page to connect with like-minded individuals for "1741 "discussions, help, and support on all things related to the theme!"1742 msgstr ""1743 1744 #: inc/admin/dashboard/views/help.php:701745 msgid ""1746 "Join our Twitter haven, where the latest news and updates eagerly await your "1747 "arrival."1748 msgstr ""1749 1750 #: inc/admin/dashboard/views/help.php:801751 msgid ""1752 "Join our YouTube haven, where the latest news and updates eagerly await your "1753 "arrival."1754 msgstr ""1755 1756 2094 #: inc/admin/customizer/helpers/defaults.php:250 1757 2095 msgid "Just For You" 2096 msgstr "" 2097 2098 #: inc/admin/dashboard/views/features.php:129 2099 msgid "Keyboard & screen reader" 1758 2100 msgstr "" 1759 2101 … … 1773 2115 msgstr "" 1774 2116 2117 #: inc/admin/dashboard/views/features.php:22 2118 msgid "Larger text" 2119 msgstr "" 2120 1775 2121 #: inc/admin/widgets/class-tab-post.php:158 2122 #: inc/admin/dashboard/views/changelog.php:46 1776 2123 msgid "Latest" 1777 2124 msgstr "" … … 1785 2132 msgstr "" 1786 2133 1787 #: inc/admin/dashboard/class-dashboard.php:2191788 msgid "Latest Updates"1789 msgstr ""1790 1791 2134 #: inc/admin/meta-box/meta-box.php:68 inc/admin/meta-box/meta-box.php:87 1792 2135 msgid "Layout Options" 1793 2136 msgstr "" 1794 2137 2138 #: inc/admin/dashboard/class-admin.php:261 2139 msgid "" 2140 "Layout, colour and feature changes made by the developers who built your " 2141 "theme." 2142 msgstr "" 2143 1795 2144 #: inc/admin/customizer/helpers/defaults.php:147 1796 #: inc/admin/dashboard/views/products.php:521797 #: inc/admin/dashboard/views/products.php:1191798 2145 msgid "Learn More" 2146 msgstr "" 2147 2148 #: inc/admin/dashboard/views/help.php:42 2149 #: inc/admin/dashboard/views/recommended.php:47 2150 msgid "Learn more" 1799 2151 msgstr "" 1800 2152 … … 1803 2155 #, php-format 1804 2156 msgid "Leave a Comment<span class=\"screen-reader-text\"> on %s</span>" 2157 msgstr "" 2158 2159 #: inc/admin/dashboard/class-theme-review-notice.php:90 2160 #: inc/admin/dashboard/views/overview.php:174 2161 msgid "Leave a review" 1805 2162 msgstr "" 1806 2163 … … 1835 2192 msgstr "" 1836 2193 1837 #: inc/admin/dashboard/views/dashboard.php:260 1838 #: inc/admin/dashboard/views/help.php:89 1839 msgid "Leave us a Review" 2194 #: inc/admin/dashboard/views/help.php:62 2195 msgid "Leave us a review" 1840 2196 msgstr "" 1841 2197 … … 1854 2210 msgstr "" 1855 2211 1856 #: inc/admin/dashboard/class-welcome-notice.php:67 1857 msgid "" 1858 "Let's start by installing and activating One Click Demo Import, WPInterface " 1859 "Add-ons and MC4WP: Mailchimp for WordPress" 1860 msgstr "" 1861 1862 #: inc/admin/dashboard/views/dashboard.php:440 1863 msgid "Like or follow our Facebook Page" 1864 msgstr "" 1865 1866 #: inc/admin/dashboard/views/help.php:61 1867 msgid "Like or follow us on Facebook" 2212 #: inc/admin/dashboard/views/features.php:60 2213 msgid "Light, dark and high contrast, monochrome and saturation" 1868 2214 msgstr "" 1869 2215 … … 1878 2224 #: inc/admin/widgets/class-cta.php:87 1879 2225 msgid "Link to url - 2" 2226 msgstr "" 2227 2228 #: inc/admin/dashboard/views/features.php:31 2229 msgid "Link, Skip to content" 2230 msgstr "" 2231 2232 #: inc/admin/dashboard/views/features.php:32 2233 msgid "Link, World" 1880 2234 msgstr "" 1881 2235 … … 1896 2250 msgstr "" 1897 2251 1898 #: inc/admin/dashboard/views/products.php:541899 msgid "Live demo"1900 msgstr ""1901 1902 #: inc/admin/dashboard/views/dashboard.php:611903 msgid "Live Preview"1904 msgstr ""1905 1906 2252 #: inc/admin/customizer/helpers/helper-function.php:221 1907 2253 msgid "Load More On Click" … … 1916 2262 msgstr "" 1917 2263 2264 #: inc/admin/dashboard/class-dashboard.php:145 2265 msgid "Loading themes from WordPress.org…" 2266 msgstr "" 2267 2268 #: inc/admin/dashboard/views/recommended.php:97 2269 msgid "Loads the list and screenshots from WordPress.org." 2270 msgstr "" 2271 2272 #: inc/admin/dashboard/views/features.php:80 2273 msgid "Local news" 2274 msgstr "" 2275 2276 #: inc/admin/dashboard/views/features.php:169 2277 msgid "Local news roundup" 2278 msgstr "" 2279 2280 #: inc/admin/dashboard/views/features.php:155 2281 msgid "local news today" 2282 msgstr "" 2283 1918 2284 #: inc/admin/widgets/class-mailchimp.php:64 1919 2285 msgid "Mailchimp Description" … … 1948 2314 msgstr "" 1949 2315 2316 #: inc/admin/dashboard/views/features.php:45 2317 msgid "Make your site easier to read and use for every visitor." 2318 msgstr "" 2319 2320 #: inc/admin/dashboard/class-admin.php:278 2321 msgid "Malware Removal & Security Hardening" 2322 msgstr "" 2323 2324 #: inc/admin/dashboard/class-admin.php:279 2325 msgid "" 2326 "Manual cleanup of hacked sites, closing the entry point, and help getting " 2327 "off blacklists." 2328 msgstr "" 2329 1950 2330 #: inc/admin/customizer/helpers/controls.php:241 1951 2331 msgid "Many More .." 1952 2332 msgstr "" 1953 2333 1954 #: inc/admin/dashboard/class-theme-review-notice.php:109 2334 #: inc/admin/dashboard/views/features.php:91 2335 msgid "Markets" 2336 msgstr "" 2337 2338 #: inc/admin/dashboard/class-theme-review-notice.php:92 1955 2339 msgid "Maybe later" 1956 2340 msgstr "" … … 2016 2400 msgstr "" 2017 2401 2402 #: inc/admin/dashboard/views/overview.php:53 2403 msgid "Menus" 2404 msgstr "" 2405 2406 #: inc/admin/dashboard/views/features.php:185 2407 msgid "Meta description" 2408 msgstr "" 2409 2018 2410 #: inc/compatibility/elementor/widgets/class-blogaura-elementor-widget-base.php:126 2019 2411 msgid "Meta Font Size" … … 2051 2443 msgstr "" 2052 2444 2053 #: inc/admin/dashboard/views/dashboard.php:1792054 msgid "Modal Popup Module"2055 msgstr ""2056 2057 2445 #: assets/breadcrumbs/breadcrumbs.php:793 2058 2446 #: assets/breadcrumbs/breadcrumbs.php:849 … … 2070 2458 msgstr "" 2071 2459 2460 #: inc/admin/dashboard/views/recommended.php:75 2461 msgid "More details" 2462 msgstr "" 2463 2072 2464 #: inc/admin/customizer/helpers/defaults.php:217 2073 2465 msgid "More From Author" … … 2078 2470 msgstr "" 2079 2471 2080 #. %s: Theme Name. 2081 #: inc/admin/dashboard/views/dashboard.php:332 2082 msgid "" 2083 "Need assistance? Reach out to our professional support team by submitting a " 2084 "support ticket, and we'll provide you with the help you need." 2472 #: inc/admin/dashboard/views/recommended.php:90 2473 msgid "More themes by WPInterface" 2085 2474 msgstr "" 2086 2475 … … 2089 2478 msgstr "" 2090 2479 2480 #: inc/admin/dashboard/class-admin.php:201 2481 #: inc/admin/dashboard/class-admin.php:202 2482 #: inc/admin/dashboard/class-admin.php:203 2483 msgid "New" 2484 msgstr "" 2485 2486 #. %s: theme version. 2487 #: inc/admin/dashboard/views/help.php:47 2488 #, php-format 2489 msgid "New features, improvements and fixes in version %s and earlier." 2490 msgstr "" 2491 2091 2492 #: template-parts/pagination/pagination-option.php:59 2092 2493 msgid "Newer Articles" 2494 msgstr "" 2495 2496 #: inc/admin/dashboard/class-admin.php:253 2497 msgid "News & Blog Website Setup" 2093 2498 msgstr "" 2094 2499 … … 2108 2513 msgstr "" 2109 2514 2110 #: template-parts/pagination/post-load.php:71 2515 #: inc/admin/dashboard/views/changelog.php:26 2516 msgid "No changelog available." 2517 msgstr "" 2518 2519 #: template-parts/pagination/post-load.php:77 2111 2520 msgid "No More Posts" 2521 msgstr "" 2522 2523 #: inc/admin/dashboard/views/features.php:64 2524 msgid "No plugin · No external requests" 2112 2525 msgstr "" 2113 2526 … … 2136 2549 #: inc/admin/widgets/class-cta.php:47 2137 2550 msgid "Normal" 2551 msgstr "" 2552 2553 #: inc/admin/dashboard/views/free-vs-pro.php:160 2554 msgid "Not included" 2138 2555 msgstr "" 2139 2556 … … 2200 2617 msgstr "" 2201 2618 2202 #: inc/admin/dashboard/views/dashboard.php:1872203 msgid "Offcanvas Content Module"2204 msgstr ""2205 2206 2619 #: inc/admin/widgets/class-slider-post.php:91 2207 2620 #: inc/admin/widgets/class-tab-post.php:67 … … 2235 2648 msgstr "" 2236 2649 2650 #: inc/admin/dashboard/class-admin.php:285 2651 msgid "One priority ticket, handled first by a senior engineer." 2652 msgstr "" 2653 2237 2654 #. 1: title. 2238 2655 #: comments.php:35 … … 2245 2662 msgstr "" 2246 2663 2664 #: inc/admin/dashboard/views/overview.php:111 2665 msgid "Open" 2666 msgstr "" 2667 2668 #: inc/admin/dashboard/views/help.php:27 2669 msgid "Open a ticket and our team will get back to you by email." 2670 msgstr "" 2671 2672 #: inc/admin/dashboard/views/overview.php:71 2673 msgid "Open Graph" 2674 msgstr "" 2675 2676 #: inc/admin/dashboard/views/recommended.php:93 2677 msgid "Open in Add Themes" 2678 msgstr "" 2679 2247 2680 #: inc/admin/widgets/class-image-widget.php:50 2248 2681 msgid "Open Link in new Tab" … … 2255 2688 #: inc/admin/widgets/class-cta.php:92 2256 2689 msgid "Open Link in new Tab - 2" 2690 msgstr "" 2691 2692 #: inc/admin/dashboard/class-welcome-notice.php:120 2693 msgid "Open theme dashboard" 2257 2694 msgstr "" 2258 2695 … … 2287 2724 msgstr "" 2288 2725 2289 #: inc/admin/dashboard/class-dashboard.php:149 2290 msgid "Our Recommendation" 2726 #: inc/admin/dashboard/views/features.php:138 2727 msgid "Our own SEO plugin" 2728 msgstr "" 2729 2730 #: inc/admin/dashboard/views/free-vs-pro.php:211 2731 msgid "Our own SEO plugin, included" 2732 msgstr "" 2733 2734 #: inc/admin/dashboard/views/starter-templates.php:93 2735 msgid "" 2736 "Our team can apply this design to your existing site and set it up around " 2737 "your content, without importing any demo content." 2291 2738 msgstr "" 2292 2739 … … 2301 2748 msgstr "" 2302 2749 2750 #: inc/admin/dashboard/class-dashboard.php:222 2751 msgid "Overview" 2752 msgstr "" 2753 2303 2754 #. %s is the page number. 2304 2755 #: assets/breadcrumbs/breadcrumbs.php:276 … … 2315 2766 msgstr "" 2316 2767 2317 #: inc/admin/dashboard/views/help.php:27 2318 msgid "" 2319 "Please check out basic documentation for detailed information on how to use " 2320 "BlogAura." 2768 #: inc/admin/dashboard/views/free-vs-pro.php:212 2769 msgid "Personal support by email and tickets" 2321 2770 msgstr "" 2322 2771 … … 2329 2778 msgstr "" 2330 2779 2331 #: inc/admin/dashboard/views/products.php:121 2332 msgid "Plugin Page" 2333 msgstr "" 2334 2335 #: inc/admin/dashboard/views/products.php:64 2336 msgid "Plugins" 2780 #: inc/admin/dashboard/views/recommended.php:104 2781 msgid "" 2782 "Plugins and themes on this page are free on WordPress.org. Services are " 2783 "provided by WPInterface; those links open wpinterface.com." 2784 msgstr "" 2785 2786 #: inc/admin/dashboard/views/overview.php:69 2787 msgid "Pop-up box" 2337 2788 msgstr "" 2338 2789 … … 2382 2833 msgstr "" 2383 2834 2835 #: inc/admin/dashboard/views/overview.php:68 2836 msgid "Post reactions" 2837 msgstr "" 2838 2384 2839 #: inc/admin/customizer/helpers/defaults.php:66 2385 2840 #: inc/admin/customizer/helpers/defaults.php:81 … … 2428 2883 msgstr "" 2429 2884 2885 #. %s: theme name. 2886 #: inc/admin/dashboard/class-welcome-notice.php:128 2887 #, php-format 2888 msgid "" 2889 "Prefer it done for you? The WPInterface team can set up and customise %s for " 2890 "your site." 2891 msgstr "" 2892 2430 2893 #: inc/admin/customizer/sections/preloader.php:10 2431 2894 msgid "Preloader Options" 2432 2895 msgstr "" 2433 2896 2434 #: inc/admin/dashboard/views/dashboard.php:138 2435 msgid "Premium Features" 2897 #: inc/admin/dashboard/views/free-vs-pro.php:116 2898 msgid "Premium Elementor Widgets" 2899 msgstr "" 2900 2901 #: inc/admin/dashboard/class-dashboard.php:150 2902 #: inc/admin/dashboard/views/starter-templates.php:36 2903 #: inc/admin/dashboard/views/starter-templates.php:111 2904 msgid "Preview" 2436 2905 msgstr "" 2437 2906 … … 2444 2913 msgstr "" 2445 2914 2446 #: inc/admin/dashboard/views/free-vs-pro.php:215 2915 #: inc/admin/dashboard/views/overview.php:163 2916 #: inc/admin/dashboard/views/help.php:26 2917 msgid "Priority support" 2918 msgstr "" 2919 2920 #: inc/admin/dashboard/class-dashboard.php:308 2921 #: inc/admin/dashboard/views/starter-templates.php:28 2922 #: inc/admin/dashboard/views/free-vs-pro.php:181 2447 2923 msgid "Pro" 2448 2924 msgstr "" 2449 2925 2450 #: inc/admin/dashboard/ class-admin.php:1232451 msgid "Pro cessing..."2452 msgstr "" 2453 2454 #: inc/admin/dashboard/ class-welcome-notice.php:712455 msgid " Quick Links"2456 msgstr "" 2457 2458 #: inc/admin/dashboard/views/ dashboard.php:792459 msgid " Quick Settings"2926 #: inc/admin/dashboard/views/overview.php:132 2927 msgid "Pro features" 2928 msgstr "" 2929 2930 #: inc/admin/dashboard/views/free-vs-pro.php:143 2931 msgid "Pro Only" 2932 msgstr "" 2933 2934 #: inc/admin/dashboard/views/recommended.php:23 2935 msgid "Professional services" 2460 2936 msgstr "" 2461 2937 … … 2472 2948 msgstr "" 2473 2949 2474 #: inc/admin/dashboard/views/dashboard.php:167 2475 msgid "Reaction Add-Ons" 2476 msgstr "" 2477 2478 #: inc/template-functions.php:156 2950 #: inc/template-functions.php:155 2479 2951 msgid "Read More" 2480 2952 msgstr "" 2481 2953 2482 #: inc/template-functions.php:15 92954 #: inc/template-functions.php:158 2483 2955 #, php-format 2484 2956 msgid "Read more about %s" 2485 2957 msgstr "" 2486 2958 2487 #: inc/admin/dashboard/views/help.php:2 62488 msgid "Read Theme Documentation"2959 #: inc/admin/dashboard/views/help.php:21 2960 msgid "Read the docs" 2489 2961 msgstr "" 2490 2962 … … 2501 2973 msgstr "" 2502 2974 2975 #: inc/admin/dashboard/views/features.php:24 2976 msgid "Readable font" 2977 msgstr "" 2978 2979 #: inc/admin/dashboard/views/features.php:104 2980 msgid "Reader toolbar" 2981 msgstr "" 2982 2983 #: inc/admin/dashboard/views/features.php:26 2984 msgid "Reading mask" 2985 msgstr "" 2986 2987 #: inc/admin/dashboard/views/features.php:61 2988 msgid "Reading mask, reading line, text to speech and pause animations" 2989 msgstr "" 2990 2503 2991 #. 1: link to WP admin new post page. 2504 2992 #: template-parts/content-none.php:24 … … 2508 2996 msgstr "" 2509 2997 2998 #. %s: theme name. 2999 #: inc/admin/dashboard/views/changelog.php:19 3000 #, php-format 3001 msgid "Recent %s releases" 3002 msgstr "" 3003 2510 3004 #: inc/admin/widgets/class-recent-post.php:27 2511 3005 msgid "Recent Posts" 2512 3006 msgstr "" 2513 3007 3008 #: inc/admin/dashboard/class-dashboard.php:231 3009 msgid "Recommended" 3010 msgstr "" 3011 2514 3012 #: inc/admin/customizer/helpers/helper-function.php:351 2515 3013 msgid "Recommended Alternate Grid View" … … 2524 3022 msgstr "" 2525 3023 2526 #: inc/admin/dashboard/ class-welcome-notice.php:662527 msgid "Recommended Plugins"3024 #: inc/admin/dashboard/views/recommended.php:56 3025 msgid "Recommended plugins" 2528 3026 msgstr "" 2529 3027 … … 2569 3067 msgstr "" 2570 3068 2571 #: inc/admin/meta-box/category-meta-box.php:2 02572 #: inc/admin/meta-box/category-meta-box.php: 483069 #: inc/admin/meta-box/category-meta-box.php:21 3070 #: inc/admin/meta-box/category-meta-box.php:50 2573 3071 #: inc/admin/widgets/class-author.php:186 inc/admin/widgets/widget-base.php:533 2574 3072 msgid "Remove image" 2575 msgstr ""2576 2577 #: inc/admin/dashboard/views/dashboard.php:1712578 msgid "Remove Theme Credit"2579 3073 msgstr "" 2580 3074 … … 2591 3085 #: inc/admin/customizer/helpers/helper-function.php:422 2592 3086 msgid "Right Sidebar" 3087 msgstr "" 3088 3089 #: inc/admin/dashboard/views/features.php:186 3090 msgid "Schema markup" 3091 msgstr "" 3092 3093 #: inc/admin/dashboard/views/features.php:142 3094 msgid "Schema markup and XML sitemaps for your posts" 2593 3095 msgstr "" 2594 3096 … … 2612 3114 msgstr "" 2613 3115 3116 #: inc/admin/dashboard/views/features.php:116 3117 msgid "Search news…" 3118 msgstr "" 3119 3120 #: inc/admin/dashboard/views/features.php:174 3121 msgid "Search preview" 3122 msgstr "" 3123 2614 3124 #. %s: search query. 2615 3125 #: search.php:24 … … 2624 3134 msgstr "" 2625 3135 3136 #: inc/admin/dashboard/views/features.php:33 3137 msgid "Search, edit text" 3138 msgstr "" 3139 2626 3140 #: inc/admin/customizer/sections/highlight-cat-post.php:64 2627 3141 msgid "Section Title" … … 2636 3150 msgstr "" 2637 3151 2638 #: template-parts/pagination/post-load.php:42 3152 #: inc/admin/dashboard/class-admin.php:200 3153 msgid "Security" 3154 msgstr "" 3155 3156 #: template-parts/pagination/post-load.php:43 2639 3157 msgid "Security check failed: Query vars modified." 2640 3158 msgstr "" 2641 3159 2642 #. %s: Theme Name 2643 #: inc/admin/dashboard/views/dashboard.php:317 2644 msgid "" 2645 "Seek answers on the WordPress.org community support forum where a supportive " 2646 "community is ready to assist. While our primary focus is on delivering " 2647 "premium support to our pro users, we're also here to help you with " 2648 "occasional queries regarding our free theme." 3160 #: inc/admin/dashboard/views/recommended.php:36 3161 msgid "See what’s included" 2649 3162 msgstr "" 2650 3163 … … 2692 3205 msgstr "" 2693 3206 2694 #: inc/admin/meta-box/category-meta-box.php:2 72695 #: inc/admin/meta-box/category-meta-box.php:5 73207 #: inc/admin/meta-box/category-meta-box.php:28 3208 #: inc/admin/meta-box/category-meta-box.php:59 2696 3209 msgid "" 2697 3210 "Select color for this category that will be displayed on the front end in " … … 2747 3260 msgstr "" 2748 3261 2749 #. %s: Theme Name. 2750 #: inc/admin/dashboard/views/help.php:117 2751 msgid "" 2752 "Sharing your review is a valuable way to help us enhance your experience." 3262 #: inc/admin/dashboard/views/features.php:190 3263 msgid "SEO checks" 3264 msgstr "" 3265 3266 #: inc/admin/dashboard/views/features.php:184 3267 msgid "SEO title" 3268 msgstr "" 3269 3270 #: inc/admin/dashboard/views/features.php:141 3271 msgid "SEO titles and meta descriptions with a live search preview" 3272 msgstr "" 3273 3274 #. %s: theme name. 3275 #: inc/admin/dashboard/views/overview.php:83 3276 #, php-format 3277 msgid "Set up %s" 3278 msgstr "" 3279 3280 #: inc/admin/dashboard/views/features.php:67 3281 msgid "Set up the toolbar" 3282 msgstr "" 3283 3284 #: inc/admin/dashboard/views/overview.php:87 3285 msgid "Setup progress" 3286 msgstr "" 3287 3288 #: inc/admin/dashboard/views/overview.php:147 3289 msgid "" 3290 "Setup, customisation, speed and ongoing care from our WordPress engineers." 3291 msgstr "" 3292 3293 #: inc/admin/dashboard/views/help.php:63 3294 msgid "Sharing your experience helps us improve the theme." 2753 3295 msgstr "" 2754 3296 … … 2761 3303 msgstr "" 2762 3304 3305 #: inc/admin/dashboard/views/recommended.php:96 3306 msgid "Show all WPInterface themes" 3307 msgstr "" 3308 2763 3309 #: inc/admin/widgets/class-slider-post.php:214 2764 3310 #: inc/admin/widgets/class-recent-post.php:155 … … 2830 3376 msgstr "" 2831 3377 3378 #: inc/admin/dashboard/views/recommended.php:101 3379 msgid "Show more themes" 3380 msgstr "" 3381 2832 3382 #: inc/admin/widgets/class-category-grid.php:90 2833 3383 msgid "Show Post Count" … … 2886 3436 msgstr "" 2887 3437 3438 #: inc/admin/dashboard/views/overview.php:52 3439 msgid "Single post" 3440 msgstr "" 3441 2888 3442 #: inc/admin/meta-box/meta-box.php:72 2889 3443 msgid "Single Post Meta" … … 2894 3448 msgstr "" 2895 3449 2896 #: inc/admin/dashboard/views/dashboard.php:115 2897 msgid "Single Sidebar Options" 2898 msgstr "" 2899 2900 #: inc/admin/dashboard/views/dashboard.php:90 2901 msgid "Site Identity" 2902 msgstr "" 2903 2904 #: header.php:23 3450 #: inc/admin/dashboard/views/overview.php:47 3451 msgid "Site identity" 3452 msgstr "" 3453 3454 #: inc/admin/dashboard/class-admin.php:254 3455 msgid "" 3456 "Skip the setup work. Our team gets your news or blog site running on " 3457 "BlogAura so you can start publishing." 3458 msgstr "" 3459 3460 #: header.php:23 inc/admin/dashboard/views/features.php:109 2905 3461 msgid "Skip to content" 2906 3462 msgstr "" … … 2960 3516 msgstr "" 2961 3517 2962 #: inc/admin/dashboard/views/dashboard.php:163 2963 msgid "Social Share" 3518 #: inc/admin/dashboard/views/features.php:143 3519 msgid "Social previews for Facebook and X" 3520 msgstr "" 3521 3522 #: inc/admin/dashboard/views/overview.php:67 3523 msgid "Social share" 2964 3524 msgstr "" 2965 3525 … … 2989 3549 msgstr "" 2990 3550 3551 #: inc/admin/dashboard/class-theme-review-notice.php:98 3552 msgid "Something not working, or missing a feature?" 3553 msgstr "" 3554 3555 #: inc/admin/dashboard/class-welcome-notice.php:61 3556 msgid "" 3557 "Something went wrong. Please try again, or install the plugins from Plugins " 3558 "› Add New." 3559 msgstr "" 3560 2991 3561 #: template-parts/content-none.php:37 2992 3562 msgid "" … … 2999 3569 msgstr "" 3000 3570 3571 #: inc/admin/dashboard/class-admin.php:266 3572 msgid "Speed & Core Web Vitals" 3573 msgstr "" 3574 3575 #: inc/admin/dashboard/views/features.php:114 3576 msgid "Sport" 3577 msgstr "" 3578 3001 3579 #: inc/admin/customizer/sections/spotlight-block.php:122 3002 3580 msgid "Spotlight Category Section Meta" … … 3011 3589 msgstr "" 3012 3590 3013 #: inc/admin/dashboard/views/dashboard.php:42 3014 msgid "Start Building with BlogAura!" 3015 msgstr "" 3016 3017 #: inc/admin/dashboard/class-dashboard.php:143 3018 msgid "Starter Templates" 3591 #: inc/admin/dashboard/class-welcome-notice.php:96 3592 msgid "Starter plugins are installed." 3593 msgstr "" 3594 3595 #: inc/admin/dashboard/class-dashboard.php:227 3596 #: inc/admin/dashboard/views/starter-templates.php:76 3597 msgid "Starter sites" 3598 msgstr "" 3599 3600 #: inc/admin/dashboard/views/starter-templates.php:49 3601 msgid "Starter sites need a free plugin" 3602 msgstr "" 3603 3604 #. %s: theme name. 3605 #: inc/admin/dashboard/views/help.php:20 3606 #, php-format 3607 msgid "Step-by-step guides for every %s setting." 3019 3608 msgstr "" 3020 3609 … … 3109 3698 msgstr "" 3110 3699 3111 #: inc/admin/dashboard/views/dashboard.php:2923112 #: inc/admin/dashboard/views/help.php:1233113 msgid "Submit a Review"3114 msgstr ""3115 3116 3700 #: inc/admin/widgets/class-youtube-video.php:83 3117 #: inc/admin/dashboard/views/ help.php:813701 #: inc/admin/dashboard/views/features.php:118 3118 3702 msgid "Subscribe" 3119 3703 msgstr "" 3120 3704 3121 #: inc/admin/dashboard/views/dashboard.php:299 3122 #: inc/admin/dashboard/views/help.php:37 3705 #: inc/admin/dashboard/views/free-vs-pro.php:149 3123 3706 msgid "Support" 3124 3707 msgstr "" 3125 3708 3126 #: inc/admin/dashboard/ class-theme-review-notice.php:1013127 msgid "Su re, I'd love to!"3709 #: inc/admin/dashboard/views/overview.php:165 3710 msgid "Support forum on WordPress.org" 3128 3711 msgstr "" 3129 3712 … … 3132 3715 msgstr "" 3133 3716 3717 #: inc/admin/dashboard/views/features.php:128 3718 msgid "Tab →" 3719 msgstr "" 3720 3134 3721 #. 1: list of tags. 3135 3722 #: inc/template-tags.php:227 3136 3723 #, php-format 3137 3724 msgid "Tagged %1$s" 3725 msgstr "" 3726 3727 #: inc/admin/dashboard/class-admin.php:290 3728 msgid "Technical SEO for WordPress" 3138 3729 msgstr "" 3139 3730 … … 3154 3745 msgstr "" 3155 3746 3156 #: inc/admin/dashboard/class-theme-review-notice.php:95 3157 msgid "Thank you for being an awesome part of our community! 💖" 3158 msgstr "" 3159 3160 #: inc/admin/dashboard/class-welcome-notice.php:60 3161 msgid "Thank you for choosing BlogAura!" 3747 #: inc/admin/dashboard/views/features.php:59 3748 msgid "Text size, line height, readable and dyslexia-friendly fonts" 3162 3749 msgstr "" 3163 3750 … … 3169 3756 msgstr "" 3170 3757 3758 #. Demo article text. Keep the <u> tags around the two links. 3759 #: inc/admin/dashboard/views/features.php:85 3760 msgid "" 3761 "The plan passed on Tuesday. Read the <u>full report</u> or see <u>what " 3762 "changes next</u>." 3763 msgstr "" 3764 3171 3765 #. 1: Theme name, 2: Theme author. 3172 #: inc/template-functions.php:22 23766 #: inc/template-functions.php:221 3173 3767 #, php-format 3174 3768 msgid "Theme %1$s designed by %2$s." 3769 msgstr "" 3770 3771 #: inc/admin/dashboard/class-welcome-notice.php:106 3772 msgid "Theme activated" 3175 3773 msgstr "" 3176 3774 … … 3179 3777 msgstr "" 3180 3778 3181 #: inc/admin/dashboard/class- welcome-notice.php:753182 msgid "Theme Dashboard"3183 msgstr "" 3184 3185 #: inc/admin/dashboard/views/ products.php:63186 msgid "Theme s"3779 #: inc/admin/dashboard/class-dashboard.php:322 3780 msgid "Theme dashboard sections" 3781 msgstr "" 3782 3783 #: inc/admin/dashboard/views/free-vs-pro.php:96 3784 msgid "Theme Widgets" 3187 3785 msgstr "" 3188 3786 … … 3214 3812 msgstr "" 3215 3813 3216 #: inc/admin/meta-box/category-meta-box.php:1 33217 #: inc/admin/meta-box/category-meta-box.php:4 03218 #: inc/admin/meta-box/category-meta-box.php:1 223814 #: inc/admin/meta-box/category-meta-box.php:14 3815 #: inc/admin/meta-box/category-meta-box.php:42 3816 #: inc/admin/meta-box/category-meta-box.php:132 3219 3817 #: inc/admin/widgets/class-tab-post.php:274 3220 3818 #: inc/admin/widgets/class-recent-post.php:120 … … 3288 3886 msgstr "" 3289 3887 3290 #: inc/admin/dashboard/views/starter-templates.php:123291 msgid ""3292 "To import starter sites for BlogAura, you need to install and activate the "3293 "One-Click Demo Import and WPInterface Add-ons plugins."3294 msgstr ""3295 3296 3888 #: inc/admin/customizer/sections/top-bar.php:109 3297 3889 msgid "Today's Date Format" … … 3300 3892 #: inc/admin/customizer/helpers/defaults.php:52 3301 3893 msgid "Today:" 3894 msgstr "" 3895 3896 #: inc/admin/dashboard/views/features.php:165 3897 msgid "Today’s headlines" 3302 3898 msgstr "" 3303 3899 … … 3321 3917 msgstr "" 3322 3918 3919 #: inc/admin/dashboard/class-dashboard.php:149 3920 msgid "Try again" 3921 msgstr "" 3922 3923 #: inc/admin/dashboard/views/features.php:104 3924 msgid "Try it" 3925 msgstr "" 3926 3927 #: inc/admin/dashboard/views/features.php:70 3928 msgid "Try it on the Pro demo" 3929 msgstr "" 3930 3323 3931 #: inc/admin/widgets/class-social-menu.php:59 3324 3932 msgid "Two" … … 3337 3945 msgstr "" 3338 3946 3947 #: inc/admin/dashboard/views/overview.php:62 3948 msgid "Typography" 3949 msgstr "" 3950 3951 #: inc/admin/dashboard/views/free-vs-pro.php:205 3952 msgid "Unlock every feature in the comparison above" 3953 msgstr "" 3954 3339 3955 #: inc/admin/customizer/helpers/theme-upsell.php:6 3340 3956 msgid "Unlock More Features" … … 3343 3959 #: inc/admin/customizer/helpers/controls.php:243 3344 3960 #: inc/admin/customizer/helpers/controls.php:287 3345 #: inc/admin/dashboard/views/free-vs-pro.php:2813346 3961 msgid "Upgrade Now" 3347 3962 msgstr "" 3348 3963 3349 #: inc/admin/dashboard/class-dashboard.php:200 3350 #: inc/admin/dashboard/class-welcome-notice.php:81 3351 #: inc/admin/dashboard/views/dashboard.php:55 3964 #: inc/admin/dashboard/class-dashboard.php:318 3965 #: inc/admin/dashboard/views/starter-templates.php:35 3966 #: inc/admin/dashboard/views/features.php:69 3967 #: inc/admin/dashboard/views/features.php:147 3968 #: inc/admin/dashboard/views/free-vs-pro.php:173 3969 #: inc/admin/dashboard/views/free-vs-pro.php:216 3352 3970 msgid "Upgrade to Pro" 3353 3971 msgstr "" 3354 3972 3355 #: inc/admin/meta-box/category-meta-box.php: 193356 #: inc/admin/meta-box/category-meta-box.php:4 73973 #: inc/admin/meta-box/category-meta-box.php:20 3974 #: inc/admin/meta-box/category-meta-box.php:49 3357 3975 #: inc/admin/widgets/class-author.php:184 inc/admin/widgets/widget-base.php:531 3358 3976 msgid "Upload/Add image" … … 3371 3989 msgstr "" 3372 3990 3373 #: inc/admin/meta-box/category-meta-box.php: 953991 #: inc/admin/meta-box/category-meta-box.php:105 3374 3992 msgid "Use image" 3375 3993 msgstr "" … … 3379 3997 msgstr "" 3380 3998 3381 #: inc/admin/dashboard/views/dashboard.php:346 3382 #: inc/admin/dashboard/views/help.php:130 3383 msgid "Useful Plugins" 3999 #. %s: theme version. 4000 #. %s: version number. 4001 #: inc/admin/dashboard/class-dashboard.php:306 4002 #: inc/admin/dashboard/views/changelog.php:42 4003 #, php-format 4004 msgid "Version %s" 3384 4005 msgstr "" 3385 4006 … … 3395 4016 msgstr "" 3396 4017 3397 #: inc/admin/dashboard/views/help.php: 303398 msgid "View Now"3399 msgstr "" 3400 3401 #: inc/admin/dashboard/views/ dashboard.php:253402 msgid "View Starter Templates"4018 #: inc/admin/dashboard/views/help.php:48 4019 msgid "View changelog" 4020 msgstr "" 4021 4022 #: inc/admin/dashboard/views/free-vs-pro.php:217 4023 msgid "View the Pro demo" 3403 4024 msgstr "" 3404 4025 … … 3408 4029 msgstr "" 3409 4030 3410 #. %1$s: Opening of strong tag, %2$s: Theme's Name, %3$s: Closing of strong tag 3411 #: inc/admin/dashboard/class-theme-review-notice.php:86 3412 #, php-format 3413 msgid "" 3414 "We hope you're enjoying our %1$s%2$s%3$s WordPress theme! Your feedback " 3415 "helps us improve and reach more users. If you love our theme, please take a " 3416 "moment to leave us a 5-star rating. Your support means the world to us!" 3417 msgstr "" 3418 3419 #: inc/admin/dashboard/views/help.php:38 3420 msgid "" 3421 "We would be happy to guide you through any issues and queries you have " 3422 "regarding BlogAura!" 4031 #: inc/admin/dashboard/class-admin.php:284 4032 msgid "VIP Support" 4033 msgstr "" 4034 4035 #: inc/admin/dashboard/views/help.php:35 4036 msgid "Visit the forum" 4037 msgstr "" 4038 4039 #: inc/admin/dashboard/views/features.php:90 4040 msgid "Weather" 3423 4041 msgstr "" 3424 4042 3425 4043 #: inc/admin/customizer/helpers/controls.php:237 3426 #: inc/admin/dashboard/views/dashboard.php:1553427 4044 msgid "Webmaster Tools" 4045 msgstr "" 4046 4047 #: inc/admin/dashboard/views/overview.php:70 4048 msgid "Webmaster tools" 3428 4049 msgstr "" 3429 4050 … … 3439 4060 msgstr "" 3440 4061 3441 #: inc/admin/dashboard/class-welcome-notice.php:57 3442 #, php-format 3443 msgid "Welcome %1$s!" 3444 msgstr "" 3445 3446 #. %s: Theme Name. 3447 #: inc/admin/dashboard/views/dashboard.php:286 3448 msgid "" 3449 "What do you think of our theme? Was it a good experience and did it match " 3450 "your expectations? Let us know so we can improve!" 4062 #: inc/admin/dashboard/class-admin.php:273 4063 msgid "Weekly updates, backups and monitoring. Cancel any time." 4064 msgstr "" 4065 4066 #: inc/admin/dashboard/class-dashboard.php:316 4067 #: inc/admin/dashboard/views/help.php:46 4068 #: inc/admin/dashboard/views/changelog.php:18 4069 msgid "What’s new" 4070 msgstr "" 4071 4072 #. %s: theme version. 4073 #: inc/admin/dashboard/views/overview.php:167 4074 #, php-format 4075 msgid "What’s new in %s" 4076 msgstr "" 4077 4078 #: inc/admin/dashboard/views/free-vs-pro.php:119 4079 msgid "Widget Blocks" 3451 4080 msgstr "" 3452 4081 … … 3457 4086 #: inc/compatibility/elementor/widgets/class-blogaura-elementor-widget-base.php:118 3458 4087 msgid "Widget Font" 4088 msgstr "" 4089 4090 #: inc/admin/dashboard/views/free-vs-pro.php:131 4091 msgid "Widget Grid" 3459 4092 msgstr "" 3460 4093 … … 3468 4101 #: inc/compatibility/elementor/widgets/class-blogaura-elementor-widget-base.php:86 3469 4102 msgid "Widget Title" 4103 msgstr "" 4104 4105 #: inc/admin/dashboard/views/free-vs-pro.php:93 4106 msgid "Widgets" 3470 4107 msgstr "" 3471 4108 … … 3582 4219 msgstr "" 3583 4220 4221 #: inc/admin/dashboard/views/free-vs-pro.php:41 4222 msgid "WooCommerce" 4223 msgstr "" 4224 3584 4225 #: inc/admin/widgets/widget-init.php:166 3585 4226 msgid "WooCommerce Product Page Sidebar" … … 3588 4229 #: inc/admin/widgets/widget-init.php:160 3589 4230 msgid "WooCommerce Shop/Category Page Sidebar" 4231 msgstr "" 4232 4233 #: inc/admin/dashboard/class-admin.php:272 4234 msgid "WordPress Care Plans" 4235 msgstr "" 4236 4237 #: inc/admin/dashboard/class-admin.php:260 4238 msgid "WordPress Theme Customization" 3590 4239 msgstr "" 3591 4240 … … 3600 4249 msgstr "" 3601 4250 4251 #: inc/admin/dashboard/views/features.php:113 4252 msgid "World" 4253 msgstr "" 4254 3602 4255 #. Author of the theme 4256 #: inc/admin/dashboard/views/overview.php:142 3603 4257 msgid "WPInterface" 4258 msgstr "" 4259 4260 #: inc/admin/dashboard/views/overview.php:145 4261 msgid "WPInterface services" 3604 4262 msgstr "" 3605 4263 … … 3609 4267 msgstr "" 3610 4268 3611 #: inc/admin/dashboard/views/help.php:66 3612 msgid "x" 3613 msgstr "" 3614 3615 #: inc/admin/dashboard/views/help.php:69 3616 msgid "X Community" 4269 #: inc/admin/dashboard/views/help.php:64 4270 msgid "Write a review" 4271 msgstr "" 4272 4273 #: inc/admin/dashboard/views/help.php:57 4274 msgid "X (Twitter)" 4275 msgstr "" 4276 4277 #: inc/admin/dashboard/views/features.php:187 4278 msgid "XML sitemap" 3617 4279 msgstr "" 3618 4280 … … 3637 4299 msgstr "" 3638 4300 4301 #: inc/admin/dashboard/class-admin.php:488 4302 #: inc/admin/dashboard/class-welcome-notice.php:152 4303 msgid "You are not allowed to perform this action." 4304 msgstr "" 4305 3639 4306 #: inc/admin/customizer/sections/footer.php:70 3640 4307 #, php-format … … 3651 4318 msgstr "" 3652 4319 3653 #: inc/admin/dashboard/views/help.php:76 3654 msgid "youtube" 3655 msgstr "" 3656 3657 #: inc/admin/dashboard/views/help.php:79 3658 msgid "Youtube Community" 4320 #: inc/admin/dashboard/views/help.php:58 4321 msgid "YouTube" 3659 4322 msgstr "" 3660 4323 … … 3666 4329 msgid "Zoom" 3667 4330 msgstr "" 4331 4332 #: inc/admin/dashboard/views/features.php:128 4333 msgid "⇧ Tab" 4334 msgstr "" -
blogaura/1.1.5/readme.txt
r348044 r353892 6 6 Requires at least: 5.9 7 7 Tested up to: 7.1 8 Requires PHP: 5.69 Version: 1.1. 38 Requires PHP: 7.4 9 Version: 1.1.5 10 10 License: GNU General Public License v2 or later 11 11 License URI: http://www.gnu.org/licenses/gpl-2.0.html … … 45 45 46 46 == Changelog == 47 48 = 1.1.5 - 2026-10-15 = 49 * Fix - The Free vs Pro table now shows its category headings. 50 * Fix - The Documentation button now opens the WPInterface documentation site; the theme page it linked to does not exist. 51 * Enhancement - Redesigned welcome notice: compact, uses the theme screenshot and the plugins' WordPress.org icons, shows a "plugins ready" state, and appears only on the Dashboard and Themes screens. 52 * Enhancement - Redesigned theme dashboard (Appearance › BlogAura) with a setup checklist that follows your site's progress, Customizer shortcuts and a new Recommended tab for WPInterface services, plugins and themes. 53 * Enhancement - The Recommended tab can list every WPInterface theme from WordPress.org. The list loads only when you click "Show all WPInterface themes", is cached for 12 hours, and screenshots load lazily. 54 * Enhancement - Starter sites tab redesigned to match the new dashboard, with preview and import buttons for each starter site plus the Pro starter site with its preview and an upgrade link, and a note that importing adds demo content, with the option to have the design set up on an existing site instead (imports still run in One Click Demo Import). 55 * Enhancement - "What's new" changelog panel opens from the dashboard header, with colour-coded labels for security updates, new features, enhancements, improvements and fixes. 56 * Enhancement - More visible "Upgrade to Pro" button in the dashboard header and an upgrade section below the Free vs Pro table. 57 * Enhancement - The Overview tab now shows animated previews of BlogAura Pro's accessibility toolbar (with a demo you can try) and of the SEO plugin included with Pro. They use HTML and CSS only (no images or external requests), pause when off screen and stay still for users who prefer reduced motion. 58 * Enhancement - New Header Style previews in the Customizer: SVG drawings that show each header layout as it really looks, in the theme's own colours, two per row, replacing the small grey images. 59 * Enhancement - The review request notice has the new notice design (like the welcome notice) and shows on the Dashboard and Themes screens only. 60 * Tweak - Dashboard and notice styles and scripts now load only on the screens that use them, without jQuery; dashboard images went from about 516 KB to 38 KB. 61 * Tweak - Recommended plugins are installed and activated through WordPress core screens; removed the old install/activate AJAX handlers. 62 * Tweak - Readme credits for the dashboard images and icons. 63 * Tweak - Removed Elementor from the recommended plugins; the theme supports it but does not need it. 64 65 = 1.1.4 - 2026-10-15 = 66 * Security - The welcome notice's "Get started" button can no longer be used by users without plugin permissions to install plugins; the notice is now shown only to administrators. 67 * Security - Load More requests now only accept viewable post types, and incomplete requests are rejected cleanly instead of raising PHP warnings. 68 * Security - Category colour and thumbnail settings now verify a nonce and the user's permission before saving. 69 * Fix - Category colours are no longer erased when a category is changed with Quick Edit or updated by a plugin or import. 70 * Fix - Minimum PHP version raised from 5.6 to 7.4; the theme code already requires PHP 7 and would not run on older versions. 71 * Tweak - The review request notice is shown to administrators only. 72 * Tweak - Review notice data is now removed with a single query when switching themes instead of loading every user. 73 * Tweak - Updated the translation template (POT) with the new and changed strings. 47 74 48 75 = 1.1.3 - 2026-09-07 = … … 105 132 * Animate on scroll.js, https://michalsnik.github.io/aos/ and https://github.com/michalsnik/aos/blob/next/LICENSE 106 133 * Copyright (c) 2015 Michał Sajnóg, MIT License, http://www.opensource.org/licenses/MIT 134 * Header style previews (assets/images/header-*.svg): drawn for this theme, [GPLv2 or later](https://www.gnu.org/licenses/gpl-2.0.html) 135 * Dashboard icons (inline SVG in inc/admin/dashboard/class-admin.php) based on Lucide https://lucide.dev, (C) Lucide Contributors, [ISC](https://lucide.dev/license) 107 136 108 137 == Image Used == 138 Theme dashboard images 139 140 * inc/admin/dashboard/images/theme-thumb.webp: a resized copy of this theme's screenshot (images credited above). 141 * inc/admin/dashboard/images/pro-starter.webp: a resized screenshot of the BlogAura Pro starter site (https://live-preview.wpinterface.com/blogaura-pro/). 142 * inc/admin/dashboard/images/plugin-*.webp: the icons of the recommended plugins, taken from each plugin's page on WordPress.org (https://wordpress.org/plugins/), (C) their respective authors. They are shown only to identify those plugins. 143 109 144 Image for theme screenshot 110 145 -
blogaura/1.1.5/style-rtl.css
r348044 r353892 7 7 Requires at least: 5.9 8 8 Tested up to: 7.1 9 Requires PHP: 5.610 Version: 1.1. 39 Requires PHP: 7.4 10 Version: 1.1.5 11 11 License: GNU General Public License v2 or later 12 12 License URI: http://www.gnu.org/licenses/gpl-2.0.html -
blogaura/1.1.5/style.css
r348044 r353892 7 7 Requires at least: 5.9 8 8 Tested up to: 7.1 9 Requires PHP: 5.610 Version: 1.1. 39 Requires PHP: 7.4 10 Version: 1.1.5 11 11 License: GNU General Public License v2 or later 12 12 License URI: http://www.gnu.org/licenses/gpl-2.0.html -
blogaura/1.1.5/template-parts/pagination/post-load.php
r329261 r353892 39 39 40 40 // Verify Query Vars Hash 41 if (!isset($_POST['query_vars_hash']) || $_POST['query_vars_hash'] !== wp_hash(stripslashes($_POST['query_vars']))) { 41 $raw_query_vars = (isset($_POST['query_vars']) && is_string($_POST['query_vars'])) ? wp_unslash($_POST['query_vars']) : ''; 42 if (!isset($_POST['query_vars_hash']) || $_POST['query_vars_hash'] !== wp_hash($raw_query_vars)) { 42 43 wp_send_json_error(__('Security check failed: Query vars modified.', 'blogaura')); 43 44 } 44 45 45 $query_vars = json_decode(stripslashes($_POST['query_vars']), true); 46 $query_vars = json_decode($raw_query_vars, true); 47 if (!is_array($query_vars)) { 48 $query_vars = array(); 49 } 46 50 47 $query_vars['post_type'] = (isset($_POST['post_type']) && !empty($_POST['post_type'])) ? esc_attr($_POST['post_type']) : 'post'; 51 $post_type = isset($_POST['post_type']) ? sanitize_key(wp_unslash($_POST['post_type'])) : 'post'; 52 $query_vars['post_type'] = (post_type_exists($post_type) && is_post_type_viewable($post_type)) ? $post_type : 'post'; 48 53 $query_vars['post_status'] = 'publish'; 49 $query_vars['paged'] = (int) $_POST['page'];54 $query_vars['paged'] = isset($_POST['page']) ? absint(wp_unslash($_POST['page'])) : 1; 50 55 51 56
Note:
See TracChangeset
for help on using the changeset viewer.
![(please configure the [header_logo] section in trac.ini)](/chrome/site/your_project_logo.png)