init() public method

Initialize shipping.
public init ( )
示例#1
0
 /**
  * Init WooCommerce when WordPress Initialises.
  *
  * @access public
  * @return void
  */
 function init()
 {
     // Set up localisation
     $this->load_plugin_textdomain();
     // Variables
     $this->template_url = apply_filters('woocommerce_template_url', 'woocommerce/');
     // Load class instances
     $this->payment_gateways = new WC_Payment_gateways();
     // Payment gateways. Loads and stores payment methods
     $this->shipping = new WC_Shipping();
     // Shipping class. loads and stores shipping methods
     $this->countries = new WC_Countries();
     // Countries class
     $this->integrations = new WC_Integrations();
     // Integrations class
     // Init shipping, payment gateways, and integrations
     $this->shipping->init();
     $this->payment_gateways->init();
     $this->integrations->init();
     // Classes/actions loaded for the frontend and for ajax requests
     if (!is_admin() || defined('DOING_AJAX')) {
         // Class instances
         $this->cart = new WC_Cart();
         // Cart class, stores the cart contents
         $this->customer = new WC_Customer();
         // Customer class, sorts out session data such as location
         $this->query = new WC_Query();
         // Query class, handles front-end queries and loops
         // Load messages
         $this->load_messages();
         // Hooks
         add_filter('template_include', array(&$this, 'template_loader'));
         add_filter('comments_template', array(&$this, 'comments_template_loader'));
         add_filter('wp_redirect', array(&$this, 'redirect'), 1, 2);
         add_action('template_redirect', array(&$this, 'buffer_checkout'));
         add_action('wp_enqueue_scripts', array(&$this, 'frontend_scripts'));
         add_action('wp_print_scripts', array(&$this, 'check_jquery'), 25);
         add_action('wp_head', array(&$this, 'generator'));
         add_action('wp_head', array(&$this, 'wp_head'));
         add_filter('body_class', array(&$this, 'output_body_class'));
         add_action('wp_footer', array(&$this, 'output_inline_js'), 25);
     }
     // Actions
     add_action('the_post', array(&$this, 'setup_product_data'));
     add_action('admin_footer', array(&$this, 'output_inline_js'), 25);
     // Email Actions
     $email_actions = array('woocommerce_low_stock', 'woocommerce_no_stock', 'woocommerce_product_on_backorder', 'woocommerce_order_status_pending_to_processing', 'woocommerce_order_status_pending_to_completed', 'woocommerce_order_status_pending_to_on-hold', 'woocommerce_order_status_failed_to_processing', 'woocommerce_order_status_failed_to_completed', 'woocommerce_order_status_pending_to_processing', 'woocommerce_order_status_pending_to_on-hold', 'woocommerce_order_status_completed', 'woocommerce_new_customer_note');
     foreach ($email_actions as $action) {
         add_action($action, array(&$this, 'send_transactional_email'));
     }
     // Actions for SSL
     if (!is_admin() || defined('DOING_AJAX')) {
         add_action('template_redirect', array(&$this, 'ssl_redirect'));
         $filters = array('post_thumbnail_html', 'widget_text', 'wp_get_attachment_url', 'wp_get_attachment_image_attributes', 'wp_get_attachment_url', 'option_siteurl', 'option_homeurl', 'option_home', 'option_url', 'option_wpurl', 'option_stylesheet_url', 'option_template_url', 'script_loader_src', 'style_loader_src', 'template_directory_uri', 'stylesheet_directory_uri', 'site_url');
         foreach ($filters as $filter) {
             add_filter($filter, array(&$this, 'force_ssl'));
         }
     }
     // Register globals for WC environment
     $this->register_globals();
     // Init user roles
     $this->init_user_roles();
     // Init WooCommerce taxonomies
     $this->init_taxonomy();
     // Init Images sizes
     $this->init_image_sizes();
     // Init styles
     if (!is_admin()) {
         $this->init_styles();
     }
     // Trigger API requests
     $this->api_requests();
     // Init action
     do_action('woocommerce_init');
 }