From 77f0ce8c16868a5334f269443753bd272db1a2eb Mon Sep 17 00:00:00 2001 From: web-devise Date: Tue, 9 Aug 2022 12:08:58 +0300 Subject: [PATCH 01/16] Google Fonts Fatal Error Fix --- includes/compatibility/ocean.php | 331 ++++++++++++++++--------------- 1 file changed, 172 insertions(+), 159 deletions(-) diff --git a/includes/compatibility/ocean.php b/includes/compatibility/ocean.php index 215df4e..fed8567 100644 --- a/includes/compatibility/ocean.php +++ b/includes/compatibility/ocean.php @@ -2,88 +2,90 @@ // Control Elementor google fonts add_filter( 'style_loader_src', 'oceanwp_local_elementor_webfonts_enqueue', 20, 2 ); -function oceanwp_local_elementor_webfonts_enqueue( $src, $handle ) { - if ( strpos( $handle, 'google-fonts-' ) !== 0 ) { - return $src; - } +if ( ! function_exists( 'oceanwp_local_elementor_webfonts_enqueue' ) ) { + function oceanwp_local_elementor_webfonts_enqueue( $src, $handle ) { + if ( strpos( $handle, 'google-fonts-' ) !== 0 ) { + return $src; + } - if ( true != get_theme_mod( 'ocean_local_elementor_google_font', false ) ) { - return $src; - } + if ( true != get_theme_mod( 'ocean_local_elementor_google_font', false ) ) { + return $src; + } - $url_obj = parse_url( $src ); - $url_params = array(); - if ( ! empty( $url_obj['query'] ) ) { - parse_str( $url_obj['query'], $url_params ); - } - if ( ! empty( $url_params['family'] ) ) { - $md5_key = $url_params['family']; - } + $url_obj = parse_url( $src ); + $url_params = array(); + if ( ! empty( $url_obj['query'] ) ) { + parse_str( $url_obj['query'], $url_params ); + } + if ( ! empty( $url_params['family'] ) ) { + $md5_key = $url_params['family']; + } - if ( empty( $md5_key ) ) { - return $src; - } + if ( empty( $md5_key ) ) { + return $src; + } - $font_style = ocean_get_google_font_css( $src ); - $font_style = explode( "\n", $font_style ); + $font_style = ocean_get_google_font_css( $src ); + $font_style = explode( "\n", $font_style ); - if ( is_array( $font_style ) && ! empty( $font_style ) ) { + if ( is_array( $font_style ) && ! empty( $font_style ) ) { - $webfonts_dir_path = oceanwp_get_local_webfonts_data_dir( $handle ); - $webfonts_css_dir_path = oceanwp_get_local_webfonts_css_data_dir( $handle ); + $webfonts_dir_path = oceanwp_get_local_webfonts_data_dir( $handle ); + $webfonts_css_dir_path = oceanwp_get_local_webfonts_css_data_dir( $handle ); - if ( is_array( $webfonts_dir_path ) && is_array( $webfonts_css_dir_path ) ) { - foreach ( $font_style as $font_style_line ) { - $font_style_line = trim( $font_style_line ); + if ( is_array( $webfonts_dir_path ) && is_array( $webfonts_css_dir_path ) ) { + foreach ( $font_style as $font_style_line ) { + $font_style_line = trim( $font_style_line ); - preg_match_all( "'url\((.*?)\)'si", $font_style_line, $matches ); + preg_match_all( "'url\((.*?)\)'si", $font_style_line, $matches ); - if ( $matches !== null && ! empty( $matches[0] ) && ! empty( $matches[1] ) ) { + if ( $matches !== null && ! empty( $matches[0] ) && ! empty( $matches[1] ) ) { - $remote_font_file_url = reset( $matches[1] ); + $remote_font_file_url = reset( $matches[1] ); - if ( ! empty( $remote_font_file_url ) ) { + if ( ! empty( $remote_font_file_url ) ) { - $file_name = basename( $remote_font_file_url ); + $file_name = basename( $remote_font_file_url ); - $local_font_file_path = trailingslashit( $webfonts_dir_path['upload_dir'] ) . $file_name; - $local_font_file_url = apply_filters( 'oceanwp_local_font_url', trailingslashit( $webfonts_dir_path['upload_url'] ) . $file_name ); + $local_font_file_path = trailingslashit( $webfonts_dir_path['upload_dir'] ) . $file_name; + $local_font_file_url = apply_filters( 'oceanwp_local_font_url', trailingslashit( $webfonts_dir_path['upload_url'] ) . $file_name ); - $local_css_file_name = md5( $md5_key ) . '.css'; - $local_css_file_path = trailingslashit( $webfonts_css_dir_path['upload_dir'] ) . $local_css_file_name; + $local_css_file_name = md5( $md5_key ) . '.css'; + $local_css_file_path = trailingslashit( $webfonts_css_dir_path['upload_dir'] ) . $local_css_file_name; - if ( file_exists( $local_font_file_path ) ) { - $font_style = str_replace( $remote_font_file_url, $local_font_file_url, $font_style ); - $is_wrote_local_css_file_path = file_put_contents( $local_css_file_path, $font_style ); - if ( $is_wrote_local_css_file_path !== false ) { - $src = trailingslashit( $webfonts_css_dir_path['upload_url'] ) . $local_css_file_name; - } - } else { - require_once ABSPATH . 'wp-admin' . '/includes/file.php'; + if ( file_exists( $local_font_file_path ) ) { + $font_style = str_replace( $remote_font_file_url, $local_font_file_url, $font_style ); + $is_wrote_local_css_file_path = file_put_contents( $local_css_file_path, $font_style ); + if ( $is_wrote_local_css_file_path !== false ) { + $src = trailingslashit( $webfonts_css_dir_path['upload_url'] ) . $local_css_file_name; + } + } else { + require_once ABSPATH . 'wp-admin' . '/includes/file.php'; - $tmp = download_url( $remote_font_file_url ); + $tmp = download_url( $remote_font_file_url ); - if ( ! is_wp_error( $tmp ) ) { - $move_new_file = @copy( $tmp, $local_font_file_path ); + if ( ! is_wp_error( $tmp ) ) { + $move_new_file = @copy( $tmp, $local_font_file_path ); - if ( $move_new_file && file_exists( $local_font_file_path ) ) { - $font_style = str_replace( $remote_font_file_url, $local_font_file_url, $font_style ); - $is_wrote_local_css_file_path = file_put_contents( $local_css_file_path, $font_style ); - if ( $is_wrote_local_css_file_path !== false ) { - $src = trailingslashit( $webfonts_css_dir_path['upload_url'] ) . $local_css_file_name; + if ( $move_new_file && file_exists( $local_font_file_path ) ) { + $font_style = str_replace( $remote_font_file_url, $local_font_file_url, $font_style ); + $is_wrote_local_css_file_path = file_put_contents( $local_css_file_path, $font_style ); + if ( $is_wrote_local_css_file_path !== false ) { + $src = trailingslashit( $webfonts_css_dir_path['upload_url'] ) . $local_css_file_name; + } } - } - @unlink( $tmp ); + @unlink( $tmp ); + } } } } } } } - } - return $src; + return $src; + } } @@ -91,171 +93,182 @@ function oceanwp_local_elementor_webfonts_enqueue( $src, $handle ) { * Enqueues Local Google Font */ add_filter( 'oceanwp_enqueue_google_font_url', 'oceanwp_webfonts_enqueue', 20, 2 ); -function oceanwp_webfonts_enqueue( $src, $font_name ) { - if ( true != get_theme_mod( 'ocean_local_google_font', true ) ) { - return $src; - } +if ( ! function_exists( 'oceanwp_webfonts_enqueue' ) ) { + function oceanwp_webfonts_enqueue( $src, $font_name ) { + if ( true != get_theme_mod( 'ocean_local_google_font', true ) ) { + return $src; + } - $font_style = ocean_get_google_font_css( $src ); - $font_style = explode( "\n", $font_style ); + $font_style = ocean_get_google_font_css( $src ); + $font_style = explode( "\n", $font_style ); - if ( is_array( $font_style ) && ! empty( $font_style ) ) { + if ( is_array( $font_style ) && ! empty( $font_style ) ) { - $webfonts_dir_path = oceanwp_get_local_webfonts_data_dir( $font_name ); - $webfonts_css_dir_path = oceanwp_get_local_webfonts_css_data_dir( $font_name ); + $webfonts_dir_path = oceanwp_get_local_webfonts_data_dir( $font_name ); + $webfonts_css_dir_path = oceanwp_get_local_webfonts_css_data_dir( $font_name ); - if ( is_array( $webfonts_dir_path ) && is_array( $webfonts_css_dir_path ) ) { - foreach ( $font_style as $font_style_line ) { - $font_style_line = trim( $font_style_line ); + if ( is_array( $webfonts_dir_path ) && is_array( $webfonts_css_dir_path ) ) { + foreach ( $font_style as $font_style_line ) { + $font_style_line = trim( $font_style_line ); - preg_match_all( "'url\((.*?)\)'si", $font_style_line, $matches ); + preg_match_all( "'url\((.*?)\)'si", $font_style_line, $matches ); - if ( $matches !== null && ! empty( $matches[0] ) && ! empty( $matches[1] ) ) { + if ( $matches !== null && ! empty( $matches[0] ) && ! empty( $matches[1] ) ) { - $remote_font_file_url = reset( $matches[1] ); + $remote_font_file_url = reset( $matches[1] ); - if ( ! empty( $remote_font_file_url ) ) { + if ( ! empty( $remote_font_file_url ) ) { - $file_name = basename( $remote_font_file_url ); + $file_name = basename( $remote_font_file_url ); - $local_font_file_path = trailingslashit( $webfonts_dir_path['upload_dir'] ) . $file_name; - $local_font_file_url = apply_filters( 'oceanwp_local_font_url', trailingslashit( $webfonts_dir_path['upload_url'] ) . $file_name ); + $local_font_file_path = trailingslashit( $webfonts_dir_path['upload_dir'] ) . $file_name; + $local_font_file_url = apply_filters( 'oceanwp_local_font_url', trailingslashit( $webfonts_dir_path['upload_url'] ) . $file_name ); - $local_css_file_name = md5( $remote_font_file_url ) . '.css'; - $local_css_file_path = trailingslashit( $webfonts_css_dir_path['upload_dir'] ) . $local_css_file_name; + $local_css_file_name = md5( $remote_font_file_url ) . '.css'; + $local_css_file_path = trailingslashit( $webfonts_css_dir_path['upload_dir'] ) . $local_css_file_name; - if ( file_exists( $local_font_file_path ) ) { - $font_style = str_replace( $remote_font_file_url, $local_font_file_url, $font_style ); - $is_wrote_local_css_file_path = file_put_contents( $local_css_file_path, $font_style ); - if ( $is_wrote_local_css_file_path !== false ) { - $src = trailingslashit( $webfonts_css_dir_path['upload_url'] ) . $local_css_file_name; - } - } else { - require_once ABSPATH . 'wp-admin' . '/includes/file.php'; + if ( file_exists( $local_font_file_path ) ) { + $font_style = str_replace( $remote_font_file_url, $local_font_file_url, $font_style ); + $is_wrote_local_css_file_path = file_put_contents( $local_css_file_path, $font_style ); + if ( $is_wrote_local_css_file_path !== false ) { + $src = trailingslashit( $webfonts_css_dir_path['upload_url'] ) . $local_css_file_name; + } + } else { + require_once ABSPATH . 'wp-admin' . '/includes/file.php'; - $tmp = download_url( $remote_font_file_url ); + $tmp = download_url( $remote_font_file_url ); - if ( ! is_wp_error( $tmp ) ) { - $move_new_file = @copy( $tmp, $local_font_file_path ); + if ( ! is_wp_error( $tmp ) ) { + $move_new_file = @copy( $tmp, $local_font_file_path ); - if ( $move_new_file && file_exists( $local_font_file_path ) ) { - $font_style = str_replace( $remote_font_file_url, $local_font_file_url, $font_style ); - $is_wrote_local_css_file_path = file_put_contents( $local_css_file_path, $font_style ); - if ( $is_wrote_local_css_file_path !== false ) { - $src = trailingslashit( $webfonts_css_dir_path['upload_url'] ) . $local_css_file_name; + if ( $move_new_file && file_exists( $local_font_file_path ) ) { + $font_style = str_replace( $remote_font_file_url, $local_font_file_url, $font_style ); + $is_wrote_local_css_file_path = file_put_contents( $local_css_file_path, $font_style ); + if ( $is_wrote_local_css_file_path !== false ) { + $src = trailingslashit( $webfonts_css_dir_path['upload_url'] ) . $local_css_file_name; + } } - } - @unlink( $tmp ); + @unlink( $tmp ); + } } } } } } } - } - return $src; + return $src; + } } /** * Get Google Font CSS */ -function ocean_get_google_font_css( $url ) { - if ( strpos( $url, 'https:' ) === false && strpos( $url, 'http:' ) === false ) { - $url = 'https:' . $url; - } - $request = wp_safe_remote_get( - $url, - array( - 'sslverify' => false, - ) - ); - if ( is_wp_error( $request ) ) { - return ''; +if ( ! function_exists( 'ocean_get_google_font_css' ) ) { + function ocean_get_google_font_css( $url ) { + if ( strpos( $url, 'https:' ) === false && strpos( $url, 'http:' ) === false ) { + $url = 'https:' . $url; + } + $request = wp_safe_remote_get( + $url, + array( + 'sslverify' => false, + ) + ); + if ( is_wp_error( $request ) ) { + return ''; + } + $result = wp_remote_retrieve_body( $request ); + return $result; } - $result = wp_remote_retrieve_body( $request ); - return $result; } /** * Get Local WebFonts data */ -function oceanwp_get_local_webfonts_data_dir( $file_name ) { - $upload = wp_upload_dir(); - $uploads_dir = 'oceanwp-webfonts'; +if ( ! function_exists( 'oceanwp_get_local_webfonts_data_dir' ) ) { + function oceanwp_get_local_webfonts_data_dir( $file_name ) { + $upload = wp_upload_dir(); + $uploads_dir = 'oceanwp-webfonts'; + + // Create directory + if ( ! is_dir( trailingslashit( $upload['basedir'] ) . $uploads_dir ) ) { + wp_mkdir_p( trailingslashit( $upload['basedir'] ) . $uploads_dir ); + } - // Create directory - if ( ! is_dir( trailingslashit( $upload['basedir'] ) . $uploads_dir ) ) { - wp_mkdir_p( trailingslashit( $upload['basedir'] ) . $uploads_dir ); + return array( + 'upload_dir' => trailingslashit( $upload['basedir'] ) . $uploads_dir, + 'upload_url' => trailingslashit( $upload['baseurl'] ) . $uploads_dir, + ); } - - return array( - 'upload_dir' => trailingslashit( $upload['basedir'] ) . $uploads_dir, - 'upload_url' => trailingslashit( $upload['baseurl'] ) . $uploads_dir, - ); } /** * Get Local WebFonts CSS data */ -function oceanwp_get_local_webfonts_css_data_dir( $file_name ) { - $upload = wp_upload_dir(); - $uploads_dir = 'oceanwp-webfonts-css'; +if ( ! function_exists( 'oceanwp_get_local_webfonts_css_data_dir' ) ) { + function oceanwp_get_local_webfonts_css_data_dir( $file_name ) { + $upload = wp_upload_dir(); + $uploads_dir = 'oceanwp-webfonts-css'; + + // Create directory + if ( ! is_dir( trailingslashit( $upload['basedir'] ) . $uploads_dir ) ) { + wp_mkdir_p( trailingslashit( $upload['basedir'] ) . $uploads_dir ); + } - // Create directory - if ( ! is_dir( trailingslashit( $upload['basedir'] ) . $uploads_dir ) ) { - wp_mkdir_p( trailingslashit( $upload['basedir'] ) . $uploads_dir ); + return array( + 'upload_dir' => trailingslashit( $upload['basedir'] ) . $uploads_dir, + 'upload_url' => trailingslashit( $upload['baseurl'] ) . $uploads_dir, + ); } - - return array( - 'upload_dir' => trailingslashit( $upload['basedir'] ) . $uploads_dir, - 'upload_url' => trailingslashit( $upload['baseurl'] ) . $uploads_dir, - ); } add_filter( 'oceanwp_local_font_url', 'oceanwp_webfonts_local_font_url' ); -function oceanwp_webfonts_local_font_url( $url ) { - if ( strpos( $url, 'https://' ) === 0 ) { - $url = str_replace( 'https://', '//', $url ); - } - if ( strpos( $url, 'http://' ) === 0 ) { - $url = str_replace( 'http://', '//', $url ); +if ( ! function_exists( 'oceanwp_webfonts_local_font_url' ) ) { + function oceanwp_webfonts_local_font_url( $url ) { + if ( strpos( $url, 'https://' ) === 0 ) { + $url = str_replace( 'https://', '//', $url ); + } + if ( strpos( $url, 'http://' ) === 0 ) { + $url = str_replace( 'http://', '//', $url ); + } + return $url; } - return $url; } // Setup theme => Generate the custom CSS file. add_action( 'admin_bar_init', 'ocean_save_customizer_css_in_file', 9999 ); +if ( ! function_exists( 'ocean_save_customizer_css_in_file' ) ) { + function ocean_save_customizer_css_in_file( $output = null ) { -function ocean_save_customizer_css_in_file( $output = null ) { - - // If Custom File is not selected. - if ( 'file' !== get_theme_mod( 'ocean_customzer_styling', 'head' ) ) { - return; - } + // If Custom File is not selected. + if ( 'file' !== get_theme_mod( 'ocean_customzer_styling', 'head' ) ) { + return; + } - // Get all the customier css. - $output = apply_filters( 'ocean_head_css', $output ); + // Get all the customier css. + $output = apply_filters( 'ocean_head_css', $output ); - // Get Custom Panel CSS. - $output_custom_css = wp_get_custom_css(); + // Get Custom Panel CSS. + $output_custom_css = wp_get_custom_css(); - // Minified the Custom CSS. - $output .= oceanwp_minify_css( $output_custom_css ); + // Minified the Custom CSS. + $output .= oceanwp_minify_css( $output_custom_css ); - // We will probably need to load this file. - require_once ABSPATH . 'wp-admin' . DIRECTORY_SEPARATOR . 'includes' . DIRECTORY_SEPARATOR . 'file.php'; + // We will probably need to load this file. + require_once ABSPATH . 'wp-admin' . DIRECTORY_SEPARATOR . 'includes' . DIRECTORY_SEPARATOR . 'file.php'; - $upload_dir = wp_upload_dir(); // Grab uploads folder array. - $dir = trailingslashit( $upload_dir['basedir'] ) . 'oceanwp' . DIRECTORY_SEPARATOR; // Set storage directory path. + $upload_dir = wp_upload_dir(); // Grab uploads folder array. + $dir = trailingslashit( $upload_dir['basedir'] ) . 'oceanwp' . DIRECTORY_SEPARATOR; // Set storage directory path. - if ( ! file_exists( untrailingslashit( $dir ) ) ) { - if ( mkdir( untrailingslashit( $dir ), FS_CHMOD_DIR ) ) { - if ( file_put_contents( $dir . 'custom-style.css', $output ) ) { - chmod( $filename, 0644 ); + if ( ! file_exists( untrailingslashit( $dir ) ) ) { + if ( mkdir( untrailingslashit( $dir ), FS_CHMOD_DIR ) ) { + if ( file_put_contents( $dir . 'custom-style.css', $output ) ) { + chmod( $filename, 0644 ); + } } } } From acf33035a786fa9d650153b5fc0e39144ff5397b Mon Sep 17 00:00:00 2001 From: web-devise Date: Tue, 9 Aug 2022 13:11:33 +0300 Subject: [PATCH 02/16] Google Fonts Fatal Error Fix with Theme ver check --- ocean-extra.php | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/ocean-extra.php b/ocean-extra.php index 01dc87b..3d29ea3 100644 --- a/ocean-extra.php +++ b/ocean-extra.php @@ -126,7 +126,9 @@ public function __construct( $widget_areas = array() ) { require_once OE_PATH . '/includes/themepanel/theme-panel.php'; - require_once OE_PATH . '/includes/compatibility/ocean.php'; + if ( version_compare( OCEANWP_THEME_VERSION, '3.3.3' , '>' ) ) { + require_once OE_PATH . '/includes/compatibility/ocean.php'; + } // Outputs custom JS to the footer From 497c1fa953d44133074c06c805a02bb8c12189be Mon Sep 17 00:00:00 2001 From: web-devise Date: Tue, 9 Aug 2022 14:53:36 +0300 Subject: [PATCH 03/16] Google Fonts Fatal Error Fix with Theme ver check #2 --- ocean-extra.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ocean-extra.php b/ocean-extra.php index 3d29ea3..85ad149 100644 --- a/ocean-extra.php +++ b/ocean-extra.php @@ -126,7 +126,7 @@ public function __construct( $widget_areas = array() ) { require_once OE_PATH . '/includes/themepanel/theme-panel.php'; - if ( version_compare( OCEANWP_THEME_VERSION, '3.3.3' , '>' ) ) { + if ( version_compare( theme_version(), '3.3.3' , '>' ) ) { require_once OE_PATH . '/includes/compatibility/ocean.php'; } From 6d4db16b4d2d7899cf8bda2078d2943c300831d6 Mon Sep 17 00:00:00 2001 From: web-devise Date: Tue, 9 Aug 2022 15:10:40 +0300 Subject: [PATCH 04/16] Google Fonts Error Fix Theme ver check - child --- ocean-extra.php | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/ocean-extra.php b/ocean-extra.php index 85ad149..fcb0fee 100644 --- a/ocean-extra.php +++ b/ocean-extra.php @@ -114,6 +114,14 @@ public function __construct( $widget_areas = array() ) { // Menu icons $theme = wp_get_theme(); if ( 'OceanWP' == $theme->name || 'oceanwp' == $theme->template ) { + + if ( ! is_child_theme() ) { + $current_theme_version = theme_version(); + } else { + $current_theme_version = '3.3.3'; + } + $required_theme_version = '3.3.3'; + require_once OE_PATH . '/includes/panel/theme-panel.php'; require_once OE_PATH . '/includes/panel/integrations-tab.php'; $oe_library_active_status = get_option( 'oe_library_active_status', 'yes' ); @@ -126,7 +134,8 @@ public function __construct( $widget_areas = array() ) { require_once OE_PATH . '/includes/themepanel/theme-panel.php'; - if ( version_compare( theme_version(), '3.3.3' , '>' ) ) { + + if ( ! empty( $current_theme_version ) && ! empty( $required_theme_version ) && version_compare( $current_theme_version, $required_theme_version , '>=' ) ) { require_once OE_PATH . '/includes/compatibility/ocean.php'; } From 88ca1bf6ba43e24a26a5524d566f00381ffd7f5f Mon Sep 17 00:00:00 2001 From: web-devise Date: Tue, 9 Aug 2022 15:46:36 +0300 Subject: [PATCH 05/16] Google Fonts Error Fix Theme ver check - child #2 --- ocean-extra.php | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/ocean-extra.php b/ocean-extra.php index fcb0fee..074c95f 100644 --- a/ocean-extra.php +++ b/ocean-extra.php @@ -118,10 +118,15 @@ public function __construct( $widget_areas = array() ) { if ( ! is_child_theme() ) { $current_theme_version = theme_version(); } else { - $current_theme_version = '3.3.3'; + $parent = wp_get_theme()->parent(); + // get parent version + if ( ! empty( $parent) ) { + $current_theme_version = $parent->Version; + } } $required_theme_version = '3.3.3'; + require_once OE_PATH . '/includes/panel/theme-panel.php'; require_once OE_PATH . '/includes/panel/integrations-tab.php'; $oe_library_active_status = get_option( 'oe_library_active_status', 'yes' ); @@ -135,7 +140,7 @@ public function __construct( $widget_areas = array() ) { require_once OE_PATH . '/includes/themepanel/theme-panel.php'; - if ( ! empty( $current_theme_version ) && ! empty( $required_theme_version ) && version_compare( $current_theme_version, $required_theme_version , '>=' ) ) { + if ( ! empty( $current_theme_version ) && ! empty( $required_theme_version ) && version_compare( $current_theme_version, $required_theme_version , '>' ) ) { require_once OE_PATH . '/includes/compatibility/ocean.php'; } From 3859f971f234cb75de3b50872fee2ef69a50017f Mon Sep 17 00:00:00 2001 From: web-devise Date: Tue, 9 Aug 2022 16:37:29 +0300 Subject: [PATCH 06/16] TEMPLATEPATH PHP 8.0 Fix --- ocean-extra.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ocean-extra.php b/ocean-extra.php index 074c95f..1cbfae2 100644 --- a/ocean-extra.php +++ b/ocean-extra.php @@ -115,7 +115,7 @@ public function __construct( $widget_areas = array() ) { $theme = wp_get_theme(); if ( 'OceanWP' == $theme->name || 'oceanwp' == $theme->template ) { - if ( ! is_child_theme() ) { + if ( get_template_directory() == get_stylesheet_directory() ) { $current_theme_version = theme_version(); } else { $parent = wp_get_theme()->parent(); From a35c1c2a88fad188ca57eedc66395aba7a1c30e6 Mon Sep 17 00:00:00 2001 From: Amit Singh Date: Tue, 9 Aug 2022 19:30:02 +0530 Subject: [PATCH 07/16] changelog --- changelog.txt | 3 +++ ocean-extra.php | 4 ++-- readme.txt | 5 ++++- 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/changelog.txt b/changelog.txt index 6e01d24..b7a2dc6 100644 --- a/changelog.txt +++ b/changelog.txt @@ -1,5 +1,8 @@ == Changelog == += 2.0.4 = +- Fixed: Fatal error: Cannot redeclare oceanwp_webfonts_enqueue() + = 2.0.3 = - NEW: OceanWP News Notification system. - Added: Tyopgraphy: Host Google Fonts Locally. New option to appear in Customizer > Typography > General. Disabled by default. diff --git a/ocean-extra.php b/ocean-extra.php index 1cbfae2..f70a8bf 100644 --- a/ocean-extra.php +++ b/ocean-extra.php @@ -3,7 +3,7 @@ * Plugin Name: Ocean Extra * Plugin URI: https://oceanwp.org/extension/ocean-extra/ * Description: Add extra features like widgets, metaboxes, import/export and a panel to activate the premium extensions. - * Version: 2.0.3 + * Version: 2.0.4 * Author: OceanWP * Author URI: https://oceanwp.org/ * Requires at least: 5.6 @@ -90,7 +90,7 @@ public function __construct( $widget_areas = array() ) { $this->token = 'ocean-extra'; $this->plugin_url = plugin_dir_url( __FILE__ ); $this->plugin_path = plugin_dir_path( __FILE__ ); - $this->version = '2.0.3'; + $this->version = '2.0.4'; define( 'OE_URL', $this->plugin_url ); define( 'OE_PATH', $this->plugin_path ); diff --git a/readme.txt b/readme.txt index 5f16008..1099b32 100644 --- a/readme.txt +++ b/readme.txt @@ -3,7 +3,7 @@ Contributors: oceanwp, apprimit, wpfleek Tags: widgets, meta box, metaboxes, metabox, oceanwp Requires at least: 5.6 Tested up to: 6.0.1 -Stable tag: 2.0.3 +Stable tag: 2.0.4 Requires PHP: 7.2 License: GPLv2 or later License URI: http://www.gnu.org/licenses/gpl-2.0.html @@ -33,6 +33,9 @@ This plugin will only function with the [OceanWP](https://oceanwp.org/) theme. == Changelog == += 2.0.4 = +- Fixed: Fatal error: Cannot redeclare oceanwp_webfonts_enqueue() + = 2.0.3 = - NEW: OceanWP News Notification system. - Added: Tyopgraphy: Host Google Fonts Locally. New option to appear in Customizer > Typography > General. Disabled by default. From 421c510ec491f837e5a1ae75ffaada9625fa61c1 Mon Sep 17 00:00:00 2001 From: web-devise Date: Wed, 24 Aug 2022 12:41:15 +0300 Subject: [PATCH 08/16] Ocean Notifications Styling on frontend fix --- includes/admin-bar/admin-bar.php | 3 ++- includes/admin-bar/assets/css/admin-bar.css | 1 + includes/admin-bar/assets/css/admin-bar.min.css | 2 +- includes/admin-bar/notifications.php | 2 +- 4 files changed, 5 insertions(+), 3 deletions(-) diff --git a/includes/admin-bar/admin-bar.php b/includes/admin-bar/admin-bar.php index dc79b0c..6150a3e 100644 --- a/includes/admin-bar/admin-bar.php +++ b/includes/admin-bar/admin-bar.php @@ -21,6 +21,7 @@ public function __construct() { } add_action( 'admin_enqueue_scripts', array( $this, 'enqueue_css' ) ); + add_action( 'wp_enqueue_scripts', array( $this, 'enqueue_css' ) ); add_action( 'admin_bar_menu', array( $this, 'register' ), 999 ); } @@ -43,7 +44,7 @@ public function has_access() { * Add "Ocean" item to new-content admin bar menu item */ public function admin_bar( $wp_admin_bar ) { - if ( ! is_admin_bar_showing() || ! wpforms_current_user_can( 'create_forms' ) ) { + if ( ! is_admin_bar_showing() ) { return; } diff --git a/includes/admin-bar/assets/css/admin-bar.css b/includes/admin-bar/assets/css/admin-bar.css index 2b8c93d..e293352 100644 --- a/includes/admin-bar/assets/css/admin-bar.css +++ b/includes/admin-bar/assets/css/admin-bar.css @@ -21,6 +21,7 @@ .wp-ui-notification.ocean-menu-notification-counter, .wp-ui-notification.ocean-menu-notification-indicator { background-color: #19bbf1 !important; + color: #ffffff; } #wpadminbar .ocean-menu-notification-indicator:after { diff --git a/includes/admin-bar/assets/css/admin-bar.min.css b/includes/admin-bar/assets/css/admin-bar.min.css index 7f7f3e7..414ef1d 100644 --- a/includes/admin-bar/assets/css/admin-bar.min.css +++ b/includes/admin-bar/assets/css/admin-bar.min.css @@ -1 +1 @@ -#wpadminbar .ocean-menu-notification-counter{display:inline-block!important;min-width:18px!important;height:18px!important;border-radius:9px!important;margin:7px 0 0 2px!important;vertical-align:top!important;font-size:11px!important;line-height:1.6!important;text-align:center!important}#wpadminbar .ocean-menu-notification-indicator{float:right!important;margin:10px 0 0!important;width:8px!important;height:8px!important;border-radius:2px!important}.wp-ui-notification.ocean-menu-notification-counter,.wp-ui-notification.ocean-menu-notification-indicator{background-color:#19bbf1!important}#wpadminbar .ocean-menu-notification-indicator:after{display:block!important;content:"";position:absolute!important;width:inherit!important;height:inherit!important;border-radius:inherit!important;background-color:inherit!important;animation:ocean-menu-notification-indicator-pulse 1.5s infinite!important}@keyframes ocean-menu-notification-indicator-pulse{0%{transform:scale(1);opacity:1}100%{transform:scale(3);opacity:0}} \ No newline at end of file +#wpadminbar .ocean-menu-notification-counter{display:inline-block!important;min-width:18px!important;height:18px!important;border-radius:9px!important;margin:7px 0 0 2px!important;vertical-align:top!important;font-size:11px!important;line-height:1.6!important;text-align:center!important}#wpadminbar .ocean-menu-notification-indicator{float:right!important;margin:10px 0 0!important;width:8px!important;height:8px!important;border-radius:2px!important}.wp-ui-notification.ocean-menu-notification-counter,.wp-ui-notification.ocean-menu-notification-indicator{background-color:#19bbf1!important;color:#ffffff;}#wpadminbar .ocean-menu-notification-indicator:after{display:block!important;content:"";position:absolute!important;width:inherit!important;height:inherit!important;border-radius:inherit!important;background-color:inherit!important;animation:ocean-menu-notification-indicator-pulse 1.5s infinite!important}@keyframes ocean-menu-notification-indicator-pulse{0%{transform:scale(1);opacity:1}100%{transform:scale(3);opacity:0}} \ No newline at end of file diff --git a/includes/admin-bar/notifications.php b/includes/admin-bar/notifications.php index 3b04f3a..7321c86 100644 --- a/includes/admin-bar/notifications.php +++ b/includes/admin-bar/notifications.php @@ -124,7 +124,7 @@ public function check_dates( $notifications ) { public function get() { $option = $this->get_option(); - if (empty($option['update']) || time() > $option['update'] + DAY_IN_SECONDS) { + if ( empty( $option['update'] ) || time() > $option['update'] + DAY_IN_SECONDS ) { if ( ! wp_next_scheduled( 'ocean_admin_notifications_update' ) ) { wp_schedule_single_event( time() + 60, 'ocean_admin_notifications_update' ); } From 7590e64459f7a837acddd0a919cc00099085ad67 Mon Sep 17 00:00:00 2001 From: web-devise Date: Tue, 6 Sep 2022 15:51:38 +0300 Subject: [PATCH 09/16] Local fonts as WOFF2 --- includes/compatibility/ocean.php | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/includes/compatibility/ocean.php b/includes/compatibility/ocean.php index fed8567..85dc6cb 100644 --- a/includes/compatibility/ocean.php +++ b/includes/compatibility/ocean.php @@ -171,10 +171,28 @@ function ocean_get_google_font_css( $url ) { if ( strpos( $url, 'https:' ) === false && strpos( $url, 'http:' ) === false ) { $url = 'https:' . $url; } + + $font_format = get_theme_mod( 'ocean_local_google_font_format', 'ttf' ); + switch ( $font_format ) { + case 'ttf': + $user_agent = 'Mozilla/5.0 (Windows; U; Windows NT 6.1; et; rv:1.9.1.9) Gecko/20100315 Firefox/3.5.9'; + break; + case 'woff': + $user_agent = 'Mozilla/5.0 (Windows NT 6.3; rv:36.0) Gecko/20100101 Firefox/36.0'; + break; + case 'woff2': + $user_agent = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/105.0.0.0 Safari/537.36'; + break; + default: + $user_agent = 'Mozilla/5.0 (Windows; U; Windows NT 6.1; et; rv:1.9.1.9) Gecko/20100315 Firefox/3.5.9'; + break; + } + $request = wp_safe_remote_get( $url, array( 'sslverify' => false, + 'user-agent' => $user_agent, ) ); if ( is_wp_error( $request ) ) { From f09f80faa196507480ce95d9bdb924139808a640 Mon Sep 17 00:00:00 2001 From: web-devise Date: Mon, 3 Oct 2022 13:13:58 +0300 Subject: [PATCH 10/16] Vulnerability threat fix --- includes/panel/classes/importers/class-settings-importer.php | 2 +- includes/panel/import-export.php | 2 +- includes/themepanel/theme-panel.php | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/includes/panel/classes/importers/class-settings-importer.php b/includes/panel/classes/importers/class-settings-importer.php index d3b7d06..8f3b178 100644 --- a/includes/panel/classes/importers/class-settings-importer.php +++ b/includes/panel/classes/importers/class-settings-importer.php @@ -22,7 +22,7 @@ public function process_import_file( $file ) { // Get file contents and decode $raw = file_get_contents( $file ); - $data = @unserialize( $raw ); + $data = @unserialize( $raw, [ 'allowed_classes' => false ] ); // Delete import file //unlink( $file ); diff --git a/includes/panel/import-export.php b/includes/panel/import-export.php index f480f1a..9b902d6 100644 --- a/includes/panel/import-export.php +++ b/includes/panel/import-export.php @@ -167,7 +167,7 @@ public static function process_import_file( $file ) { // Get file contents and decode $raw = file_get_contents( $file ); - $data = @unserialize( $raw ); + $data = @unserialize( $raw, [ 'allowed_classes' => false ] ); // Delete import file unlink( $file ); diff --git a/includes/themepanel/theme-panel.php b/includes/themepanel/theme-panel.php index 92d8ee4..2e90f58 100644 --- a/includes/themepanel/theme-panel.php +++ b/includes/themepanel/theme-panel.php @@ -400,7 +400,7 @@ public static function process_import_file( $file ) { // Get file contents and decode $raw = file_get_contents( $file ); - $data = @unserialize( $raw ); + $data = @unserialize( $raw, [ 'allowed_classes' => false ] ); // Delete import file unlink( $file ); From 22df323a2355040750ad0d717f4101e786349368 Mon Sep 17 00:00:00 2001 From: web-devise Date: Fri, 21 Oct 2022 15:21:35 +0300 Subject: [PATCH 11/16] Styling Options Location fix (3369) --- includes/compatibility/ocean.php | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/includes/compatibility/ocean.php b/includes/compatibility/ocean.php index 01050ef..07f1025 100644 --- a/includes/compatibility/ocean.php +++ b/includes/compatibility/ocean.php @@ -261,7 +261,7 @@ function oceanwp_webfonts_local_font_url( $url ) { add_action( 'admin_bar_init', 'ocean_save_customizer_css_in_file', 9999 ); if ( ! function_exists( 'ocean_save_customizer_css_in_file' ) ) { function ocean_save_customizer_css_in_file( $output = null ) { - + // If Custom File is not selected. if ( 'file' !== get_theme_mod( 'ocean_customzer_styling', 'head' ) ) { return; @@ -276,17 +276,16 @@ function ocean_save_customizer_css_in_file( $output = null ) { // Minified the Custom CSS. $output .= oceanwp_minify_css( $output_custom_css ); - // We will probably need to load this file. - require_once ABSPATH . 'wp-admin' . DIRECTORY_SEPARATOR . 'includes' . DIRECTORY_SEPARATOR . 'file.php'; - $upload_dir = wp_upload_dir(); // Grab uploads folder array. $dir = trailingslashit( $upload_dir['basedir'] ) . 'oceanwp' . DIRECTORY_SEPARATOR; // Set storage directory path. - - if ( ! file_exists( untrailingslashit( $dir ) ) ) { - if ( mkdir( untrailingslashit( $dir ), FS_CHMOD_DIR ) ) { - if ( file_put_contents( $dir . 'custom-style.css', $output ) ) { - chmod( $filename, 0644 ); - } + $untraling_dir = untrailingslashit( $dir ); + if ( ! file_exists( $untraling_dir ) ) { + mkdir( $untraling_dir, FS_CHMOD_DIR ); + } + if( file_exists( $untraling_dir ) ) { + $filename = $dir . 'custom-style.css'; + if ( file_put_contents( $filename, $output ) ) { + chmod( $filename, 0644 ); } } } From 7d1885881701f410b9d93207ff47f27fdedf2a29 Mon Sep 17 00:00:00 2001 From: markhollo Date: Sun, 30 Oct 2022 20:39:57 +0100 Subject: [PATCH 12/16] Description Update --- changelog.txt | 5 + includes/panel/demos.php | 4 +- includes/wizard/classes/WizardAjax.php | 4 +- ocean-extra.php | 6 +- readme.txt | 131 +++++++++++++++++++++++-- 5 files changed, 136 insertions(+), 14 deletions(-) diff --git a/changelog.txt b/changelog.txt index 473f63e..c1cda85 100644 --- a/changelog.txt +++ b/changelog.txt @@ -1,5 +1,10 @@ == Changelog == += 2.0.6 = +- NEW: Typography: Option to choose font format for local Google font feature (Customize > Typography > General). +- Fixed: Custom CSS: Custom Styling Location option doesn't store custom css. +- Updated: Plugin description. + = 2.0.5 = - Fixed: Customizer Styling Import: Potential vulnerability patch: WPScan report #5596728. diff --git a/includes/panel/demos.php b/includes/panel/demos.php index 5ba950b..9b9c8df 100644 --- a/includes/panel/demos.php +++ b/includes/panel/demos.php @@ -1007,14 +1007,14 @@ public static function ajax_demo_data() {

