You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
330 lines
9.4 KiB
330 lines
9.4 KiB
<?php if ( ! defined( 'WOODMART_THEME_DIR' ) ) {
|
|
exit( 'No direct script access allowed' );}
|
|
|
|
/**
|
|
* ------------------------------------------------------------------------------------------------
|
|
* Execute after import
|
|
* ------------------------------------------------------------------------------------------------
|
|
*/
|
|
|
|
if ( ! class_exists( 'WOODMART_ImportVersion_base' ) ) :
|
|
class WOODMART_ImportVersion_base extends WOODMART_ImportVersion {
|
|
|
|
public $shop_page_id;
|
|
public $menu_id;
|
|
|
|
public function before() {
|
|
|
|
}
|
|
|
|
public function after() {
|
|
$this->menu_locations();
|
|
$this->blog_page();
|
|
$this->shop_page();
|
|
$this->shop_menu();
|
|
$this->categories_images();
|
|
$this->set_attribute_terms_colors();
|
|
$this->set_attribute_terms_images();
|
|
$this->enable_VC();
|
|
$this->configure_elementor();
|
|
$this->show_all_fields_menu();
|
|
$this->size_guide();
|
|
$this->enable_myaccount_registration();
|
|
$this->update_product_lookup_tables();
|
|
$this->woo_pages_sidebar();
|
|
}
|
|
|
|
public function woo_pages_sidebar() {
|
|
$pages = apply_filters( 'woocommerce_create_pages', array(
|
|
'cart' => array(
|
|
'name' => _x( 'cart', 'Page slug', 'woodmart' ),
|
|
'title' => _x( 'Cart', 'Page title', 'woodmart' ),
|
|
'content' => '[' . apply_filters( 'woocommerce_cart_shortcode_tag', 'woocommerce_cart' ) . ']'
|
|
),
|
|
'checkout' => array(
|
|
'name' => _x( 'checkout', 'Page slug', 'woodmart' ),
|
|
'title' => _x( 'Checkout', 'Page title', 'woodmart' ),
|
|
'content' => '[' . apply_filters( 'woocommerce_checkout_shortcode_tag', 'woocommerce_checkout' ) . ']'
|
|
),
|
|
) );
|
|
|
|
foreach ( $pages as $key => $page ) {
|
|
$option = 'woocommerce_' . $key . '_page_id';
|
|
$page_id = get_option( $option );
|
|
update_post_meta( $page_id, '_woodmart_main_layout', 'full-width' );
|
|
}
|
|
|
|
update_option( 'woocommerce_single_image_width', '1200' ); // Single product image
|
|
update_option( 'woocommerce_thumbnail_image_width', '600' ); // Gallery and catalog image
|
|
}
|
|
|
|
public function update_product_lookup_tables() {
|
|
if ( ! wc_update_product_lookup_tables_is_running() ) {
|
|
wc_update_product_lookup_tables();
|
|
}
|
|
}
|
|
|
|
public function menu_locations() {
|
|
global $wpdb;
|
|
|
|
$location = 'main-menu';
|
|
$mobile_location = 'mobile-menu';
|
|
|
|
$tablename = $wpdb->prefix . 'terms';
|
|
$menu_ids = $wpdb->get_results(
|
|
'
|
|
SELECT term_id, name
|
|
FROM ' . $tablename . "
|
|
WHERE name IN ('Main navigation', 'Mobile navigation', 'Categories')
|
|
ORDER BY name ASC
|
|
"
|
|
);
|
|
|
|
$locations = get_theme_mod( 'nav_menu_locations' );
|
|
|
|
foreach ( $menu_ids as $menu ) {
|
|
if ( $menu->name == 'Main navigation' ) {
|
|
$this->menu_id = $menu->term_id;
|
|
if ( ! has_nav_menu( $location ) ) {
|
|
$locations[ $location ] = $this->menu_id;
|
|
}
|
|
}
|
|
|
|
if ( $menu->name == 'Mobile navigation' ) {
|
|
if ( ! has_nav_menu( $mobile_location ) ) {
|
|
$locations[ $mobile_location ] = $menu->term_id;
|
|
}
|
|
}
|
|
}
|
|
|
|
set_theme_mod( 'nav_menu_locations', $locations );
|
|
|
|
}
|
|
|
|
public function blog_page() {
|
|
// Add blog item to the menu
|
|
$blog_page_title = 'Blog';
|
|
$blog_page = get_page_by_title( $blog_page_title );
|
|
if ( ! is_null( $blog_page ) ) {
|
|
update_option( 'page_for_posts', $blog_page->ID );
|
|
update_option( 'show_on_front', 'page' );
|
|
}
|
|
|
|
// Move Hello World post to trash
|
|
wp_trash_post( 1 );
|
|
|
|
// Move Sample Page to trash
|
|
wp_trash_post( 2 );
|
|
}
|
|
|
|
public function shop_page() {
|
|
// Setup shop page
|
|
$this->shop_page_id = $this->add_menu_item_by_title(
|
|
'Shop',
|
|
2,
|
|
false,
|
|
'main',
|
|
false,
|
|
array(
|
|
'block' => '201',
|
|
'design' => 'full-width',
|
|
)
|
|
);
|
|
|
|
$shop_heading_image_id = 363;
|
|
$url = wp_get_attachment_url( $shop_heading_image_id );
|
|
|
|
$shop_metas = array(
|
|
// '_woodmart_page-title-size' => 'small',
|
|
'_woodmart_title_image' => $url,
|
|
);
|
|
|
|
foreach ( $shop_metas as $key => $value ) {
|
|
update_post_meta( $this->shop_page_id, $key, $value );
|
|
}
|
|
|
|
}
|
|
|
|
public function shop_menu() {
|
|
|
|
}
|
|
|
|
public function categories_images() {
|
|
$categories = array( 'Accessories', 'Clocks', 'Cooking', 'Furniture', 'Lighting', 'Toys' );
|
|
$attachment_id = 117;
|
|
foreach ( $categories as $cat ) {
|
|
$cat = get_term_by( 'name', $cat, 'product_cat' );
|
|
add_term_meta( $cat->term_id, 'thumbnail_id', $attachment_id );
|
|
}
|
|
}
|
|
|
|
public function set_attribute_terms_colors() {
|
|
global $wpdb;
|
|
$terms = array(
|
|
'Beige' => '#f0e8c4',
|
|
'Black' => '#000000',
|
|
'Brown' => '#ad6424',
|
|
);
|
|
$product_id = 53;
|
|
$post_terms = array();
|
|
foreach ( $terms as $term_name => $color ) {
|
|
$term = get_term_by( 'name', $term_name, 'pa_color' );
|
|
add_term_meta( $term->term_id, 'color', $color, true );
|
|
$post_terms[] = $term->term_id;
|
|
}
|
|
|
|
wp_set_object_terms( $product_id, $post_terms, 'pa_color' );
|
|
|
|
foreach ( $post_terms as $value ) {
|
|
$wpdb->update(
|
|
$wpdb->term_taxonomy,
|
|
array(
|
|
'count' => 1, // string
|
|
),
|
|
array( 'term_id' => $value ),
|
|
array(
|
|
'%d',
|
|
),
|
|
array( '%d' )
|
|
);
|
|
}
|
|
delete_transient( 'wc_term_counts' );
|
|
|
|
// $this->response->add_msg( 'Terms updated' );
|
|
}
|
|
|
|
public function set_attribute_terms_images() {
|
|
global $wpdb;
|
|
|
|
$terms = array(
|
|
'pa_brand' => array(
|
|
'Magisso' => array(
|
|
'image' => wp_get_attachment_url( 71 ),
|
|
),
|
|
'Alessi' => array(
|
|
'image' => wp_get_attachment_url( 63 ),
|
|
),
|
|
'Eva Solo' => array(
|
|
'image' => wp_get_attachment_url( 64 ),
|
|
),
|
|
'Flos' => array(
|
|
'image' => wp_get_attachment_url( 65 ),
|
|
),
|
|
'Joseph Joseph' => array(
|
|
'image' => wp_get_attachment_url( 67 ),
|
|
),
|
|
'Hay' => array(
|
|
'image' => wp_get_attachment_url( 66 ),
|
|
),
|
|
'KLÖBER' => array(
|
|
'image' => wp_get_attachment_url( 68 ),
|
|
),
|
|
'Louis Poulsen' => array(
|
|
'image' => wp_get_attachment_url( 70 ),
|
|
),
|
|
'Vitra' => array(
|
|
'image' => wp_get_attachment_url( 64 ),
|
|
),
|
|
),
|
|
'product_cat' => array(
|
|
'Accessories' => array(
|
|
'category_icon_alt' => wp_get_attachment_url( 161 ),
|
|
'category_icon' => wp_get_attachment_url( 166 ),
|
|
),
|
|
'Clocks' => array(
|
|
'category_icon_alt' => wp_get_attachment_url( 162 ),
|
|
'category_icon' => wp_get_attachment_url( 164 ),
|
|
),
|
|
'Cooking' => array(
|
|
'category_icon_alt' => wp_get_attachment_url( 163 ),
|
|
'category_icon' => wp_get_attachment_url( 165 ),
|
|
),
|
|
'Furniture' => array(
|
|
'category_icon_alt' => wp_get_attachment_url( 161 ),
|
|
'category_icon' => wp_get_attachment_url( 166 ),
|
|
),
|
|
'Lighting' => array(
|
|
'category_icon_alt' => wp_get_attachment_url( 162 ),
|
|
'category_icon' => wp_get_attachment_url( 164 ),
|
|
),
|
|
'Toys' => array(
|
|
'category_icon_alt' => wp_get_attachment_url( 163 ),
|
|
'category_icon' => wp_get_attachment_url( 165 ),
|
|
),
|
|
),
|
|
);
|
|
|
|
foreach ( $terms as $attr_name => $data ) {
|
|
foreach ( $data as $term_name => $meta_values ) {
|
|
$term = get_term_by( 'name', $term_name, $attr_name );
|
|
foreach ( $meta_values as $key => $value ) {
|
|
add_term_meta( $term->term_id, $key, $value, true );
|
|
}
|
|
}
|
|
}
|
|
|
|
// $this->response->add_msg( 'Terms updated' );
|
|
}
|
|
|
|
public function enable_VC() {
|
|
if ( ! function_exists( 'vc_path_dir' ) ) {
|
|
return;
|
|
}
|
|
$file = vc_path_dir( 'SETTINGS_DIR', 'class-vc-roles.php' );
|
|
if ( ! file_exists( $file ) ) {
|
|
return;
|
|
}
|
|
require_once $file;
|
|
if ( ! class_exists( 'Vc_Roles' ) ) {
|
|
return;
|
|
}
|
|
$vc_roles = new Vc_Roles();
|
|
$data = $vc_roles->save(
|
|
array(
|
|
'administrator' => json_decode( '{"post_types":{"_state":"custom","post":"1","page":"1","woodmart_slide":"1","woodmart_size_guide":"1","cms_block":"1","woodmart_sidebar":"0","portfolio":"1","product":"1"},"backend_editor":{"_state":"1","disabled_ce_editor":"0"},"frontend_editor":{"_state":"1"},"post_settings":{"_state":"1"},"settings":{"_state":"1"},"templates":{"_state":"1"},"shortcodes":{"_state":"1"},"grid_builder":{"_state":"1"},"presets":{"_state":"1"}}' ),
|
|
)
|
|
);
|
|
// echo json_encode( $data );
|
|
}
|
|
|
|
public function configure_elementor() {
|
|
$post_types = get_option( 'elementor_cpt_support', array( 'page', 'post' ) );
|
|
$post_types[] = 'product';
|
|
$post_types[] = 'portfolio';
|
|
$post_types[] = 'cms_block';
|
|
$post_types[] = 'woodmart_slide';
|
|
|
|
update_option( 'elementor_cpt_support', $post_types );
|
|
update_option( 'elementor_disable_color_schemes', 'yes' );
|
|
update_option( 'elementor_disable_typography_schemes', 'yes' );
|
|
}
|
|
|
|
public function show_all_fields_menu() {
|
|
$user_id = 1;
|
|
update_user_meta( $user_id, 'managenav-menuscolumnshidden', array() );
|
|
update_user_meta( $user_id, 'metaboxhidden_nav-menus', array() );
|
|
}
|
|
|
|
public function size_guide() {
|
|
$selected_sguide_category = array(
|
|
40,
|
|
38,
|
|
39,
|
|
36,
|
|
37,
|
|
35,
|
|
);
|
|
$sguide_id = 1217;
|
|
if ( function_exists( 'update_woocommerce_term_meta' ) ) {
|
|
foreach ( $selected_sguide_category as $selected_sguide_cat ) {
|
|
update_woocommerce_term_meta( $selected_sguide_cat, 'woodmart_chosen_sguide', $sguide_id );
|
|
}
|
|
}
|
|
}
|
|
|
|
public function enable_myaccount_registration() {
|
|
update_option( 'woocommerce_enable_myaccount_registration', 'yes' );
|
|
}
|
|
}
|
|
|
|
endif;
|
|
|