config = $config;
$this->prepare_class();
/*admin menu*/
add_action( 'admin_menu', array( $this, 'kt_admin_menu' ) );
/* enqueue script and style for about page */
add_action( 'admin_enqueue_scripts', array( $this, 'style_and_scripts' ) );
/* ajax callback for dismissable required actions */
add_action( 'wp_ajax_kt_theme_info_update_recommended_action', array( $this, 'update_recommended_action_callback' ) );
}
/**
* Prepare and setup class properties.
*/
public function prepare_class() {
$theme = wp_get_theme();
$this->theme_name = esc_attr( $theme->get( 'Name' ) );
$this->theme_slug = $theme->get_template();
$this->theme_version = $theme->get( 'Version' );
$this->page_title = $this->theme_name . esc_html__( ' Info', 'bosa-online-shop' );
$this->menu_title = $this->theme_name . esc_html__( ' Setup', 'bosa-online-shop' );
$this->tabs = isset( $this->config['tabs'] ) ? $this->config['tabs'] : array();
}
/**
* Return the valid array of recommended actions.
* @return array The valid array of recommended actions.
*/
/**
* Dismiss required actions
*/
public function update_recommended_action_callback() {
/*getting for provided array*/
$recommended_actions = isset( $this->config[ 'recommended_actions' ] ) ? $this->config[ 'recommended_actions' ] : array();
/*from js action*/
$action_id = esc_attr( ( isset( $_GET[ 'id' ] ) ) ? $_GET[ 'id' ] : 0 );
$todo = esc_attr( ( isset( $_GET[ 'todo' ] ) ) ? $_GET[ 'todo'] : '' );
/*getting saved actions*/
$saved_actions = get_option( $this->theme_slug . '_recommended_actions' );
echo esc_html( wp_unslash( $action_id ) ); /* this is needed and it's the id of the dismissable required action */
if ( ! empty( $action_id ) ) {
if( 'reset' == $todo ){
$saved_actions_new = array();
if ( ! empty( $recommended_actions ) ) {
foreach ( $recommended_actions as $recommended_action ) {
$saved_actions[ $recommended_action['id'] ] = true;
}
update_option( $this->theme_slug . '_recommended_actions', $saved_actions_new );
}
}
/* if the option exists, update the record for the specified id */
elseif ( !empty( $saved_actions) and is_array( $saved_actions ) ) {
switch ( esc_html( $todo ) ) {
case 'add';
$saved_actions[ $action_id ] = true;
break;
case 'dismiss';
$saved_actions[ $action_id ] = false;
break;
}
update_option( $this->theme_slug . '_recommended_actions', $saved_actions );
/* create the new option,with false for the specified id */
}
else {
$saved_actions_new = array();
if ( ! empty( $recommended_actions ) ) {
foreach ( $recommended_actions as $recommended_action ) {
echo esc_html($recommended_action['id']);
echo " ". esc_html($todo);
if ( $recommended_action['id'] == $action_id ) {
switch ( esc_html( $todo ) ) {
case 'add';
$saved_actions_new[ $action_id ] = true;
break;
case 'dismiss';
$saved_actions_new[ $action_id ] = false;
break;
}
}
}
}
update_option( $this->theme_slug . '_recommended_actions', $saved_actions_new );
}
}
exit;
}
private function get_recommended_actions() {
$saved_actions = get_option( $this->theme_slug . '_recommended_actions' );
if ( ! is_array( $saved_actions ) ) {
$saved_actions = array();
}
$recommended_actions = isset( $this->config['recommended_actions'] ) ? $this->config['recommended_actions'] : array();
$valid = array();
if( isset( $recommended_actions ) && is_array( $recommended_actions ) ){
foreach ( $recommended_actions as $recommended_action ) {
if (
(
! isset( $recommended_action['check'] ) ||
( isset( $recommended_action['check'] ) && ( $recommended_action['check'] == false ) )
)
&&
( ! isset( $saved_actions[ $recommended_action['id'] ] ) ||
( isset( $saved_actions[ $recommended_action['id']] ) && ($saved_actions[ $recommended_action['id']] == true ) )
)
) {
$valid[] = $recommended_action;
}
}
}
return $valid;
}
private function count_recommended_actions() {
$count = 0;
$actions_count = $this->get_recommended_actions();
if ( ! empty( $actions_count ) ) {
$count = count( $actions_count );
}
return $count;
}
/**
* Adding Theme Info Menu under Appearance.
*/
function kt_admin_menu() {
if ( ! empty( $this->page_title ) && ! empty( $this->menu_title ) ) {
$count = $this->count_recommended_actions();
$menu_title = $count > 0 ? $this->menu_title . '' . esc_html( $count ) . '' : $this->menu_title;
/* Example
* add_theme_page('My Plugin Theme', 'My Plugin', 'edit_theme_options', 'my-unique-identifier', 'my_plugin_function');
* */
add_theme_page( $this->page_title, $menu_title, 'edit_theme_options', $this->theme_slug . '-info', array(
$this,
'kt_theme_info_screen',
) );
}
}
/**
* Render the info content screen.
*/
public function kt_theme_info_screen() {
if ( ! empty( $this->config[ 'info_title' ] ) ) {
$welcome_title = $this->config[ 'info_title' ];
}
if ( ! empty( $this->config[ 'info_content' ] ) ) {
$welcome_content = $this->config[ 'info_content' ];
}
if ( ! empty( $this->config[ 'quick_links' ] ) ) {
$quick_links = $this->config[ 'quick_links' ];
}
if (
! empty( $welcome_title ) ||
! empty( $welcome_content ) ||
! empty( $quick_links ) ||
! empty( $this->tabs )
) {
echo '
';
$button_class = '';
if ( $is_button ) {
$button_class = 'button button-primary button-hero';
}
$button_new_tab = '_self';
if ( isset( $is_new_tab ) ) {
if ( $is_new_tab ) {
$button_new_tab = '_blank';
}
}
echo '' . $button_label . '';
echo '
';
}
echo '';
}
}
}
}
echo '';
}
/**
* Recommended Actions tab
*/
public function check_plugin_status( $slug ) {
$path = WPMU_PLUGIN_DIR . '/' . $slug . '/' . $slug . '.php';
if ( ! file_exists( $path ) ) {
$path = WP_PLUGIN_DIR . '/' . $slug . '/' . $slug . '.php';
if ( ! file_exists( $path ) ) {
$path = false;
}
}
if ( file_exists( $path ) ) {
include_once( ABSPATH . 'wp-admin/includes/plugin.php' );
$needs = is_plugin_active( $slug . '/' . $slug . '.php' ) ? 'deactivate' : 'activate';
return array( 'status' => is_plugin_active( $slug . '/' . $slug . '.php' ), 'needs' => $needs );
}
return array( 'status' => false, 'needs' => 'install' );
}
public function create_action_link( $state, $slug ) {
switch ( $state ) {
case 'install':
return wp_nonce_url(
add_query_arg(
array(
'action' => 'install-plugin',
'plugin' => $slug
),
network_admin_url( 'update.php' )
),
'install-plugin_' . $slug
);
break;
case 'deactivate':
return add_query_arg(
array(
'action' => 'deactivate',
'plugin' => rawurlencode( $slug . '/' . $slug . '.php' ),
'plugin_status' => 'all',
'paged' => '1',
'_wpnonce' => wp_create_nonce( 'deactivate-plugin_' . $slug . '/' . $slug . '.php' )
),
network_admin_url( 'plugins.php' )
);
break;
case 'activate':
return add_query_arg(
array(
'action' => 'activate',
'plugin' => rawurlencode( $slug . '/' . $slug . '.php' ),
'plugin_status' => 'all',
'paged' => '1',
'_wpnonce' => wp_create_nonce( 'activate-plugin_' . $slug . '/' . $slug . '.php' )
),
network_admin_url( 'plugins.php' )
);
break;
}
}
public function recommended_actions() {
$recommended_actions = isset( $this->config['recommended_actions'] ) ? $this->config['recommended_actions'] : array();
$hooray = true;
if ( ! empty( $recommended_actions ) ) {
echo '';
if ( ! empty( $recommended_actions ) && is_array( $recommended_actions ) ) {
/*get saved recommend actions*/
$saved_recommended_actions = get_option( $this->theme_slug . '_recommended_actions' );
/*defaults values for getting_started array */
$defaults = array(
'title' => '',
'desc' => '',
'check' => false,
'plugin_slug' => '',
'id' => ''
);
foreach ( $recommended_actions as $action_key => $action_value ) {
$instance = wp_parse_args( (array) $action_value, $defaults );
/*allowed 5 value in array */
$title = $instance[ 'title' ];
$desc = $instance[ 'desc' ];
$check = $instance[ 'check' ];
$plugin_slug = $instance[ 'plugin_slug' ];
$id = $instance[ 'id' ];
$hidden = false;
/*magic check for recommended actions*/
if (
isset( $saved_recommended_actions[ $id ] ) &&
$saved_recommended_actions[ $id ] == false ) {
$hidden = true;
}
if ( $hidden ) {
echo '';
}
$done = '';
if ( $check ) {
$done = 'done';
}
echo "
";
if ( ! $hidden ) {
echo '
';
} else {
echo '
';
}
if ( ! empty( $title) ) {
echo '
' . wp_kses_post( $title ) . '
';
}
if ( ! empty( $desc ) ) {
echo '
' . wp_kses_post( $desc ) . '
';
}
if ( ! empty( $plugin_slug ) ) {
$active = $this->check_plugin_status( $action_value['plugin_slug'] );
$url = $this->create_action_link( $active['needs'], $action_value['plugin_slug'] );
$label = '';
$class = '';
switch ( $active['needs'] ) {
case 'install':
$class = 'install-now button';
$label = esc_html__( 'Install', 'bosa-online-shop' );
break;
case 'activate':
$class = 'activate-now button button-primary';
$label = esc_html__( 'Activate', 'bosa-online-shop' );
break;
case 'deactivate':
$class = 'deactivate-now button';
$label = esc_html__( 'Deactivate', 'bosa-online-shop' );
break;
}
?>
';
$hooray = false;
}
}
if ( $hooray ){
echo '
' . esc_html__( 'Hooray! There are no recommended actions for you right now.', 'bosa-online-shop' ) . '';
echo '
'.esc_html__('Show All Recommended Actions', 'bosa-online-shop').'';
}
echo '
';
}
}
/**
* Recommended plugins tab
*/
/*
* Call plugin api
*/
public function call_plugin_api( $slug ) {
include_once( ABSPATH . 'wp-admin/includes/plugin-install.php' );
if ( false === ( $call_api = get_transient( 'kt_theme_info_plugin_information_transient_' . $slug ) ) ) {
$call_api = plugins_api( 'plugin_information', array(
'slug' => $slug,
'fields' => array(
'downloaded' => false,
'rating' => false,
'description' => false,
'short_description' => true,
'donate_link' => false,
'tags' => false,
'sections' => true,
'homepage' => true,
'added' => false,
'last_updated' => false,
'compatibility' => false,
'tested' => false,
'requires' => false,
'downloadlink' => false,
'icons' => true
)
) );
set_transient( 'kt_theme_info_plugin_information_transient_' . $slug, $call_api, 30 * MINUTE_IN_SECONDS );
}
return $call_api;
}
public function get_plugin_icon( $arr ) {
if ( ! empty( $arr['svg'] ) ) {
$plugin_icon_url = $arr['svg'];
} elseif ( ! empty( $arr['2x'] ) ) {
$plugin_icon_url = $arr['2x'];
} elseif ( ! empty( $arr['1x'] ) ) {
$plugin_icon_url = $arr['1x'];
} else {
$plugin_icon_url = get_template_directory_uri() . '/assets/placeholder_plugin.png';
}
return $plugin_icon_url;
}
public function recommended_plugins() {
$recommended_plugins = $this->config['recommended_plugins'];
if ( ! empty( $recommended_plugins ) ) {
if ( ! empty( $recommended_plugins ) && is_array( $recommended_plugins ) ) {
echo '
';
foreach ( $recommended_plugins as $recommended_plugins_item ) {
if ( ! empty( $recommended_plugins_item['slug'] ) ) {
$info = $this->call_plugin_api( $recommended_plugins_item['slug'] );
if ( ! empty( $info->icons ) ) {
$icon = $this->get_plugin_icon( $info->icons );
}
$active = $this->check_plugin_status( $recommended_plugins_item['slug'] );
if ( ! empty( $active['needs'] ) ) {
$url = $this->create_action_link( $active['needs'], $recommended_plugins_item['slug'] );
}
echo '
';
if ( ! empty( $icon ) ) {
echo '
![plugin box image]('.esc_url( $icon ).')
';
}
if ( ! empty( $info->version ) ) {
echo '
'. ( ! empty( $this->config['recommended_plugins']['version_label'] ) ? esc_html( $this->config['recommended_plugins']['version_label'] ) : '' ) . esc_html( $info->version ).'';
}
if ( ! empty( $info->author ) ) {
echo '
| ' . wp_kses_post( $info->author );
}
if ( ! empty( $info->name ) && ! empty( $active ) ) {
echo '
';
echo '' . ( ( $active['needs'] !== 'install' && $active['status'] ) ? 'Active: ' : '' ) . esc_html( $info->name ) . '';
echo '
';
$label = '';
switch ( $active['needs'] ) {
case 'install':
$class = 'install-now button';
$label = esc_html__( 'Install', 'bosa-online-shop' );
break;
case 'activate':
$class = 'activate-now button button-primary';
$label = esc_html__( 'Activate', 'bosa-online-shop' );
break;
case 'deactivate':
$class = 'deactivate-now button';
$label = esc_html__( 'Deactivate', 'bosa-online-shop' );
break;
}
echo '
';
echo '' . esc_html( $label ) . '';
echo '';
}
echo '
';
}
}
echo '
';
}
}
}
/**
* Child themes
*/
public function child_themes() {
echo '
';
$child_themes = isset( $this->config['child_themes'] ) ? $this->config['child_themes'] : array();
if ( ! empty( $child_themes ) ) {
/*defaults values for child theme array */
$defaults = array(
'title' => '',
'screenshot' => '',
'download_link'=> '',
'preview_link' => ''
);
if ( ! empty( $child_themes ) && is_array( $child_themes ) ) {
echo '
';
$i = 0;
foreach ( $child_themes as $child_theme ){
$instance = wp_parse_args( (array) $child_theme, $defaults );
/*allowed 5 value in array */
$title = $instance[ 'title' ];
$screenshot = $instance[ 'screenshot'];
$download_link = $instance[ 'download_link'];
$preview_link = $instance[ 'preview_link'];
if( !empty( $screenshot) ){
echo '
';
echo '
';
echo '
![' . ( ! empty( $title ) ? esc_attr( $title ) : '' ) . '](' . esc_url( $screenshot ) . ')
';
if ( ! empty( $title ) ) {
echo '
';
}
echo "
";
echo "
";
$i++;
}
if( 0 == $i % 3 ){
echo "
";/*.kt-about-row end-start*/
}
}
echo '
';/*.kt-about-row end*/
}// End if().
}// End if().
echo '
';
}
/**
* Support tab
*/
public function support() {
echo '
';
if ( ! empty( $this->config['support_content'] ) ) {
$supports = $this->config['support_content'];
if ( ! empty( $supports ) ) {
/*defaults values for child theme array */
$defaults = array(
'title' => '',
'icon' => '',
'desc' => '',
'button_label' => '',
'button_link' => '',
'is_button' => true,
'is_new_tab' => true
);
foreach ( $supports as $support ) {
$instance = wp_parse_args( (array) $support, $defaults );
/*allowed 7 value in array */
$title = $instance[ 'title' ];
$icon = $instance[ 'icon'];
$desc = $instance[ 'desc'];
$button_label = $instance[ 'button_label'];
$button_link = $instance[ 'button_link'];
$is_button = $instance[ 'is_button'];
$is_new_tab = $instance[ 'is_new_tab'];
echo '
';
if ( ! empty( $title ) ) {
echo '
';
if ( ! empty( $icon ) ) {
echo '';
}
echo esc_html($title);
echo '
';
}
if ( ! empty( $desc ) ) {
echo '
' . $desc . '
';
}
if ( ! empty( $button_link ) && ! empty( $button_label ) ) {
echo '
';
$button_class = '';
if ( $is_button ) {
$button_class = 'button button-primary';
}
$button_new_tab = '_self';
if ( isset( $is_new_tab ) ) {
if ( $is_new_tab ) {
$button_new_tab = '_blank';
}
}
echo '' . $button_label . '';
echo '
';
}
echo '
';
}
}
}
echo '
';
}
/**
* Changelog tab
*/
private function parse_changelog() {
WP_Filesystem();
global $wp_filesystem;
if ( is_child_theme() ){
$changelog = $wp_filesystem->get_contents( get_stylesheet_directory() . '/inc/theme-info/changelog.txt' );
}else{
$changelog = $wp_filesystem->get_contents( get_template_directory() . '/inc/theme-info/changelog.txt' );
}
if ( is_wp_error( $changelog ) ) {
$changelog = '';
}
return $changelog;
}
public function changelog() {
$changelog = $this->parse_changelog();
if ( ! empty( $changelog ) ) {
echo '
';
echo "
";
echo esc_html($changelog);
echo "
";
echo '
';
}
}
/**
* Free vs Pro tab
*/
public function free_pro(){
if( ! empty( $this->config['free_pro'] ) ){
$free_pro= $this->config['free_pro'];
if( ! empty($free_pro) ){
/*defaults values for Free vs Pro array */
$defaults = array(
'title' => '',
'desc' => '',
'recommended_actions'=> '',
'link_title' => '',
'link_url' => '',
'is_button' => false,
'is_new_tab' => false
);
echo '
';
foreach ( $free_pro as $free_pro_item ) {
/*allowed 6 value in array */
$instance = wp_parse_args( (array) $free_pro_item, $defaults );
/*default values*/
$title = esc_html( $instance[ 'title' ] );
$desc = wp_kses_post( $instance[ 'desc' ] );
$link_title = esc_html( $instance[ 'link_title' ] );
$link_url = esc_url( $instance[ 'link_url' ] );
$is_button = $instance[ 'is_button' ];
$is_new_tab = $instance[ 'is_new_tab' ];
echo '
';
if ( ! empty( $title ) ) {
echo '
' . $title . '
';
}
if ( ! empty( $desc ) ) {
echo '
' . $desc . '
';
}
if ( ! empty( $link_title ) && ! empty( $link_url ) ) {
echo '
';
$button_class = '';
if ( $is_button ) {
$button_class = 'button button-primary';
}
$count = $this->count_recommended_actions();
if ( $free_pro_item['recommended_actions'] && isset( $count ) ) {
if ( $count == 0 ) {
echo '';
} else {
echo '';
}
}
$button_new_tab = '_self';
if ( $is_new_tab ) {
$button_new_tab = '_blank';
}
echo '' . $free_pro_item['link_title'] . '';
echo '
';
}
echo '
';
}
echo '
';
}
}
}
/**
* Demos tab
*/
public function demos(){
if( ! empty( $this->config['demos'] ) ){
$demos= $this->config['demos'];
if( ! empty($demos) ){
/*defaults values for demos array */
$defaults = array(
'title' => '',
'desc' => '',
'recommended_actions'=> '',
'link_title' => '',
'link_url' => '',
'is_button' => false,
'is_new_tab' => false
);
echo '
';
foreach ( $demos as $demos_item ) {
/*allowed 6 value in array */
$instance = wp_parse_args( (array) $demos_item, $defaults );
/*default values*/
$title = esc_html( $instance[ 'title' ] );
$desc = wp_kses_post( $instance[ 'desc' ] );
$link_title = esc_html( $instance[ 'link_title' ] );
$link_url = esc_url( $instance[ 'link_url' ] );
$is_button = $instance[ 'is_button' ];
$is_new_tab = $instance[ 'is_new_tab' ];
echo '
';
if ( ! empty( $title ) ) {
echo '
' . $title . '
';
}
if ( ! empty( $desc ) ) {
echo '
' . $desc . '
';
}
if ( ! empty( $link_title ) && ! empty( $link_url ) ) {
echo '
';
$button_class = '';
if ( $is_button ) {
$button_class = 'button button-primary';
}
$count = $this->count_recommended_actions();
if ( $demos_item['recommended_actions'] && isset( $count ) ) {
if ( $count == 0 ) {
echo '';
} else {
echo '';
}
}
$button_new_tab = '_self';
if ( $is_new_tab ) {
$button_new_tab = '_blank';
}
echo '' . $demos_item['link_title'] . '';
echo '
';
}
echo '
';
}
echo '
';
}
}
}
/**
* Rating tab
*/
public function rating(){
if( ! empty( $this->config['rating'] ) ){
$rating= $this->config['rating'];
if( ! empty($rating) ){
/*defaults values for demos array */
$defaults = array(
'title' => '',
'desc' => '',
'link_title' => '',
'link_url' => '',
'is_button' => false,
'is_new_tab' => false
);
echo '
';
foreach ( $rating as $rating_item ) {
/*allowed 6 value in array */
$instance = wp_parse_args( (array) $rating_item, $defaults );
/*default values*/
$title = esc_html( $instance[ 'title' ] );
$desc = wp_kses_post( $instance[ 'desc' ] );
$link_title = esc_html( $instance[ 'link_title' ] );
$link_url = esc_url( $instance[ 'link_url' ] );
$is_button = $instance[ 'is_button' ];
$is_new_tab = $instance[ 'is_new_tab' ];
echo '
';
if ( ! empty( $title ) ) {
echo '
' . $title . '
';
}
if ( ! empty( $desc ) ) {
echo '
' . $desc . '
';
}
if ( ! empty( $link_title ) && ! empty( $link_url ) ) {
echo '
';
$button_class = '';
if ( $is_button ) {
$button_class = 'button button-primary';
}
$button_new_tab = '_self';
if ( $is_new_tab ) {
$button_new_tab = '_blank';
}
echo '' . $rating_item['link_title'] . '';
echo '
';
}
echo '
';
}
echo '
';
}
}
}
/**
* Load css and scripts for the about page
*/
public function style_and_scripts( $hook_suffix ) {
// this is needed on all admin pages, not just the about page, for the badge action count in the WordPress main sidebar
wp_enqueue_style( 'kt-theme-info-css', get_template_directory_uri() . '/inc/theme-info/assets/css/theme-info.css' );
if ( 'appearance_page_' . $this->theme_slug . '-info' == $hook_suffix ) {
wp_enqueue_script( 'kt-theme-info-js', get_template_directory_uri() . '/inc/theme-info/assets/js/theme-info.js', array( 'jquery' ) );
wp_enqueue_style( 'plugin-install' );
wp_enqueue_script( 'plugin-install' );
wp_enqueue_script( 'updates' );
$count = $this->count_recommended_actions();
wp_localize_script( 'kt-theme-info-js', 'kt_theme_info_object', array(
'nr_actions_recommended' => $count,
'ajaxurl' => admin_url( 'admin-ajax.php' ),
'template_directory' => get_template_directory_uri()
) );
}
}
}
}
$theme_name_config = esc_attr ( wp_get_theme()->get('Name') );
$theme_name_config_url = strtolower( str_replace( ' ', '-', $theme_name_config ) );
$demo_name_config_url = '';
if( is_child_theme() ){
$demo_name_config_url = $theme_name_config_url;
}
$config = array(
// Main welcome title
'info_title' => sprintf( esc_html__( 'Welcome to %s - ', 'bosa-online-shop' ), $theme_name_config ),
// Main welcome content
'info_content' => sprintf( esc_html__( '%s is now installed and ready to use. We hope the following information will help and you enjoy using it!', 'bosa-online-shop' ), '
'.$theme_name_config.'' ),
/**
* Quick links
*/
'quick_links' => array(
'theme_url' => array(
'text' => __( 'Theme Details', 'bosa-online-shop' ),
'url' => 'https://bosathemes.com/' .$theme_name_config_url
),
'demo_url' => array(
'text' => __( 'View Demo', 'bosa-online-shop' ),
'url' => 'https://demo.bosathemes.com/bosa/' .$demo_name_config_url
),
'pro_url' => array(
'text' => __( 'View Pro Version', 'bosa-online-shop' ),
'url' => 'https://bosathemes.com/bosa-pro'
),
'rate_url' => array(
'text' => __( 'Rate This Theme', 'bosa-online-shop' ),
'url' => 'https://wordpress.org/support/theme/' .$theme_name_config_url. '/reviews'
),
),
'tabs' => array(
'getting_started' => esc_html__( 'Getting Started', 'bosa-online-shop' ),
'recommended_plugins' => esc_html__( 'Recommended Plugins', 'bosa-online-shop' ),
'support' => esc_html__( 'Support', 'bosa-online-shop' ),
'changelog' => esc_html__( 'Changelog', 'bosa-online-shop' ),
'free_pro' => esc_html__( 'Free VS Pro', 'bosa-online-shop' ),
'demos' => esc_html__( 'Demos', 'bosa-online-shop' ),
'rating' => esc_html__( 'Rate Theme', 'bosa-online-shop' )
),
/*Getting started tab*/
'gs_steps' => array(
'first' => array(
'title' => esc_html__( 'Step 1 - To fully take advantage of the best our theme can offer, get started.', 'bosa-online-shop' ),
'button_label' => sprintf(esc_html__( 'Get started with %s', 'bosa-online-shop' ), $theme_name_config ),
'is_button' => true,
'recommended_actions' => false,
'is_new_tab' => true,
'is_gs' => true,
),
'second' => array(
'title' => esc_html__( 'Step 2 - Checkout starter sites (Demos)', 'bosa-online-shop' ),
'desc' => esc_html__( 'All starter demos sites comes attached to Bosa just ready to pluck one from. Discover them, be enamoured and finally decide on the one you resonate with. If one doesnt catch your fancy dont be afraid to have a go at building a site with your own design.', 'bosa-online-shop' ),
'button_label' => esc_html__( 'View Demo', 'bosa-online-shop' ),
'button_link' => esc_url( 'https://demo.bosathemes.com/bosa/' .$demo_name_config_url ),
'is_button' => true,
'is_new_tab' => true
),
'third' => array (
'title' => esc_html__( 'Step 3 - Import demo of your choice', 'bosa-online-shop' ),
'desc' => esc_html__( 'Once you have a found a site you like, you can move ahead and import it. It is to be noted that some necessary plugins will be installed to function the site as you see in the demo site. A fresh Wordpress site is recommended to mirror the demo site on your setup. Importing the demo on an already running site will create discrepancies with the site shown on the demo.', 'bosa-online-shop' ),
'button_label' => esc_html__( 'Import Demo', 'bosa-online-shop' ),
'button_link' => esc_url( admin_url( 'themes.php?page=advanced-import' ), 'bosa-online-shop' ),
'is_button' => true,
'is_new_tab' => true
),
'fourth' => array(
'title' => esc_html__( 'Step 4 - Start editing content and making your site!', 'bosa-online-shop' ),
'desc' => esc_html__( 'Once finishing the import you play with the demo to your hearts content.', 'bosa-online-shop' ),
),
'fifth' => array (
'title' => esc_html__( "Step 5 - That's it!", 'bosa-online-shop' ),
'desc' => esc_html__( 'Go live with the website and enjoy it!', 'bosa-online-shop' ),
),
),
// recommended actions array.
'recommended_actions' => array(
),
// Generic Plugins array.
'recommended_plugins' => array(
'Kirki' => array(
'slug' => 'kirki'
),
'Elementor' => array(
'slug' => 'elementor'
),
'Keon Toolset' => array(
'slug' => 'keon-toolset'
),
'Advanced Import' => array(
'slug' => 'advanced-import'
),
'Breadcrumb NavXT' => array(
'slug' => 'breadcrumb-navxt'
),
'Smash Balloon Instagram Feed' => array(
'slug' => 'instagram-feed'
),
),
// Support content tab.
'support_content' => array(
'first' => array(
'title' => esc_html__( 'Need more features?', 'bosa-online-shop' ),
'desc' => esc_html__( 'Upgrade to PRO version for more exciting features and Priority Support.', 'bosa-online-shop' ),
'button_label' => esc_html__( 'Upgrade to PRO', 'bosa-online-shop' ),
'button_link' => esc_url( 'https://bosathemes.com/bosa-pro' ),
'is_button' => true,
'is_new_tab' => true
),
'second' => array (
'title' => esc_html__( 'Go to Customizer', 'bosa-online-shop' ),
'desc' => esc_html__( 'All Settings, Header & Footer Options, Theme Options, Widgets and Menus are available via Customize screen.', 'bosa-online-shop' ),
'button_label' => esc_html__( 'Go to Customizer', 'bosa-online-shop' ),
'button_link' => esc_url( admin_url( 'customize.php' ) ),
'is_button' => true,
'is_new_tab' => true
),
'third' => array(
'title' => esc_html__( 'Documentation', 'bosa-online-shop' ),
'desc' => esc_html__( 'Please check our full documentation for detailed information on how to Setup and Use Bosa.', 'bosa-online-shop' ),
'button_label' => esc_html__( 'Read full documentation', 'bosa-online-shop' ),
'button_link' => esc_url( 'https://bosathemes.com/docs/bosa' ),
'is_button' => true,
'is_new_tab' => true
),
'fourth' => array (
'title' => esc_html__( 'Support Forum', 'bosa-online-shop' ),
'desc' => esc_html__( 'Got theme support question or found bug? Simply create a support ticket with your queries and we will get back to you.', 'bosa-online-shop' ),
'button_label' => esc_html__( 'Support Forum', 'bosa-online-shop' ),
'button_link' => esc_url( 'https://bosathemes.com/user-login-register' ),
'is_button' => true,
'is_new_tab' => true
),
'fifth' => array(
'title' => esc_html__( 'Got sales related question?', 'bosa-online-shop' ),
'desc' => esc_html__( "Have any query before purchase, you are more than welcome to ask.", 'bosa-online-shop' ),
'button_label' => esc_html__( 'Pre-sale Question?', 'bosa-online-shop' ),
'button_link' => esc_url( 'https://bosathemes.com/pre-sale' ),
'is_button' => true,
'is_new_tab' => true
),
'sixth' => array(
'title' => esc_html__( 'Customization Request', 'bosa-online-shop' ),
'desc' => esc_html__( 'Needed any customization for the theme, you can request from here.', 'bosa-online-shop' ),
'button_label' => esc_html__( 'Customization Request', 'bosa-online-shop' ),
'button_link' => esc_url( 'https://bosathemes.com/hire-us' ),
'is_button' => true,
'is_new_tab' => true
)
),
// Free vs Pro
'free_pro' => array (
'first'=> array(
'title' => esc_html__( 'Free VS Pro Features', 'bosa-online-shop' ),
'desc' => sprintf( esc_html__( '%s is a multipurpose free WordPress theme. However, Bosa Pro comes with more cool and awesome features that give you a flexible and wide range of options to build a full-fledged website.', 'bosa-online-shop' ), $theme_name_config ),
'link_title' => esc_html__( 'Check All Features', 'bosa-online-shop' ),
'link_url' => esc_url( 'https://bosathemes.com/features' ),
'is_button' => true,
'recommended_actions' => false,
'is_new_tab' => true
),
),
//demos
'demos' => array (
'first'=> array(
'title' => esc_html__( 'Pre-built Demos', 'bosa-online-shop' ),
'desc' => esc_html__ ( 'To get started with ready-made starter site templates.', 'bosa-online-shop' ),
'link_title' => esc_html__( 'View All Demos', 'bosa-online-shop' ),
'link_url' => esc_url( 'https://demo.bosathemes.com/bosa/' .$demo_name_config_url ),
'is_button' => true,
'recommended_actions' => false,
'is_new_tab' => true
),
),
// rating
'rating' => array(
'first'=> array(
'title' => esc_html__( 'Show us how much you like our theme.', 'bosa-online-shop' ),
'desc' => esc_html__( 'If you like our work, please give us a moment of your time to rate our theme 5 stars on ', 'bosa-online-shop' ) .'
' . 'wordpress.org' . '' . esc_html__('. It will give us more energy to work on this theme.', 'bosa-online-shop' ),
'link_title' => esc_html__( 'Rate Theme', 'bosa-online-shop' ),
'link_url' => esc_url( 'https://wordpress.org/support/theme/' .$theme_name_config_url. '/reviews' ),
'is_button' => true,
'is_new_tab' => true
)
)
);
return new Bosa_Theme_Info( $config );