function optionsframework_init()
 {
     //  If user can't edit theme options, exit
     if (!current_user_can('edit_theme_options')) {
         return;
     }
     // Loads the required Options Framework classes.
     tokopress_require_file(plugin_dir_path(__FILE__) . 'includes/class-options-framework.php');
     tokopress_require_file(plugin_dir_path(__FILE__) . 'includes/class-options-framework-admin.php');
     tokopress_require_file(plugin_dir_path(__FILE__) . 'includes/class-options-interface.php');
     tokopress_require_file(plugin_dir_path(__FILE__) . 'includes/class-options-media-uploader.php');
     tokopress_require_file(plugin_dir_path(__FILE__) . 'includes/class-options-sanitization.php');
     // Instantiate the main plugin class.
     $options_framework = new Options_Framework();
     $options_framework->init();
     // Instantiate the options page.
     $options_framework_admin = new Options_Framework_Admin();
     $options_framework_admin->init();
     // Instantiate the media uploader class
     $options_framework_media_uploader = new Options_Framework_Media_Uploader();
     $options_framework_media_uploader->init();
 }
示例#2
0
/**
 * Get Default Options For Option Framework
 */
function optionsframework_defaults()
{
    $options = null;
    $location = apply_filters('options_framework_location', array(get_template_directory() . '/inc/theme/options.php'));
    if ($optionsfile = locate_template($location)) {
        $maybe_options = tokopress_require_file($optionsfile);
        if (is_array($maybe_options)) {
            $options = $maybe_options;
        } else {
            if (function_exists('optionsframework_options')) {
                $options = optionsframework_options();
            }
        }
    }
    $options = apply_filters('of_options', $options);
    $defaults = array();
    foreach ($options as $key => $value) {
        if (isset($value['id']) && isset($value['std'])) {
            $defaults[$value['id']] = $value['std'];
        }
    }
    return $defaults;
}
示例#3
0
    /* load theme options */
    tokopress_require_file(trailingslashit(THEME_DIR) . 'inc/theme/options.php');
    tokopress_require_file(trailingslashit(THEME_DIR) . 'inc/theme/plugins.php');
    tokopress_require_file(trailingslashit(THEME_DIR) . 'inc/theme/metabox.php');
} else {
    /* frontend function */
    tokopress_require_file(trailingslashit(THEME_DIR) . 'inc/functions/hybrid-media-grabber.php');
    tokopress_require_file(trailingslashit(THEME_DIR) . 'inc/functions/tokopress_nav_walker.php');
    tokopress_require_file(trailingslashit(THEME_DIR) . 'inc/theme/frontend.php');
}
/**
 * Contact Form
 */
tokopress_require_file(trailingslashit(THEME_DIR) . 'inc/functions/contact-form.php');
/**
 * WooCommerce Function.
 */
