示例#1
0
function fflcommerce_init()
{
    // Override default translations with custom .mo's found in wp-content/languages/fflcommerce first.
    load_textdomain('fflcommerce', WP_LANG_DIR . '/fflcommerce/fflcommerce-' . get_locale() . '.mo');
    load_plugin_textdomain('fflcommerce', false, dirname(plugin_basename(__FILE__)) . '/languages/');
    add_filter('plugin_action_links_' . plugin_basename(__FILE__), 'fflcommerce_admin_bar_links');
    // instantiate options -after- loading text domains
    $options = FFLCommerce_Base::get_options();
    fflcommerce_post_type();
    // register taxonomies
    new fflcommerce_cron();
    // -after- text domains and Options instantiation allows settings translations
    fflcommerce_set_image_sizes();
    // called -after- our Options are loaded
    // add Singletons here so that the taxonomies are loaded before calling them.
    fflcommerce_session::instance();
    // Start sessions if they aren't already
    fflcommerce::instance();
    // Utility functions, uses sessions
    fflcommerce_customer::instance();
    // Customer class, sorts session data such as location
    // FFL Commerce will instantiate gateways and shipping methods on this same 'init' action hook
    // with a very low priority to ensure text domains are loaded first prior to installing any external options
    fflcommerce_shipping::instance();
    // Shipping class. loads shipping methods
    fflcommerce_payment_gateways::instance();
    // Payment gateways class. loads payment methods
    fflcommerce_cart::instance();
    // Cart class, uses sessions
    add_filter('mce_external_plugins', 'fflcommerce_register_shortcode_editor');
    add_filter('mce_buttons', 'fflcommerce_register_shortcode_buttons');
    if (!is_admin()) {
        /* Catalog Filters */
        add_filter('loop-shop-query', create_function('', 'return array("orderby" => "' . $options->get('fflcommerce_catalog_sort_orderby') . '","order" => "' . $options->get('fflcommerce_catalog_sort_direction') . '");'));
        add_filter('loop_shop_columns', create_function('', 'return ' . $options->get('fflcommerce_catalog_columns') . ';'));
        add_filter('loop_shop_per_page', create_function('', 'return ' . $options->get('fflcommerce_catalog_per_page') . ';'));
        fflcommerce_catalog_query::instance();
        // front end queries class
        fflcommerce_request_api::instance();
        // front end request api for URL's
    }
    fflcommerce_roles_init();
    do_action('fflcommerce_initialize_plugins');
}