', '' ); ?>

-

+

', '' + esc_html__('Importing a demo template allows you to kick-start your website fast, instead of creating content from scratch. It is recommended to upload a demo template on a fresh WordPress install to prevent conflict with your current content or content loss. You can use this plugin to reset your site if needed: %1$sWordpress Database Reset%2$s.', 'ocean-extra'), '', '' ); ?>

-

+

token = 'ocean-extra'; $this->plugin_url = plugin_dir_url( __FILE__ ); $this->plugin_path = plugin_dir_path( __FILE__ ); - $this->version = '2.0.5'; + $this->version = '2.0.6'; define( 'OE_URL', $this->plugin_url ); define( 'OE_PATH', $this->plugin_path ); diff --git a/readme.txt b/readme.txt index 27eb520..76d6998 100644 --- a/readme.txt +++ b/readme.txt @@ -2,22 +2,134 @@ Contributors: oceanwp, apprimit, wpfleek Tags: widgets, meta box, metaboxes, metabox, oceanwp Requires at least: 5.6 -Tested up to: 6.0.2 -Stable tag: 2.0.5 +Tested up to: 6.1 +Stable tag: 2.0.6 Requires PHP: 7.2 License: GPLv2 or later License URI: http://www.gnu.org/licenses/gpl-2.0.html == Description == -Ocean Extra add extra features to [OceanWP](https://oceanwp.org/) like widgets, metaboxes, activate/deactivate the customizer sections, enable/disable the theme's scripts and styles, import/export and a panel to activate the premium extensions. -This plugin requires the [OceanWP](https://oceanwp.org/) theme to be installed. +Ocean Extra adds extra features and flexibility to the [OceanWP](https://oceanwp.org/) theme for a turbocharged experience. + +Control every aspect of your website with ease, create any type of a professional looking website without any coding knowledge, save effort and time. Things get even better. Ocean Extra also offers you full control, and allows you to disable or enable all features and options. + +👉 [Ocean Core Extensions Bundle](https://oceanwp.org/core-extensions-bundle/) +👉 [Ocean Full Website Templates](https://oceanwp.org/demos/) +📘 [Documentation](https://docs.oceanwp.org/) +🎬 [Video Tutorials](https://www.youtube.com/@OceanWP) + +💙 Join the official OceanWP Facebook community and always be up to speed with the latest news. + +Check out the video when Ocean Extra's Theme Panel received a makeover to become OceanWP Panel and an overview of its capabilities [youtube https://www.youtube.com/watch?v=twUc0rHnBo0] + +Ocean Extra is an entirely free WordPress plugin that enriches your website building experience by adding extra features to the OceanWP free theme. Save time, effort and the need for additional plugins or custom codes. + +Everyone deserves a website with professinal features, and so do you. + +🔥 [Check out the Premium Features](https://oceanwp.org/core-extensions-bundle/) for additional power, energy and ability. + +== Features == + +Features listed below are just a fraction of the most significant Ocean Extra possibilities: +* Host Google fonts Locally +* Custom templates support +* Individual page / post control +* Freemium website templates import +* WordPress widgets +* Mega Menu +* Menu icons +* Customizer sections control +* Customizer search +* Customizer reset +* Customizer styling import / export +* Integration +* Extra settings +* Admin settings +* Premium licenses panel & more + += HOST GOOGLE FONTS LOCALLY = + +1-click solution, no font upload required. Any Google font you apply from the Customizer will automatically load from your site, making your website faster and GDPR friendly in instant. This feature also supports the Elementor page builder and Google fonts applied through it. + += CUSTOM TEMPLATES SUPPORT = + +Create as many templates as you like, using any page builder you want, including Gutenberg. Create and apply a custom header or footer directly through the Customizer. Display custom templates using shortcodes, hooks or even custom codes. + += INDIVIDUAL PAGE / POST CONTROL = + +This feature is enabled through the metabox settings and gives you full control over every page or post on your website independantly from your global Customizer settings. For example, you can apply a different page layout or a custom sidebar; you can enable or disable the Header, Top Bar, Page Title, Footer Widgets, Footer Copyright. You can apply a different navigation menu, header style, page title style, play with colors, custom titles, apply templates through shortcodes and much, much, much more. + += FREEMIUM WEBSITE TEMPLATES = + +Don't feel like starting a website from scratch? Import one of the freemium full website templates and edit content and styling as you go. Depending on the template type, each contains sample pages, sample posts and Customizer styling. Website templates are also known as demos or site kits. + += WORDPRESS WIDGETS = + +Enrich your widget areas such as sidebars or footer with additional widgets like: About Me, Contact Info, Recent Posts (with thumbnails), Custom Menu, Social Icons, Social Share and more. + += MEGA MENU = + +Turn your website navigation into a mega menu with a simple setup directly through the WordPress Menus option. + += MENU ICONS = + +Add icons to some or all of your menu items. Several icon libraries are supported, like Font Awesome, Simple Line Icons, Dashicons and more. + += CUSTOMIZER SECTIONS CONTROL = + +Disable any of the Customizer panels from loading, to increase the Customizer loading time or focus on your tasks. This feature allows you to disable only those panels created by the OceanWP theme or any of the Ocean plugins. Likewise, you can enable all panels back again. + += CUSTOMIZER SEARCH = + +The search option within the Customizer helps you find all relevant settings instantly. Enable or disable per need. + += CUSTOMIZER RESET = + +Unhappy with your Customizer settings and styling? Or you would like to import different styling? Reset all current settings to OceanWP's default values and apply your design. + += CUSTOMIZER STYLING IMPORT / EXPORT = + +Export your Customizer styling options to use on other sites, to save as backup or simply speed up the design process. Likewise, import an existing Customizer styling file and apply all settings in a breeze. + += INTEGRATION = + +The Integration panel helps you enable SVG file upload support for the WordPress Media Library, connect with MailChimp, Google reCaptcha, Google Maps and more. + += EXTRA SETTINGS = + +The Extra Settings panel allows you to disable or enable Ocean Extra plugin components, like the meta box, custom templates support, widgets, etc. + += ADMIN SETTINGS = + +The Admin Settings panel offers control over additional features, like regenerating the local Google fonts CSS file, disabling the "edit" link on post archive pages which is visible to admins, and more. + += PREMIUM FEATURES = + +Some of the most outsanding premium features controled by the Ocean Extra's OceanWP panel include: +* Ocean Images: Import royalty free images and icons directly to your Media Library, a feature that is included in the Ocean Core Extensions Bundle and the Ocean Pro Demos plugin. +* Full Website Templates: Import any of the 220+ full website templates (demos, site kits) to kick start your website fast. +* Elementor Widgets: Disable or enable any of the widgets that come with the Ocean Elementor Widgets plugin. +* Elementor Library: Control the settings of the Elementor Sections Library, that counts over 60 various designs. Create your page content as you. This feature is included in the Ocean Core Extensions Bundle and the Ocean Pro Demos plugin. +* Gutenberg Blocks: Disable or enable any of the blocks that come with the Ocean Gutenberg Blocks plugin. +* White Label: Whitelabel your OceanWP theme, personalize it and make it your own, with the Ocean White Label plugin. == Installation == -1. Upload `ocean-extra` to the `/wp-content/plugins/` directory; -2. Activate the plugin through the 'Plugins > Installed Plugins' menu in WordPress dashboard; -3. Done! += USING WORDPRESS PLUGIN INSTALLER = + +1. Go to your WordPress Dashboard, 'Plugins > Add New'. +2. Search for 'Ocean Extra'. +3. Click 'Install' and then 'Activate'. +4. Done! + += MANUAL INSTALLATION = + +1. Download the 'ocean-extra' zip file. +2. Extract the content and copy to the `/wp-content/plugins/` directory of your WordPress installation. +3. Navigate to your WordPress dashboard, 'Plugins > Installed Plugins'. +4. Find the 'Ocean Extra' plugin and activate. +5. Done! == Frequently Asked Questions == @@ -33,6 +145,11 @@ This plugin will only function with the [OceanWP](https://oceanwp.org/) theme. == Changelog == += 2.0.6 = +- NEW: Typography: Option to choose font format for local Google font feature (Customize > Typography > General). +- Fixed: Custom CSS: Custom Styling Location option doesn't store custom css. +- Updated: Plugin description. + = 2.0.5 = - Fixed: Customizer Styling Import: Potential vulnerability patch: WPScan report #5596728. From cf37a5c74f794c455a6cf70fecffbc699951f71b Mon Sep 17 00:00:00 2001 From: markhollo Date: Mon, 31 Oct 2022 12:53:07 +0100 Subject: [PATCH 13/16] screenshot descriptions --- readme.txt | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/readme.txt b/readme.txt index 76d6998..c29c202 100644 --- a/readme.txt +++ b/readme.txt @@ -139,9 +139,17 @@ This plugin will only function with the [OceanWP](https://oceanwp.org/) theme. == Screenshots == -1. The meta boxes. -2. Customizer panels. -3. Custom CSS. +1. The OceanWP meta box Settings allow you full control over every page and post. +2. The OceanWP Panel homepage overview. +3. The OceanWP Panel Customizer options and controls. +4. The OceanWP Panel website template import feature overview - part I. +5. The OceanWP Panel website template import feature overview - part II. +6. The OceanWP Panel, Admin Settings overview. +7. The OceanWP Panel, Integration options overview. +8. The OceanWP Panel, Help section overview. +9. My Library, custom template support for header, footer, etc. +10. Various custom WordPress widgets. +11. WordPress Menu icons support feature, various icon libraries support. == Changelog == From 73695247cf92fdc3474a9b3964268e6ccaeb0d70 Mon Sep 17 00:00:00 2001 From: markhollo Date: Tue, 1 Nov 2022 08:05:41 +0100 Subject: [PATCH 14/16] faq update --- ocean-extra.php | 2 +- readme.txt | 48 ++++++++++++++++++++++++++++++++++++++++-------- 2 files changed, 41 insertions(+), 9 deletions(-) diff --git a/ocean-extra.php b/ocean-extra.php index 3ecd4ec..3fbcc25 100644 --- a/ocean-extra.php +++ b/ocean-extra.php @@ -2,7 +2,7 @@ /** * Plugin Name: Ocean Extra * Plugin URI: https://oceanwp.org/extension/ocean-extra/ - * Description: Add extra features like widgets, metaboxes, import/export and a panel to activate the premium extensions. + * Description: Add extra features and flexibility to your OceanWP theme for a turbocharged premium experience and full control over every aspect of your website. * Version: 2.0.6 * Author: OceanWP * Author URI: https://oceanwp.org/ diff --git a/readme.txt b/readme.txt index c29c202..37dfadc 100644 --- a/readme.txt +++ b/readme.txt @@ -10,22 +10,22 @@ License URI: http://www.gnu.org/licenses/gpl-2.0.html == Description == -Ocean Extra adds extra features and flexibility to the [OceanWP](https://oceanwp.org/) theme for a turbocharged experience. +Ocean Extra adds extra features and flexibility to the [OceanWP](https://oceanwp.org/) theme for a turbocharged experience. -Control every aspect of your website with ease, create any type of a professional looking website without any coding knowledge, save effort and time. Things get even better. Ocean Extra also offers you full control, and allows you to disable or enable all features and options. +Build any type of a professional looking website without any coding knowledge and by controlling every aspect of it with ease. With Ocean Extra you're in command and have full authority over available features and options. 👉 [Ocean Core Extensions Bundle](https://oceanwp.org/core-extensions-bundle/) 👉 [Ocean Full Website Templates](https://oceanwp.org/demos/) 📘 [Documentation](https://docs.oceanwp.org/) 🎬 [Video Tutorials](https://www.youtube.com/@OceanWP) -💙 Join the official OceanWP Facebook community and always be up to speed with the latest news. +💙 Join the [official OceanWP Facebook community](https://www.facebook.com/groups/oceanwptheme) and always be up to speed with the latest news. Check out the video when Ocean Extra's Theme Panel received a makeover to become OceanWP Panel and an overview of its capabilities [youtube https://www.youtube.com/watch?v=twUc0rHnBo0] -Ocean Extra is an entirely free WordPress plugin that enriches your website building experience by adding extra features to the OceanWP free theme. Save time, effort and the need for additional plugins or custom codes. +Ocean Extra is a 100% free WordPress plugin that enriches your website building experience by adding extra features to the OceanWP free theme. Save time and effort, and reduce the need for additional plugins or custom codes. -Everyone deserves a website with professinal features, and so do you. +Everyone deserves a polished website with expert features, and so do you. 🔥 [Check out the Premium Features](https://oceanwp.org/core-extensions-bundle/) for additional power, energy and ability. @@ -50,7 +50,7 @@ Features listed below are just a fraction of the most significant Ocean Extra po = HOST GOOGLE FONTS LOCALLY = -1-click solution, no font upload required. Any Google font you apply from the Customizer will automatically load from your site, making your website faster and GDPR friendly in instant. This feature also supports the Elementor page builder and Google fonts applied through it. +1-click solution, no font upload required. Any Google font you apply from the Customizer will load from your site automatically, making your website faster and GDPR friendly in an instant. This feature also supports the Elementor page builder and Google fonts applied through it. = CUSTOM TEMPLATES SUPPORT = @@ -104,9 +104,9 @@ The Extra Settings panel allows you to disable or enable Ocean Extra plugin comp The Admin Settings panel offers control over additional features, like regenerating the local Google fonts CSS file, disabling the "edit" link on post archive pages which is visible to admins, and more. -= PREMIUM FEATURES = += PREMIUM OCEAN FEATURES = -Some of the most outsanding premium features controled by the Ocean Extra's OceanWP panel include: +Some of the most outsanding premium features controled by the Ocean Extra's OceanWP Panel include: * Ocean Images: Import royalty free images and icons directly to your Media Library, a feature that is included in the Ocean Core Extensions Bundle and the Ocean Pro Demos plugin. * Full Website Templates: Import any of the 220+ full website templates (demos, site kits) to kick start your website fast. * Elementor Widgets: Disable or enable any of the widgets that come with the Ocean Elementor Widgets plugin. @@ -137,6 +137,38 @@ Some of the most outsanding premium features controled by the Ocean Extra's Ocea This plugin will only function with the [OceanWP](https://oceanwp.org/) theme. += Is Ocean Extra free? = + +Ocean Extra is a 100% free WordPress plugin on full power mode and without any limitations on its features. +Some of the additional and premium features are controled through the OceanWP Panel which is an Ocean Extra feature, but there is no premium version of the Ocean Extra plugin itself. + += Do I need to get the premium license to import freemium demos? = + +Some features or content parts have been created using [Ocean premium extensions](https://oceanwp.org/core-extensions-bundle/). +Unless you have a premium license, those features or content parts will not be displayed or enabled on your website. + +However, you can still import any of the freemium Ocean demos / website templates and recreate those features using any other plugin of your choice. + += Do you use third-party premium plugins in your demos? = + +No. Both freemium and premium Ocean demos / website templates make use only of the free version of third-party plugins. + += Where can I get support? = + +You can post your questions on the [plugin support forum](https://wordpress.org/support/plugin/ocean-extra/) or the [OceanWP support forum](https://wordpress.org/support/topic/ocean-popup-login-error/) which is mostly used by all our users. +If you have a premium license, you can also submit a [customer support ticket](https://oceanwp.org/support/). + += How do I know it's safe to update the plugin? = + +We do our best to test all changes before the official release. However, we will never be able to replicate all website conditions. +No matter what plugins you are running, it's always recommended to test an update on a staging or test environment. + +You can also check [Support Notes and User Feedback](https://docs.oceanwp.org/article/776-known-bugs-issues) before updating your plugin. + += Where can I report problems or bugs? = + +You can report problems on [this support forum](https://wordpress.org/support/plugin/ocean-extra/) or on [GitHub](https://github.com/oceanwp/ocean-extra/issues). + == Screenshots == 1. The OceanWP meta box Settings allow you full control over every page and post. From 0447cc2f238787462e1dce6d4bc82e34f82d0de4 Mon Sep 17 00:00:00 2001 From: markhollo Date: Wed, 2 Nov 2022 07:41:08 +0100 Subject: [PATCH 15/16] shortcode description update --- readme.txt | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/readme.txt b/readme.txt index 37dfadc..8a1ffbc 100644 --- a/readme.txt +++ b/readme.txt @@ -39,6 +39,7 @@ Features listed below are just a fraction of the most significant Ocean Extra po * WordPress widgets * Mega Menu * Menu icons +* Various shortcodes * Customizer sections control * Customizer search * Customizer reset @@ -76,6 +77,10 @@ Turn your website navigation into a mega menu with a simple setup directly throu Add icons to some or all of your menu items. Several icon libraries are supported, like Font Awesome, Simple Line Icons, Dashicons and more. += VARIOUS SHORTCODES = + +Use [OceanWP shortcodes](https://docs.oceanwp.org/category/369-shortcodes) to display dynamic content on your website, such as: current year, current user, login / logout link, breadcrumbs, WooCommerce cart and more. + = CUSTOMIZER SECTIONS CONTROL = Disable any of the Customizer panels from loading, to increase the Customizer loading time or focus on your tasks. This feature allows you to disable only those panels created by the OceanWP theme or any of the Ocean plugins. Likewise, you can enable all panels back again. From e1b6b7456126d4bc2a7be1686f4f8108964bcb7d Mon Sep 17 00:00:00 2001 From: markhollo Date: Mon, 7 Nov 2022 09:19:36 +0100 Subject: [PATCH 16/16] changelog update --- changelog.txt | 4 ++-- readme.txt | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/changelog.txt b/changelog.txt index c1cda85..600f819 100644 --- a/changelog.txt +++ b/changelog.txt @@ -1,7 +1,7 @@ == Changelog == -= 2.0.6 = -- NEW: Typography: Option to choose font format for local Google font feature (Customize > Typography > General). += 2.0.6 - NOV 9 2022 = +- NEW: Typography: Option to choose font format for local Google fonts feature (Customize > Typography > General). - Fixed: Custom CSS: Custom Styling Location option doesn't store custom css. - Updated: Plugin description. diff --git a/readme.txt b/readme.txt index 8a1ffbc..149c496 100644 --- a/readme.txt +++ b/readme.txt @@ -190,8 +190,8 @@ You can report problems on [this support forum](https://wordpress.org/support/pl == Changelog == -= 2.0.6 = -- NEW: Typography: Option to choose font format for local Google font feature (Customize > Typography > General). += 2.0.6 - NOV 9 2022 = +- NEW: Typography: Option to choose font format for local Google fonts feature (Customize > Typography > General). - Fixed: Custom CSS: Custom Styling Location option doesn't store custom css. - Updated: Plugin description.