if (class_exists('woocommerce')) {
    if (is_admin()) {
        /* include woocommerce setup */
        tokopress_require_file(trailingslashit(THEME_DIR) . 'inc/woocommerce/setup.php');
        /* include woocommerce options */
        tokopress_require_file(trailingslashit(THEME_DIR) . 'inc/woocommerce/options.php');
    } else {
        /* include frontend function */
        tokopress_require_file(trailingslashit(THEME_DIR) . 'inc/woocommerce/frontend.php');
    }
    if (class_exists('WC_Vendors')) {
        tokopress_require_file(trailingslashit(THEME_DIR) . 'inc/woocommerce/wcvendors-settings.php');
    }
}
 /**
  * Processes bulk installation and activation actions.
  *
  * The bulk installation process looks either for the $_POST
  * information or for the plugin info within the $_GET variable if
  * a user has to use WP_Filesystem to enter their credentials.
  *
  * @since 2.2.0
  */
 public function process_bulk_actions()
 {
     // Bulk installation process.
     if ('tgmpa-bulk-install' === $this->current_action() || 'tgmpa-bulk-update' === $this->current_action()) {
         check_admin_referer('bulk-' . $this->_args['plural']);
         // Prep variables to be populated.
         $plugins_to_install = array();
         $plugin_installs = array();
         $plugin_path = array();
         $plugin_name = array();
         // Look first to see if information has been passed via WP_Filesystem.
         if (isset($_GET['plugins'])) {
             $plugins = explode(',', stripslashes($_GET['plugins']));
         } elseif (isset($_POST['plugin'])) {
             $plugins = (array) $_POST['plugin'];
         } else {
             $plugins = array();
         }
         // Grab information from $_POST if available.
         if (isset($_POST['plugin'])) {
             foreach ($plugins as $plugin_data) {
                 $plugins_to_install[] = explode(',', $plugin_data);
             }
             foreach ($plugins_to_install as $plugin_data) {
                 $plugin_installs[] = $plugin_data[0];
                 $plugin_path[] = $plugin_data[1];
                 $plugin_name[] = $plugin_data[2];
             }
         } else {
             foreach ($plugins as $key => $value) {
                 // Grab plugin slug for each plugin.
                 if (0 == $key % 3 || 0 == $key) {
                     $plugins_to_install[] = $value;
                     $plugin_installs[] = $value;
                 }
             }
         }
         // Look first to see if information has been passed via WP_Filesystem.
         if (isset($_GET['plugin_paths'])) {
             $plugin_paths = explode(',', stripslashes($_GET['plugin_paths']));
         } elseif (isset($_POST['plugin'])) {
             $plugin_paths = (array) $plugin_path;
         } else {
             $plugin_paths = array();
         }
         // Look first to see if information has been passed via WP_Filesystem.
         if (isset($_GET['plugin_names'])) {
             $plugin_names = explode(',', stripslashes($_GET['plugin_names']));
         } elseif (isset($_POST['plugin'])) {
             $plugin_names = (array) $plugin_name;
         } else {
             $plugin_names = array();
         }
         // Loop through plugin slugs and remove already installed plugins from the list.
         $i = 0;
         foreach ($plugin_installs as $key => $plugin) {
             if (preg_match('|.php$|', $plugin && 'tgmpa-bulk-update' !== $this->current_action())) {
                 unset($plugin_installs[$key]);
                 // If the plugin path isn't in the $_GET variable, we can unset the corresponding path.
                 if (!isset($_GET['plugin_paths'])) {
                     unset($plugin_paths[$i]);
                 }
                 // If the plugin name isn't in the $_GET variable, we can unset the corresponding name.
                 if (!isset($_GET['plugin_names'])) {
                     unset($plugin_names[$i]);
                 }
             }
             $i++;
         }
         // No need to proceed further if we have no plugins to install.
         if (empty($plugin_installs)) {
             echo '<div id="message" class="error"><p>' . __('No plugins are available to be installed at this time.', 'tokopress') . '</p></div>';
             return false;
         }
         // Reset array indexes in case we removed already installed plugins.
         $plugin_installs = array_values($plugin_installs);
         $plugin_paths = array_values($plugin_paths);
         $plugin_names = array_values($plugin_names);
         // If we grabbed our plugin info from $_GET, we need to decode it for use.
         $plugin_installs = array_map('urldecode', $plugin_installs);
         $plugin_paths = array_map('urldecode', $plugin_paths);
         $plugin_names = array_map('urldecode', $plugin_names);
         // Pass all necessary information via URL if WP_Filesystem is needed.
         $url = wp_nonce_url(add_query_arg(array('page' => TGM_Plugin_Activation::$instance->menu, 'tgmpa-action' => 'install-selected', 'plugins' => urlencode(implode(',', $plugins)), 'plugin_paths' => urlencode(implode(',', $plugin_paths)), 'plugin_names' => urlencode(implode(',', $plugin_names))), admin_url('themes.php')), 'bulk-plugins');
         $method = '';
         // Leave blank so WP_Filesystem can populate it as necessary.
         $fields = array('action', '_wp_http_referer', '_wpnonce');
         // Extra fields to pass to WP_Filesystem.
         if (false === ($creds = request_filesystem_credentials($url, $method, false, false, $fields))) {
             return true;
         }
         if (!WP_Filesystem($creds)) {
             request_filesystem_credentials($url, $method, true, false, $fields);
             // Setup WP_Filesystem.
             return true;
         }
         tokopress_require_file(ABSPATH . 'wp-admin/includes/plugin-install.php');
         // Need for plugins_api
         tokopress_require_file(ABSPATH . 'wp-admin/includes/class-wp-upgrader.php');
         // Need for upgrade classes
         // Store all information in arrays since we are processing a bulk installation.
         $api = array();
         $sources = array();
         $install_path = array();
         // Loop through each plugin to install and try to grab information from WordPress API, if not create 'tgmpa-empty' scalar.
         $i = 0;
         foreach ($plugin_installs as $plugin) {
             $api[$i] = plugins_api('plugin_information', array('slug' => $plugin, 'fields' => array('sections' => false))) ? plugins_api('plugin_information', array('slug' => $plugin, 'fields' => array('sections' => false))) : (object) ($api[$i] = 'tgmpa-empty');
             $i++;
         }
         if (is_wp_error($api)) {
             wp_die(TGM_Plugin_Activation::$instance->strings['oops'] . var_dump($api));
         }
         // Capture download links from $api or set install link to pre-packaged/private repo.
         $i = 0;
         foreach ($api as $object) {
             $sources[$i] = isset($object->download_link) && 'repo' == $plugin_paths[$i] ? $object->download_link : $plugin_paths[$i];
             $i++;
         }
         // Finally, all the data is prepared to be sent to the installer.
         $url = add_query_arg(array('page' => TGM_Plugin_Activation::$instance->menu), admin_url('themes.php'));
         $nonce = 'bulk-plugins';
         $names = $plugin_names;
         // Create a new instance of TGM_Bulk_Installer.
         $installer = new TGM_Bulk_Installer($skin = new TGM_Bulk_Installer_Skin(compact('url', 'nonce', 'names')));
         // Wrap the install process with the appropriate HTML.
         // echo '<div class="tgmpa wrap">';
         // echo '<h2>' . esc_html( get_admin_page_title() ) . '</h2>';
         // Process the bulk installation submissions.
         $installer->bulk_install($sources);
         // echo '</div>';
         return true;
     }
     // Bulk activation process.
     if ('tgmpa-bulk-activate' === $this->current_action()) {
         check_admin_referer('bulk-' . $this->_args['plural']);
         // Grab plugin data from $_POST.
         $plugins = isset($_POST['plugin']) ? (array) $_POST['plugin'] : array();
         $plugins_to_activate = array();
         // Split plugin value into array with plugin file path, plugin source and plugin name.
         foreach ($plugins as $i => $plugin) {
             $plugins_to_activate[] = explode(',', $plugin);
         }
         foreach ($plugins_to_activate as $i => $array) {
             if (!preg_match('|.php$|', $array[0])) {
                 unset($plugins_to_activate[$i]);
             }
         }
         // Return early if there are no plugins to activate.
         if (empty($plugins_to_activate)) {
             echo '<div id="message" class="error"><p>' . __('No plugins are available to be activated at this time.', 'tokopress') . '</p></div>';
             return false;
         }
         $plugins = array();
         $plugin_names = array();
         foreach ($plugins_to_activate as $plugin_string) {
             $plugins[] = $plugin_string[0];
             $plugin_names[] = $plugin_string[2];
         }
         $count = count($plugin_names);
         // Count so we can use _n function.
         $last_plugin = array_pop($plugin_names);
         // Pop off last name to prep for readability.
         $imploded = empty($plugin_names) ? '<strong>' . $last_plugin . '</strong>' : '<strong>' . (implode(', ', $plugin_names) . '</strong> and <strong>' . $last_plugin . '</strong>.');
         // Now we are good to go - let's start activating plugins.
         $activate = activate_plugins($plugins);
         if (is_wp_error($activate)) {
             echo '<div id="message" class="error"><p>' . $activate->get_error_message() . '</p></div>';
         } else {
             printf('<div id="message" class="updated"><p>%1$s %2$s</p></div>', _n('The following plugin was activated successfully:', 'The following plugins were activated successfully:', $count, 'tokopress'), $imploded);
         }
         // Update recently activated plugins option.
         $recent = (array) get_option('recently_activated');
         foreach ($plugins as $plugin => $time) {
             if (isset($recent[$plugin])) {
                 unset($recent[$plugin]);
             }
         }
         update_option('recently_activated', $recent);
         unset($_POST);
         // Reset the $_POST variable in case user wants to perform one action after another.
         return true;
     }
 }
