set_vars( $art_blog_config );
$this->init();
include_once( ABSPATH . 'wp-admin/includes/plugin.php' );
}
/**
* Set some settings
* @since 1.0.0
* @param $art_blog_config Our config parameters
*/
public function set_vars( $art_blog_config ) {
require_once trailingslashit( WHIZZIE_DIR ) . 'tgm/tgm.php';
if( isset( $art_blog_config['page_slug'] ) ) {
$this->page_slug = esc_attr( $art_blog_config['page_slug'] );
}
if( isset( $art_blog_config['page_title'] ) ) {
$this->page_title = esc_attr( $art_blog_config['page_title'] );
}
if( isset( $art_blog_config['steps'] ) ) {
$this->config_steps = $art_blog_config['steps'];
}
$this->plugin_path = trailingslashit( dirname( __FILE__ ) );
$relative_url = str_replace( get_template_directory(), '', $this->plugin_path );
$this->plugin_url = trailingslashit( get_template_directory_uri() . $relative_url );
$current_theme = wp_get_theme();
$this->theme_title = $current_theme->get( 'Name' );
$this->theme_name = strtolower( preg_replace( '#[^a-zA-Z]#', '', $current_theme->get( 'Name' ) ) );
$this->page_slug = apply_filters( $this->theme_name . '_theme_setup_wizard_page_slug', $this->theme_name . '-demoimport' );
$this->parent_slug = apply_filters( $this->theme_name . '_theme_setup_wizard_parent_slug', '' );
}
/**
* Hooks and filters
* @since 1.0.0
*/
public function init() {
if ( class_exists( 'TGM_Plugin_Activation' ) && isset( $GLOBALS['tgmpa'] ) ) {
add_action( 'init', array( $this, 'get_tgmpa_instance' ), 30 );
add_action( 'init', array( $this, 'set_tgmpa_url' ), 40 );
}
add_action( 'admin_enqueue_scripts', array( $this, 'enqueue_scripts' ) );
add_action( 'admin_menu', array( $this, 'menu_page' ) );
add_action( 'admin_init', array( $this, 'get_plugins' ), 30 );
add_filter( 'tgmpa_load', array( $this, 'tgmpa_load' ), 10, 1 );
add_action( 'wp_ajax_setup_plugins', array( $this, 'setup_plugins' ) );
add_action( 'wp_ajax_setup_widgets', array( $this, 'setup_widgets' ) );
}
public function enqueue_scripts() {
wp_enqueue_style( 'demo-import-style', get_template_directory_uri() . '/demo-import/assets/css/demo-import-style.css');
wp_register_script( 'demo-import-script', get_template_directory_uri() . '/demo-import/assets/js/demo-import-script.js', array( 'jquery' ), time() );
wp_localize_script(
'demo-import-script',
'art_blog_whizzie_params',
array(
'ajaxurl' => admin_url( 'admin-ajax.php' ),
'wpnonce' => wp_create_nonce( 'whizzie_nonce' ),
'verify_text' => esc_html( 'verifying', 'art-blog' )
)
);
wp_enqueue_script( 'demo-import-script' );
}
public function tgmpa_load( $status ) {
return is_admin() || current_user_can( 'install_themes' );
}
/**
* Get configured TGMPA instance
*
* @access public
* @since 1.1.2
*/
public function get_tgmpa_instance() {
$this->tgmpa_instance = call_user_func( array( get_class( $GLOBALS['tgmpa'] ), 'get_instance' ) );
}
/**
* Update $tgmpa_menu_slug and $tgmpa_parent_slug from TGMPA instance
*
* @access public
* @since 1.1.2
*/
public function set_tgmpa_url() {
$this->tgmpa_menu_slug = ( property_exists( $this->tgmpa_instance, 'menu' ) ) ? $this->tgmpa_instance->menu : $this->tgmpa_menu_slug;
$this->tgmpa_menu_slug = apply_filters( $this->theme_name . '_theme_setup_wizard_tgmpa_menu_slug', $this->tgmpa_menu_slug );
$tgmpa_parent_slug = ( property_exists( $this->tgmpa_instance, 'parent_slug' ) && $this->tgmpa_instance->parent_slug !== 'themes.php' ) ? 'admin.php' : 'themes.php';
$this->tgmpa_url = apply_filters( $this->theme_name . '_theme_setup_wizard_tgmpa_url', $tgmpa_parent_slug . '?page=' . $this->tgmpa_menu_slug );
}
/** Make a modal screen for the wizard **/
public function menu_page() {
add_menu_page( esc_html( $this->page_title ), esc_html( $this->page_title ), 'manage_options', $this->page_slug, array( $this, 'art_blog_guide' ) ,'',40);
}
/*** Make an interface for the wizard ***/
public function wizard_page() {
tgmpa_load_bulk_installer();
// install plugins with TGM.
if ( ! class_exists( 'TGM_Plugin_Activation' ) || ! isset( $GLOBALS['tgmpa'] ) ) {
die( 'Failed to find TGM' );
}
$url = wp_nonce_url( add_query_arg( array( 'plugins' => 'go' ) ), 'whizzie-setup' );
// copied from TGM
$method = ''; // Leave blank so WP_Filesystem can populate it as necessary.
$fields = array_keys( $_POST ); // Extra fields to pass to WP_Filesystem.
if ( false === ( $creds = request_filesystem_credentials( esc_url_raw( $url ), $method, false, false, $fields ) ) ) {
return true; // Stop the normal page form from displaying, credential request form will be shown.
}
// Now we have some credentials, setup WP_Filesystem.
if ( ! WP_Filesystem( $creds ) ) {
// Our credentials were no good, ask the user for them again.
request_filesystem_credentials( esc_url_raw( $url ), $method, true, false, $fields );
return true;
}
/* If we arrive here, we have the filesystem */ ?>
';
// The wizard is a list with only one item visible at a time
$steps = $this->get_steps();
echo '
';
echo '';
?>
';?>
config_steps;
$steps = array(
'plugins' => array(
'id' => 'plugins',
'title' => __( 'Plugins', 'art-blog' ),
'icon' => 'admin-plugins',
'view' => 'get_step_plugins',
'callback' => 'install_plugins',
'button_text' => __( 'Install Plugins', 'art-blog' ),
'can_skip' => true,
'icon_text' => 'Plugins'
),
'widgets' => array(
'id' => 'widgets',
'title' => __( 'Customizer', 'art-blog' ),
'icon' => 'welcome-widgets-menus',
'view' => 'get_step_widgets',
'callback' => 'install_widgets',
'button_text_one' => __( 'Import Demo', 'art-blog' ),
'can_skip' => true,
'icon_text' => 'Import Demo'
),
'done' => array(
'id' => 'done',
'title' => __( 'All Done', 'art-blog' ),
'icon' => 'yes',
'view' => 'get_step_done',
'callback' => '',
'icon_text' => 'Done'
)
);
// Iterate through each step and replace with dev config values
if( $dev_steps ) {
// Configurable elements - these are the only ones the dev can update from config.php
$can_config = array( 'title', 'icon', 'button_text', 'can_skip' );
foreach( $dev_steps as $dev_step ) {
// We can only proceed if an ID exists and matches one of our IDs
if( isset( $dev_step['id'] ) ) {
$id = $dev_step['id'];
if( isset( $steps[$id] ) ) {
foreach( $can_config as $element ) {
if( isset( $dev_step[$element] ) ) {
$steps[$id][$element] = $dev_step[$element];
}
}
}
}
}
}
return $steps;
}
/*** Print the content for the intro step ***/
public function get_step_importer() { ?>
get_plugins();
$content = array(); ?>
'.count($plugins['all']).'';
return $content;
}
/** Print the content for the intro step **/
public function get_step_widgets() { ?>
array(),
'install' => array(),
'update' => array(),
'activate' => array()
);
foreach( $instance->plugins as $slug=>$plugin ) {
if( $instance->is_plugin_active( $slug ) && false === $instance->does_plugin_have_update( $slug ) ) {
// Plugin is installed and up to date
continue;
} else {
$plugins['all'][$slug] = $plugin;
if( ! $instance->is_plugin_installed( $slug ) ) {
$plugins['install'][$slug] = $plugin;
} else {
if( false !== $instance->does_plugin_have_update( $slug ) ) {
$plugins['update'][$slug] = $plugin;
}
if( $instance->can_plugin_activate( $slug ) ) {
$plugins['activate'][$slug] = $plugin;
}
}
}
}
return $plugins;
}
public function setup_plugins() {
if ( ! check_ajax_referer( 'whizzie_nonce', 'wpnonce' ) || empty( $_POST['slug'] ) ) {
wp_send_json_error( array( 'error' => 1, 'message' => esc_html__( 'No Slug Found','art-blog' ) ) );
}
$json = array();
// send back some json we use to hit up TGM
$plugins = $this->get_plugins();
// what are we doing with this plugin?
foreach ( $plugins['activate'] as $slug => $plugin ) {
if ( $_POST['slug'] == $slug ) {
$json = array(
'url' => admin_url( $this->tgmpa_url ),
'plugin' => array( $slug ),
'tgmpa-page' => $this->tgmpa_menu_slug,
'plugin_status' => 'all',
'_wpnonce' => wp_create_nonce( 'bulk-plugins' ),
'action' => 'tgmpa-bulk-activate',
'action2' => - 1,
'message' => esc_html__( 'Activating Plugin','art-blog' ),
);
break;
}
}
foreach ( $plugins['update'] as $slug => $plugin ) {
if ( $_POST['slug'] == $slug ) {
$json = array(
'url' => admin_url( $this->tgmpa_url ),
'plugin' => array( $slug ),
'tgmpa-page' => $this->tgmpa_menu_slug,
'plugin_status' => 'all',
'_wpnonce' => wp_create_nonce( 'bulk-plugins' ),
'action' => 'tgmpa-bulk-update',
'action2' => - 1,
'message' => esc_html__( 'Updating Plugin','art-blog' ),
);
break;
}
}
foreach ( $plugins['install'] as $slug => $plugin ) {
if ( $_POST['slug'] == $slug ) {
$json = array(
'url' => admin_url( $this->tgmpa_url ),
'plugin' => array( $slug ),
'tgmpa-page' => $this->tgmpa_menu_slug,
'plugin_status' => 'all',
'_wpnonce' => wp_create_nonce( 'bulk-plugins' ),
'action' => 'tgmpa-bulk-install',
'action2' => - 1,
'message' => esc_html__( 'Installing Plugin','art-blog' ),
);
break;
}
}
if ( $json ) {
$json['hash'] = md5( serialize( $json ) ); // used for checking if duplicates happen, move to next plugin
wp_send_json( $json );
} else {
wp_send_json( array( 'done' => 1, 'message' => esc_html__( 'Success','art-blog' ) ) );
}
exit;
}
//................................................. MENUS .................................................//
public function art_blog_customizer_nav_menu() {
// ------- Create Primary Menu --------
$art_blog_themename = 'Art Blog'; // Ensure the theme name is set
$art_blog_menuname = $art_blog_themename . ' Primary Menu';
$art_blog_menulocation = 'menu-1';
$art_blog_menu_exists = wp_get_nav_menu_object($art_blog_menuname);
if (!$art_blog_menu_exists) {
$art_blog_menu_id = wp_create_nav_menu($art_blog_menuname);
// Home
wp_update_nav_menu_item($art_blog_menu_id, 0, array(
'menu-item-title' => __('Home', 'art-blog'),
'menu-item-classes' => 'home',
'menu-item-url' => home_url('/'),
'menu-item-status' => 'publish'
));
// About
$art_blog_page_about = get_page_by_path('about');
if($art_blog_page_about){
wp_update_nav_menu_item($art_blog_menu_id, 0, array(
'menu-item-title' => __('About', 'art-blog'),
'menu-item-classes' => 'about',
'menu-item-url' => get_permalink($art_blog_page_about),
'menu-item-status' => 'publish'
));
}
// Services
$art_blog_page_services = get_page_by_path('services');
if($art_blog_page_services){
wp_update_nav_menu_item($art_blog_menu_id, 0, array(
'menu-item-title' => __('Services', 'art-blog'),
'menu-item-classes' => 'services',
'menu-item-url' => get_permalink($art_blog_page_services),
'menu-item-status' => 'publish'
));
}
// Blog
$art_blog_page_blog = get_page_by_path('blog');
if($art_blog_page_blog){
wp_update_nav_menu_item($art_blog_menu_id, 0, array(
'menu-item-title' => __('Blog', 'art-blog'),
'menu-item-classes' => 'blog',
'menu-item-url' => get_permalink($art_blog_page_blog),
'menu-item-status' => 'publish'
));
}
// Contact Us
$art_blog_page_contact = get_page_by_path('contact');
if($art_blog_page_contact){
wp_update_nav_menu_item($art_blog_menu_id, 0, array(
'menu-item-title' => __('Contact Us', 'art-blog'),
'menu-item-classes' => 'contact',
'menu-item-url' => get_permalink($art_blog_page_contact),
'menu-item-status' => 'publish'
));
}
// Assign menu to location if not set
if (!has_nav_menu($art_blog_menulocation)) {
$art_blog_locations = get_theme_mod('nav_menu_locations');
$art_blog_locations[$art_blog_menulocation] = $art_blog_menu_id; // Use $art_blog_menu_id here
set_theme_mod('nav_menu_locations', $art_blog_locations);
}
}
}
public function art_blog_social_menu() {
// ------- Create Social Menu --------
$art_blog_menuname = $art_blog_themename . 'Social Menu';
$art_blog_menulocation = 'social-menu';
$art_blog_menu_exists = wp_get_nav_menu_object( $art_blog_menuname );
if( !$art_blog_menu_exists){
$art_blog_menu_id = wp_create_nav_menu($art_blog_menuname);
wp_update_nav_menu_item( $art_blog_menu_id, 0, array(
'menu-item-title' => __( 'Facebook', 'art-blog' ),
'menu-item-url' => 'https://www.facebook.com',
'menu-item-status' => 'publish',
) );
wp_update_nav_menu_item( $art_blog_menu_id, 0, array(
'menu-item-title' => __( 'Pinterest', 'art-blog' ),
'menu-item-url' => 'https://www.pinterest.com',
'menu-item-status' => 'publish',
) );
wp_update_nav_menu_item( $art_blog_menu_id, 0, array(
'menu-item-title' => __( 'Twitter', 'art-blog' ),
'menu-item-url' => 'https://www.twitter.com',
'menu-item-status' => 'publish',
) );
wp_update_nav_menu_item( $art_blog_menu_id, 0, array(
'menu-item-title' => __( 'Youtube', 'art-blog' ),
'menu-item-url' => 'https://www.youtube.com',
'menu-item-status' => 'publish',
) );
wp_update_nav_menu_item( $art_blog_menu_id, 0, array(
'menu-item-title' => __( 'Instagram', 'art-blog' ),
'menu-item-url' => 'https://www.instagram.com',
'menu-item-status' => 'publish',
) );
if( !has_nav_menu( $art_blog_menulocation ) ){
$locations = get_theme_mod('nav_menu_locations');
$locations[$art_blog_menulocation] = $art_blog_menu_id;
set_theme_mod( 'nav_menu_locations', $locations );
}
}
}
/**
* Imports the Demo Content
* @since 1.1.0
*/
public function setup_widgets() {
//................................................. MENU PAGES .................................................//
$art_blog_home_id='';
$art_blog_home_content = '';
$art_blog_home_title = 'Home';
$art_blog_home = array(
'post_type' => 'page',
'post_title' => $art_blog_home_title,
'post_content' => $art_blog_home_content,
'post_status' => 'publish',
'post_author' => 1,
'post_slug' => 'home'
);
$art_blog_home_id = wp_insert_post($art_blog_home);
//Set the home page template
add_post_meta( $art_blog_home_id, '_wp_page_template', 'revolution-home.php' );
//Set the static front page
$art_blog_home = get_page_by_title( 'Home' );
update_option( 'page_on_front', $art_blog_home->ID );
update_option( 'show_on_front', 'page' );
// Create a posts page and assign the template
$art_blog_blog_title = 'Blog';
$art_blog_blog_check = get_page_by_path('blog');
if (!$art_blog_blog_check) {
$art_blog_blog = array(
'post_type' => 'page',
'post_title' => $art_blog_blog_title,
'post_status' => 'publish',
'post_author' => 1,
'post_name' => 'blog' // Unique slug for the blog page
);
$art_blog_blog_id = wp_insert_post($art_blog_blog);
// Set the posts page
if (!is_wp_error($art_blog_blog_id)) {
update_option('page_for_posts', $art_blog_blog_id);
}
}
// Create a Contact Us page and assign the template
$art_blog_contact_title = 'Contact Us';
$art_blog_contact_check = get_page_by_path('contact');
if (!$art_blog_contact_check) {
$art_blog_contact = array(
'post_type' => 'page',
'post_title' => $art_blog_contact_title,
'post_content' => '"More About The Free Art Blog Theme"
Whether you’re passionate about wellness, parenting, art, technology, or coding, the Free Blog WordPress Theme is designed to cater to all types of content niches with ease. Its clean interface, responsive design, and intuitive setup allow both beginners and seasoned bloggers to build a polished online presence. Ideal for personal development blogs, digital marketing platforms, creative DIY tutorials, or lifestyle narratives, this theme offers endless versatility. It includes a wide range of built-in customization options, allowing you to modify homepage layouts, select custom fonts that reflect your voice, and feature eye-catching banner images to highlight your latest posts. Whether you’re sharing stories, tutorials, or tips, the Free Blog WordPress Theme ensures your blog looks professional, loads quickly, and keeps your audience coming back for more.
Another major advantage of the Free Blog WordPress Theme is its excellent adaptability for monetization and sustainable long-term growth. This theme is thoughtfully designed to support various income-generating strategies, including the use of affiliate links, Google AdSense, and sponsored content placements. With dedicated widget areas, you can easily integrate email signup forms to grow your subscriber list, display advertisements, or promote affiliate products without disrupting the reader experience. Whether you\'re managing a fashion trends blog, coding tutorial blog, or blogging tips blog, the theme’s well-structured layout and clean code make content easy to read and navigate. It also supports SEO best practices, making it particularly effective for users who run SEO blogs or content marketing platforms. The result is a blog that not only looks professional but also supports audience growth through strategic content delivery and monetization.
The Free Blog WordPress Theme is also an excellent choice for remote work blogs, freelance portfolios, travel guide blogs, and many other niche websites. Its elegant and minimal design ensures your content takes center stage, making it perfect for bloggers who want to present their work, stories, or advice in a clean and professional manner. With built-in Call-To-Action (CTA) sections and interactive features, the theme helps boost user engagement and conversion rates. Bloggers can seamlessly showcase stunning photo galleries, embed YouTube or Vimeo video tutorials, or even feature Instagram feeds to enrich the visual appeal. Its multimedia support allows you to create a dynamic and immersive reading experience. Lightweight and fast-loading, it also delivers on performance while giving users full creative control through customization options.',
'post_status' => 'publish',
'post_author' => 1,
'post_name' => 'contact' // Unique slug for the Contact Us page
);
wp_insert_post($art_blog_contact);
}
// Create a About page and assign the template
$art_blog_about_title = 'About';
$art_blog_about_check = get_page_by_path('about');
if (!$art_blog_about_check) {
$art_blog_about = array(
'post_type' => 'page',
'post_title' => $art_blog_about_title,
'post_content' => '"More About The Free Art Blog Theme"
Whether you’re passionate about wellness, parenting, art, technology, or coding, the Free Blog WordPress Theme is designed to cater to all types of content niches with ease. Its clean interface, responsive design, and intuitive setup allow both beginners and seasoned bloggers to build a polished online presence. Ideal for personal development blogs, digital marketing platforms, creative DIY tutorials, or lifestyle narratives, this theme offers endless versatility. It includes a wide range of built-in customization options, allowing you to modify homepage layouts, select custom fonts that reflect your voice, and feature eye-catching banner images to highlight your latest posts. Whether you’re sharing stories, tutorials, or tips, the Free Blog WordPress Theme ensures your blog looks professional, loads quickly, and keeps your audience coming back for more.
Another major advantage of the Free Blog WordPress Theme is its excellent adaptability for monetization and sustainable long-term growth. This theme is thoughtfully designed to support various income-generating strategies, including the use of affiliate links, Google AdSense, and sponsored content placements. With dedicated widget areas, you can easily integrate email signup forms to grow your subscriber list, display advertisements, or promote affiliate products without disrupting the reader experience. Whether you\'re managing a fashion trends blog, coding tutorial blog, or blogging tips blog, the theme’s well-structured layout and clean code make content easy to read and navigate. It also supports SEO best practices, making it particularly effective for users who run SEO blogs or content marketing platforms. The result is a blog that not only looks professional but also supports audience growth through strategic content delivery and monetization.
The Free Blog WordPress Theme is also an excellent choice for remote work blogs, freelance portfolios, travel guide blogs, and many other niche websites. Its elegant and minimal design ensures your content takes center stage, making it perfect for bloggers who want to present their work, stories, or advice in a clean and professional manner. With built-in Call-To-Action (CTA) sections and interactive features, the theme helps boost user engagement and conversion rates. Bloggers can seamlessly showcase stunning photo galleries, embed YouTube or Vimeo video tutorials, or even feature Instagram feeds to enrich the visual appeal. Its multimedia support allows you to create a dynamic and immersive reading experience. Lightweight and fast-loading, it also delivers on performance while giving users full creative control through customization options.',
'post_status' => 'publish',
'post_author' => 1,
'post_name' => 'about' // Unique slug for the About page
);
wp_insert_post($art_blog_about);
}
// Create a Services page and assign the template
$art_blog_services_title = 'Services';
$art_blog_services_check = get_page_by_path('services');
if (!$art_blog_services_check) {
$art_blog_services = array(
'post_type' => 'page',
'post_title' => $art_blog_services_title,
'post_content' => '"More About The Free Art Blog Theme"
Whether you’re passionate about wellness, parenting, art, technology, or coding, the Free Blog WordPress Theme is designed to cater to all types of content niches with ease. Its clean interface, responsive design, and intuitive setup allow both beginners and seasoned bloggers to build a polished online presence. Ideal for personal development blogs, digital marketing platforms, creative DIY tutorials, or lifestyle narratives, this theme offers endless versatility. It includes a wide range of built-in customization options, allowing you to modify homepage layouts, select custom fonts that reflect your voice, and feature eye-catching banner images to highlight your latest posts. Whether you’re sharing stories, tutorials, or tips, the Free Blog WordPress Theme ensures your blog looks professional, loads quickly, and keeps your audience coming back for more.
Another major advantage of the Free Blog WordPress Theme is its excellent adaptability for monetization and sustainable long-term growth. This theme is thoughtfully designed to support various income-generating strategies, including the use of affiliate links, Google AdSense, and sponsored content placements. With dedicated widget areas, you can easily integrate email signup forms to grow your subscriber list, display advertisements, or promote affiliate products without disrupting the reader experience. Whether you\'re managing a fashion trends blog, coding tutorial blog, or blogging tips blog, the theme’s well-structured layout and clean code make content easy to read and navigate. It also supports SEO best practices, making it particularly effective for users who run SEO blogs or content marketing platforms. The result is a blog that not only looks professional but also supports audience growth through strategic content delivery and monetization.
The Free Blog WordPress Theme is also an excellent choice for remote work blogs, freelance portfolios, travel guide blogs, and many other niche websites. Its elegant and minimal design ensures your content takes center stage, making it perfect for bloggers who want to present their work, stories, or advice in a clean and professional manner. With built-in Call-To-Action (CTA) sections and interactive features, the theme helps boost user engagement and conversion rates. Bloggers can seamlessly showcase stunning photo galleries, embed YouTube or Vimeo video tutorials, or even feature Instagram feeds to enrich the visual appeal. Its multimedia support allows you to create a dynamic and immersive reading experience. Lightweight and fast-loading, it also delivers on performance while giving users full creative control through customization options.',
'post_status' => 'publish',
'post_author' => 1,
'post_name' => 'services' // Unique slug for the Services page
);
wp_insert_post($art_blog_services);
}
// ------------------------------------------ Sections -------------------------------------- //
set_theme_mod('art_blog_enable_product_section',1);
set_theme_mod('art_blog_enable_slider',1);
set_theme_mod('art_blog_enable_slider',true);
// ------------------------------------------ Slider Section -------------------------------------- //
for($art_blog_i=1;$art_blog_i<=3;$art_blog_i++){
set_theme_mod( 'art_blog_slider_image'.$art_blog_i,get_template_directory_uri().'/revolution/assets/images/slider'.$art_blog_i.'.png' );
set_theme_mod( 'art_blog_slider_heading'.$art_blog_i, 'Explore Ideas, Ignite Creativity, Share Stories, Inspire Change.' );
set_theme_mod( 'art_blog_slider_text'.$art_blog_i, 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.' );
set_theme_mod( 'art_blog_slider_button1_text'.$art_blog_i, 'READ MORE' );
set_theme_mod( 'art_blog_slider_button1_link'.$art_blog_i, '#' );
}
// ------------------------------------------ Second Section -------------------------------------- //
set_theme_mod( 'art_blog_section_short_title', 'BLOG MAGAZINES' );
set_theme_mod( 'art_blog_section_title', 'BESTSELLER' );
set_theme_mod( 'art_blog_section_product_content', 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad.incididunt ut labore et dolore magna aliqua. Ut enim ad.' );
$product_category= array(
'Blogs' => array(
'Product Name Here 1',
'Product Name Here 2',
'Product Name Here 3',
'Product Name Here 4'
),
);
$k = 1;
foreach ( $product_category as $product_cats => $products_name ) {
// Insert porduct cats Start
$content = 'Lorem Ipsum is simply dummy text of the printing and setting.';
$parent_category = wp_insert_term(
$product_cats, // the term
'product_cat', // the taxonomy
array(
'description'=> $content,
'slug' => 'product_cat'.$k
));
$image_url = get_template_directory_uri().'/revolution/assets/images/about'.$k.'.png';
$image_name= 'img'.$k.'.png';
$upload_dir = wp_upload_dir();
// Set upload folder
$image_data= file_get_contents($image_url);
// Get image data
$unique_file_name = wp_unique_filename( $upload_dir['path'], $image_name );
// Generate unique name
$filename= basename( $unique_file_name );
// Create image file name
// Check folder permission and define file location
if( wp_mkdir_p( $upload_dir['path'] ) ) {
$file = $upload_dir['path'] . '/' . $filename;
} else {
$file = $upload_dir['basedir'] . '/' . $filename;
}
// Create the image file on the server
if ( ! function_exists( 'WP_Filesystem' ) ) {
require_once( ABSPATH . 'wp-admin/includes/file.php' );
}
WP_Filesystem();
global $wp_filesystem;
if ( ! $wp_filesystem->put_contents( $file, $image_data, FS_CHMOD_FILE ) ) {
wp_die( 'Error saving file!' );
}
// Check image file type
$wp_filetype = wp_check_filetype( $filename, null );
// Set attachment data
$attachment = array(
'post_mime_type' => $wp_filetype['type'],
'post_title' => sanitize_file_name( $filename ),
'post_content' => '',
'post_type' => 'product',
'post_status' => 'inherit'
);
// Create the attachment
$attach_id = wp_insert_attachment( $attachment, $file, $post_id );
// Include image.php
require_once(ABSPATH . 'wp-admin/includes/image.php');
// Define attachment metadata
$attach_data = wp_generate_attachment_metadata( $attach_id, $file );
// Assign metadata to attachment
wp_update_attachment_metadata( $attach_id, $attach_data );
update_woocommerce_term_meta( $parent_category['term_id'], 'thumbnail_id', $attach_id );
// create Product START
foreach ( $products_name as $key => $product_title ) {
$content = 'Lorem Ipsum is simply dummy text of the printing and setting.';
// Create post object
$my_post = array(
'post_title' => wp_strip_all_tags( $product_title ),
'post_content' => $content,
'post_status' => 'publish',
'post_type' => 'product',
);
// Insert the post into the database
$post_id = wp_insert_post($my_post);
wp_set_object_terms( $post_id, 'product_cat' . $k, 'product_cat', true );
update_post_meta($post_id, '_regular_price', '140.00'); // Set regular price
update_post_meta($post_id, '_sale_price', '120.00'); // Set sale price
update_post_meta($post_id, '_price', '120.00'); // Set current price (sale price is applied)
// Now replace meta w/ new updated value array
$image_url = get_template_directory_uri().'/revolution/assets/images/'.str_replace( " ", "-", $product_title).'.png';
echo $image_url . "
";
$image_name = $product_title.'.png';
$upload_dir = wp_upload_dir();
// Set upload folder
$image_data = file_get_contents(esc_url($image_url));
// Get image data
$unique_file_name = wp_unique_filename($upload_dir['path'], $image_name);
// Generate unique name
$filename = basename($unique_file_name);
// Create image file name
// Check folder permission and define file location
if (wp_mkdir_p($upload_dir['path'])) {
$file = $upload_dir['path'].'/'.$filename;
} else {
$file = $upload_dir['basedir'].'/'.$filename;
}
// Create the image file on the server
if ( ! function_exists( 'WP_Filesystem' ) ) {
require_once( ABSPATH . 'wp-admin/includes/file.php' );
}
WP_Filesystem();
global $wp_filesystem;
if ( ! $wp_filesystem->put_contents( $file, $image_data, FS_CHMOD_FILE ) ) {
wp_die( 'Error saving file!' );
}
// Check image file type
$wp_filetype = wp_check_filetype($filename, null);
// Set attachment data
$attachment = array(
'post_mime_type' => $wp_filetype['type'],
'post_title' => sanitize_file_name($filename),
'post_type' => 'product',
'post_status' => 'inherit',
);
// Create the attachment
$attach_id = wp_insert_attachment($attachment, $file, $post_id);
// Include image.php
require_once (ABSPATH.'wp-admin/includes/image.php');
// Define attachment metadata
$attach_data = wp_generate_attachment_metadata($attach_id, $file);
// Assign metadata to attachment
wp_update_attachment_metadata($attach_id, $attach_data);
// And finally assign featured image to post
set_post_thumbnail($post_id, $attach_id);
}
// Create product END
++$k;
}
$this->art_blog_customizer_nav_menu();
$this->art_blog_social_menu();
}
public function art_blog_guide() {
$display_string = '';
$return = add_query_arg( array()) ;
$theme = wp_get_theme( 'art-blog' );
?>