/** * Install WC_Germanized */ public function install() { // Load Translation for default options $locale = apply_filters('plugin_locale', get_locale()); $mofile = WC_germanized()->plugin_path() . '/i18n/languages/woocommerce-germanized.mo'; if (file_exists(WC_germanized()->plugin_path() . '/i18n/languages/woocommerce-germanized-' . $locale . '.mo')) { $mofile = WC_germanized()->plugin_path() . '/i18n/languages/woocommerce-germanized-' . $locale . '.mo'; } load_textdomain('woocommerce-germanized', $mofile); if (!WC_GZD_Dependencies::instance()->is_woocommerce_activated()) { deactivate_plugins(WC_GERMANIZED_PLUGIN_FILE); wp_die(sprintf(__('Please install <a href="%s" target="_blank">WooCommerce</a> before installing WooCommerce Germanized. Thank you!', 'woocommerce-germanized'), 'http://wordpress.org/plugins/woocommerce/')); } $this->create_options(); // Register post types include_once 'class-wc-gzd-post-types.php'; WC_GZD_Post_types::register_taxonomies(); $this->create_cron_jobs(); $this->create_units(); // Virtual Tax Classes $tax_classes = array_filter(array_map('trim', explode("\n", get_option('woocommerce_tax_classes')))); if (!in_array('Virtual Rate', $tax_classes) || !in_array('Virtual Reduced Rate', $tax_classes)) { update_option('_wc_gzd_needs_pages', 1); if (!in_array('Virtual Rate', $tax_classes)) { array_push($tax_classes, 'Virtual Rate'); } if (!in_array('Virtual Reduced Rate', $tax_classes)) { array_push($tax_classes, 'Virtual Reduced Rate'); } update_option('woocommerce_tax_classes', implode("\n", $tax_classes)); } // Queue upgrades $current_version = get_option('woocommerce_gzd_version', null); $current_db_version = get_option('woocommerce_gzd_db_version', null); if (version_compare($current_db_version, '1.0.4', '<') && null !== $current_db_version) { update_option('_wc_gzd_needs_update', 1); } update_option('woocommerce_gzd_db_version', WC_germanized()->version); // Update version update_option('woocommerce_gzd_version', WC_germanized()->version); // Update activation date update_option('woocommerce_gzd_activation_date', date('Y-m-d')); // Add theme compatibility check delete_option('_wc_gzd_hide_theme_notice'); delete_option('_wc_gzd_hide_review_notice'); delete_option('_wc_gzd_hide_pro_notice'); // Check if pages are needed if (wc_get_page_id('revocation') < 1) { update_option('_wc_gzd_needs_pages', 1); } // Flush rules after install flush_rewrite_rules(); // Redirect to welcome screen set_transient('_wc_gzd_activation_redirect', 1, 60 * 60); }
// Exit if accessed directly } /** * Registers delivery time taxonomy * * @class WC_GZD_Post_Types * @version 1.0.0 * @author Vendidero */ class WC_GZD_Post_Types { /** * Hook in methods */ public static function init() { add_action('init', array(__CLASS__, 'register_taxonomies'), 11); } /** * Register Delivery Time Taxonomy */ public static function register_taxonomies() { // Delivery time register_taxonomy('product_delivery_time', apply_filters('woocommerce_germanized_taxonomy_objects_product_delivery_time', array('product')), apply_filters('woocommerce_germanized_taxonomy_args_product_delivery_time', array('hierarchical' => false, 'update_count_callback' => '_wc_term_recount', 'label' => __('Product Delivery Times', 'woocommerce-germanized'), 'labels' => array('name' => __('Product Delivery Times', 'woocommerce-germanized'), 'singular_name' => __('Product Delivery Time', 'woocommerce-germanized'), 'menu_name' => _x('Delivery Time', 'Admin menu name', 'woocommerce-germanized'), 'search_items' => __('Search Delivery Times', 'woocommerce-germanized'), 'all_items' => __('All Product Delivery Times', 'woocommerce-germanized'), 'edit_item' => __('Edit Product Delivery Time', 'woocommerce-germanized'), 'update_item' => __('Update Product Delivery Time', 'woocommerce-germanized'), 'add_new_item' => __('Add New Product Delivery Time', 'woocommerce-germanized'), 'new_item_name' => __('New Product Delivery Time Name', 'woocommerce-germanized')), 'show_ui' => true, 'query_var' => true, 'public' => false, 'capabilities' => array('manage_terms' => 'manage_product_terms', 'edit_terms' => 'edit_product_terms', 'delete_terms' => 'delete_product_terms', 'assign_terms' => 'assign_product_terms'), 'rewrite' => false))); // Units register_taxonomy('product_unit', apply_filters('woocommerce_germanized_taxonomy_objects_product_unit', array('product')), apply_filters('woocommerce_germanized_taxonomy_args_product_unit', array('hierarchical' => false, 'update_count_callback' => '_wc_term_recount', 'label' => __('Units', 'woocommerce-germanized'), 'labels' => array('name' => __('Units', 'woocommerce-germanized'), 'singular_name' => __('Unit', 'woocommerce-germanized'), 'menu_name' => _x('Units', 'Admin menu name', 'woocommerce-germanized'), 'search_items' => __('Search Units', 'woocommerce-germanized'), 'all_items' => __('All Units', 'woocommerce-germanized'), 'edit_item' => __('Edit Unit', 'woocommerce-germanized'), 'update_item' => __('Update Unit', 'woocommerce-germanized'), 'add_new_item' => __('Add New Unit', 'woocommerce-germanized'), 'new_item_name' => __('New Unit Name', 'woocommerce-germanized')), 'show_ui' => true, 'query_var' => true, 'public' => false, 'capabilities' => array('manage_terms' => 'manage_product_terms', 'edit_terms' => 'edit_product_terms', 'delete_terms' => 'delete_product_terms', 'assign_terms' => 'assign_product_terms'), 'rewrite' => false))); } } WC_GZD_Post_types::init();
/** * Install WC_Germanized */ public static function install() { global $wpdb; if (!defined('WC_GZD_INSTALLING')) { define('WC_GZD_INSTALLING', true); } // Load Translation for default options $locale = apply_filters('plugin_locale', get_locale()); $mofile = WC_germanized()->plugin_path() . '/i18n/languages/woocommerce-germanized.mo'; if (file_exists(WC_germanized()->plugin_path() . '/i18n/languages/woocommerce-germanized-' . $locale . '.mo')) { $mofile = WC_germanized()->plugin_path() . '/i18n/languages/woocommerce-germanized-' . $locale . '.mo'; } load_textdomain('woocommerce-germanized', $mofile); if (!WC_GZD_Dependencies::instance()->is_woocommerce_activated()) { deactivate_plugins(WC_GERMANIZED_PLUGIN_FILE); wp_die(sprintf(__('Please install <a href="%s" target="_blank">WooCommerce</a> before installing WooCommerce Germanized. Thank you!', 'woocommerce-germanized'), 'http://wordpress.org/plugins/woocommerce/')); } self::create_options(); // Register post types include_once 'class-wc-gzd-post-types.php'; WC_GZD_Post_types::register_taxonomies(); self::create_cron_jobs(); self::create_units(); // Virtual Tax Classes $tax_classes = array_filter(array_map('trim', explode("\n", get_option('woocommerce_tax_classes')))); if (!in_array('Virtual Rate', $tax_classes) || !in_array('Virtual Reduced Rate', $tax_classes)) { update_option('_wc_gzd_needs_pages', 1); if (!in_array('Virtual Rate', $tax_classes)) { array_push($tax_classes, 'Virtual Rate'); } if (!in_array('Virtual Reduced Rate', $tax_classes)) { array_push($tax_classes, 'Virtual Reduced Rate'); } update_option('woocommerce_tax_classes', implode("\n", $tax_classes)); } // Queue upgrades $current_version = get_option('woocommerce_gzd_version', null); $current_db_version = get_option('woocommerce_gzd_db_version', null); // Queue messages and notices if (!is_null($current_version)) { // Show tour for new installs only update_option('woocommerce_gzd_hide_tour', 1); $major_version = substr($current_version, 0, 3); $new_major_version = substr(WC_germanized()->version, 0, 3); // Only on major update if (version_compare($new_major_version, $major_version, ">")) { delete_option('_wc_gzd_hide_theme_notice'); delete_option('_wc_gzd_hide_pro_notice'); } } else { // Fresh install - Check if some german market plugin was installed before if (WC_GZD_Admin_Importer::instance()->is_available()) { update_option('_wc_gzd_import_available', 1); } } if (!is_null($current_db_version) && version_compare($current_db_version, max(array_keys(self::$db_updates)), '<')) { // Update update_option('_wc_gzd_needs_update', 1); } else { self::update_db_version(); } self::update_wc_gzd_version(); // Update activation date update_option('woocommerce_gzd_activation_date', date('Y-m-d')); // Add theme compatibility check delete_option('_wc_gzd_hide_review_notice'); // Check if pages are needed if (wc_get_page_id('revocation') < 1) { update_option('_wc_gzd_needs_pages', 1); } // Flush rules after install flush_rewrite_rules(); // Redirect to welcome screen set_transient('_wc_gzd_activation_redirect', 1, 60 * 60); }