示例#5
0
<?php

/**
 * This file represents an example of the code that themes would use to register
 * the required plugins.
 */
/**
 * Include the TGM_Plugin_Activation class.
 */
tokopress_require_file(get_template_directory() . '/inc/tgm/class-tgm-plugin-activation.php');
add_action('tgmpa_register', 'tokopress_register_required_plugins');
function tokopress_register_required_plugins()
{
    /**
     * Array of plugin arrays. Required keys are name and slug.
     * If the source is NOT from the .org repo, then source is also required.
     */
    $plugins = array(array('name' => 'WooCommerce', 'slug' => 'woocommerce', 'required' => true), array('name' => 'TokoPress - Marketica VC & Shortcodes', 'slug' => 'tokopress-multipurpose-shortcode', 'source' => get_template_directory() . '/inc/plugins/tokopress-multipurpose-shortcode-v2.5.1.zip', 'version' => '2.5.1', 'required' => true), array('name' => 'Visual Composer', 'slug' => 'js_composer', 'source' => get_template_directory() . '/inc/plugins/js_composer-v4.6.2.zip', 'version' => '4.6.2', 'required' => true), array('name' => 'MailChimp for WordPress', 'slug' => 'mailchimp-for-wp', 'required' => true), array('name' => 'Revolution Slider', 'slug' => 'revslider', 'source' => get_template_directory() . '/inc/plugins/revslider-v4.6.93.zip', 'version' => '4.6.93', 'required' => false), array('name' => 'WordPress Importer', 'slug' => 'wordpress-importer', 'source' => get_template_directory() . '/inc/plugins/wordpress-importer-v2.0.zip', 'version' => '2.0', 'required' => false), array('name' => 'Widget Importer Exporter', 'slug' => 'widget-importer-exporter', 'required' => false), array('name' => 'Regenerate Thumbnails', 'slug' => 'regenerate-thumbnails', 'required' => false));
    if (class_exists('WooCommerce_Product_Vendors')) {
        $show_wcvendors = false;
    } elseif (class_exists('FPMultiVendor')) {
        $show_wcvendors = false;
    } elseif (class_exists('WeDevs_Dokan')) {
        $show_wcvendors = false;
    } else {
        $show_wcvendors = true;
    }
    if ($show_wcvendors) {
        $plugins[] = array('name' => 'WC Vendors', 'slug' => 'wc-vendors', 'required' => false);
    }
    if (class_exists('woocommerce')) {
 /**
  * Wrapper for optionsframework_options()
  *
  * Allows for manipulating or setting options via 'of_options' filter
  * For example:
  *
  * <code>
  * add_filter( 'of_options', function( $options ) {
  *     $options[] = array(
  *         'name' => 'Input Text Mini',
  *         'desc' => 'A mini text input field.',
  *         'id' => 'example_text_mini',
  *         'std' => 'Default',
  *         'class' => 'mini',
  *         'type' => 'text'
  *     );
  *
  *     return $options;
  * });
  * </code>
  *
  * Also allows for setting options via a return statement in the
  * options.php file.  For example (in options.php):
  *
  * <code>
  * return array(...);
  * </code>
  *
  * @return array (by reference)
  */
 static function &_optionsframework_options()
 {
     static $options = null;
     if (!$options) {
         // Load options from options.php file (if it exists)
         $location = apply_filters('options_framework_location', array('options.php'));
         if ($optionsfile = locate_template($location)) {
             $maybe_options = tokopress_require_file($optionsfile);
             if (is_array($maybe_options)) {
                 $options = $maybe_options;
             } else {
                 if (function_exists('optionsframework_options')) {
                     $options = optionsframework_options();
                 }
             }
         }
         // Allow setting/manipulating options via filters
         $options = apply_filters('of_options', $options);
     }
     return $options;
 }