| Server IP : 46.105.57.169 / Your IP : 216.73.216.67 Web Server : Apache System : Linux webm002.cluster120.gra.hosting.ovh.net 6.18.42-ovh-vps-grsec-zfs+ #1 SMP PREEMPT_DYNAMIC Wed Aug 5 15:59:48 CEST 2026 x86_64 User : verseaumee ( 152031) PHP Version : 8.5.7 Disable Function : _dyuweyrj4,_dyuweyrj4r,dl MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : OFF | Pkexec : OFF Directory : /home/verseaumee/blueversion/wp-content/plugins/wp-freeio/ |
Upload File : |
<?php
/**
* Plugin Name: WP Freeio
* Plugin URI: http://apusthemes.com/wp-freeio/
* Description: Powerful plugin to create a freelancer on your website.
* Version: 1.0.15
* Author: Habq
* Author URI: http://apusthemes.com/
* Requires at least: 3.8
* Tested up to: 6.0
*
* Text Domain: wp-freeio
* Domain Path: /languages/
*
* @package wp-freeio
* @category Plugins
* @author Habq
*/
if ( ! defined( 'ABSPATH' ) ) {
exit;
}
if ( !class_exists("WP_Freeio") ) {
final class WP_Freeio {
private static $instance;
public static function getInstance() {
if ( ! isset( self::$instance ) && ! ( self::$instance instanceof WP_Freeio ) ) {
self::$instance = new WP_Freeio;
self::$instance->setup_constants();
self::$instance->load_textdomain();
self::$instance->plugin_update();
add_action( 'activated_plugin', array( self::$instance, 'plugin_order' ) );
add_action( 'tgmpa_register', array( self::$instance, 'register_plugins' ) );
add_action( 'widgets_init', array( self::$instance, 'register_widgets' ) );
self::$instance->libraries();
self::$instance->includes();
}
return self::$instance;
}
/**
*
*/
public function setup_constants(){
define( 'WP_FREEIO_PLUGIN_VERSION', '1.0.15' );
define( 'WP_FREEIO_PLUGIN_DIR', plugin_dir_path( __FILE__ ) );
define( 'WP_FREEIO_PLUGIN_URL', plugin_dir_url( __FILE__ ) );
define('WP_FREEIO_JOB_LISTING_PREFIX', '_job_');
define('WP_FREEIO_PROJECT_PREFIX', '_project_');
define('WP_FREEIO_SERVICE_PREFIX', '_service_');
define('WP_FREEIO_EMPLOYER_PREFIX', '_employer_');
define('WP_FREEIO_FREELANCER_PREFIX', '_freelancer_');
define('WP_FREEIO_APPLICANT_PREFIX', '_applicant_');
define('WP_FREEIO_EARNING_PREFIX', '_earning_');
define('WP_FREEIO_PROJECT_PROPOSAL_PREFIX', '_project_proposal_');
define('WP_FREEIO_WITHDRAW_PREFIX', '_withdraw_');
define('WP_FREEIO_REPORT_PREFIX', '_report_');
define('WP_FREEIO_VERIFICATION_PREFIX', '_verification_');
define('WP_FREEIO_DISPUTE_PREFIX', '_dispute_');
define('WP_FREEIO_JOB_ALERT_PREFIX', '_job_alert_');
define('WP_FREEIO_SERVICE_ORDER_PREFIX', '_service_order_');
define('WP_FREEIO_SERVICE_ADDON_PREFIX', '_service_addon_');
define('WP_FREEIO_FREELANCER_ALERT_PREFIX', '_freelancer_alert_');
define('WP_FREEIO_MEETING_PREFIX', '_meeting_');
}
public function includes() {
global $wp_freeio_options;
// Admin Settings
require_once WP_FREEIO_PLUGIN_DIR . 'includes/admin/class-settings.php';
require_once WP_FREEIO_PLUGIN_DIR . 'includes/admin/class-permalink-settings.php';
$wp_freeio_options = wp_freeio_get_settings();
// post type
require_once WP_FREEIO_PLUGIN_DIR . 'includes/post-types/class-post-type-service.php';
require_once WP_FREEIO_PLUGIN_DIR . 'includes/post-types/class-post-type-job_listing.php';
require_once WP_FREEIO_PLUGIN_DIR . 'includes/post-types/class-post-type-project.php';
require_once WP_FREEIO_PLUGIN_DIR . 'includes/post-types/class-post-type-employer.php';
require_once WP_FREEIO_PLUGIN_DIR . 'includes/post-types/class-post-type-freelancer.php';
require_once WP_FREEIO_PLUGIN_DIR . 'includes/post-types/class-post-type-job-applicant.php';
require_once WP_FREEIO_PLUGIN_DIR . 'includes/post-types/class-post-type-job-alert.php';
require_once WP_FREEIO_PLUGIN_DIR . 'includes/post-types/class-post-type-freelancer-alert.php';
require_once WP_FREEIO_PLUGIN_DIR . 'includes/post-types/class-post-type-service-addon.php';
require_once WP_FREEIO_PLUGIN_DIR . 'includes/post-types/class-post-type-service-order.php';
require_once WP_FREEIO_PLUGIN_DIR . 'includes/post-types/class-post-type-meeting.php';
require_once WP_FREEIO_PLUGIN_DIR . 'includes/post-types/class-post-type-earnings.php';
require_once WP_FREEIO_PLUGIN_DIR . 'includes/post-types/class-post-type-project-proposal.php';
require_once WP_FREEIO_PLUGIN_DIR . 'includes/post-types/class-post-type-withdraw.php';
require_once WP_FREEIO_PLUGIN_DIR . 'includes/post-types/class-post-type-report.php';
require_once WP_FREEIO_PLUGIN_DIR . 'includes/post-types/class-post-type-dispute.php';
require_once WP_FREEIO_PLUGIN_DIR . 'includes/post-types/class-post-type-verification.php';
// custom fields
require_once WP_FREEIO_PLUGIN_DIR . 'includes/custom-fields/class-fields-manager.php';
require_once WP_FREEIO_PLUGIN_DIR . 'includes/custom-fields/class-custom-fields-html.php';
require_once WP_FREEIO_PLUGIN_DIR . 'includes/custom-fields/class-custom-fields.php';
require_once WP_FREEIO_PLUGIN_DIR . 'includes/custom-fields/class-custom-fields-display.php';
require_once WP_FREEIO_PLUGIN_DIR . 'includes/custom-fields/class-custom-fields-register.php';
require_once WP_FREEIO_PLUGIN_DIR . 'includes/class-job-meta.php';
require_once WP_FREEIO_PLUGIN_DIR . 'includes/class-employer-meta.php';
require_once WP_FREEIO_PLUGIN_DIR . 'includes/class-freelancer-meta.php';
require_once WP_FREEIO_PLUGIN_DIR . 'includes/class-service-meta.php';
require_once WP_FREEIO_PLUGIN_DIR . 'includes/class-project-meta.php';
require_once WP_FREEIO_PLUGIN_DIR . 'includes/class-abstract-register-form.php';
require_once WP_FREEIO_PLUGIN_DIR . 'includes/class-employer-register-form.php';
require_once WP_FREEIO_PLUGIN_DIR . 'includes/class-freelancer-register-form.php';
require_once WP_FREEIO_PLUGIN_DIR . 'includes/class-freelancer-register-apply-form.php';
// taxonomies
require_once WP_FREEIO_PLUGIN_DIR . 'includes/taxonomies/class-taxonomy-job-type.php';
require_once WP_FREEIO_PLUGIN_DIR . 'includes/taxonomies/class-taxonomy-job-category.php';
require_once WP_FREEIO_PLUGIN_DIR . 'includes/taxonomies/class-taxonomy-job-tag.php';
require_once WP_FREEIO_PLUGIN_DIR . 'includes/taxonomies/class-taxonomy-location.php';
// employer taxonomies
require_once WP_FREEIO_PLUGIN_DIR . 'includes/taxonomies/class-taxonomy-employer-category.php';
// require_once WP_FREEIO_PLUGIN_DIR . 'includes/taxonomies/class-taxonomy-employer-location.php';
// freelancer taxonomies
require_once WP_FREEIO_PLUGIN_DIR . 'includes/taxonomies/class-taxonomy-freelancer-category.php';
// require_once WP_FREEIO_PLUGIN_DIR . 'includes/taxonomies/class-taxonomy-freelancer-location.php';
require_once WP_FREEIO_PLUGIN_DIR . 'includes/taxonomies/class-taxonomy-freelancer-tag.php';
// service taxonomies
require_once WP_FREEIO_PLUGIN_DIR . 'includes/taxonomies/class-taxonomy-service-category.php';
// require_once WP_FREEIO_PLUGIN_DIR . 'includes/taxonomies/class-taxonomy-service-location.php';
require_once WP_FREEIO_PLUGIN_DIR . 'includes/taxonomies/class-taxonomy-service-tag.php';
// project taxonomies
require_once WP_FREEIO_PLUGIN_DIR . 'includes/taxonomies/class-taxonomy-project-category.php';
// require_once WP_FREEIO_PLUGIN_DIR . 'includes/taxonomies/class-taxonomy-project-location.php';
require_once WP_FREEIO_PLUGIN_DIR . 'includes/taxonomies/class-taxonomy-project-skill.php';
require_once WP_FREEIO_PLUGIN_DIR . 'includes/taxonomies/class-taxonomy-project-duration.php';
require_once WP_FREEIO_PLUGIN_DIR . 'includes/taxonomies/class-taxonomy-project-experience.php';
require_once WP_FREEIO_PLUGIN_DIR . 'includes/taxonomies/class-taxonomy-project-freelancer-type.php';
require_once WP_FREEIO_PLUGIN_DIR . 'includes/taxonomies/class-taxonomy-project-language.php';
require_once WP_FREEIO_PLUGIN_DIR . 'includes/taxonomies/class-taxonomy-project-level.php';
//
require_once WP_FREEIO_PLUGIN_DIR . 'includes/class-scripts.php';
require_once WP_FREEIO_PLUGIN_DIR . 'includes/class-template-loader.php';
require_once WP_FREEIO_PLUGIN_DIR . 'includes/class-job_listing.php';
require_once WP_FREEIO_PLUGIN_DIR . 'includes/class-project.php';
require_once WP_FREEIO_PLUGIN_DIR . 'includes/class-service.php';
require_once WP_FREEIO_PLUGIN_DIR . 'includes/class-employer.php';
require_once WP_FREEIO_PLUGIN_DIR . 'includes/class-freelancer.php';
require_once WP_FREEIO_PLUGIN_DIR . 'includes/class-applicant.php';
require_once WP_FREEIO_PLUGIN_DIR . 'includes/class-job-rss-feed.php';
require_once WP_FREEIO_PLUGIN_DIR . 'includes/class-price.php';
require_once WP_FREEIO_PLUGIN_DIR . 'includes/class-query.php';
require_once WP_FREEIO_PLUGIN_DIR . 'includes/class-shortcodes.php';
// submit job
require_once WP_FREEIO_PLUGIN_DIR . 'includes/class-job-abstract-form.php';
require_once WP_FREEIO_PLUGIN_DIR . 'includes/class-job-submit-form.php';
require_once WP_FREEIO_PLUGIN_DIR . 'includes/class-job-edit-form.php';
// submit service
require_once WP_FREEIO_PLUGIN_DIR . 'includes/class-service-abstract-form.php';
require_once WP_FREEIO_PLUGIN_DIR . 'includes/class-service-submit-form.php';
require_once WP_FREEIO_PLUGIN_DIR . 'includes/class-service-edit-form.php';
// submit project
require_once WP_FREEIO_PLUGIN_DIR . 'includes/class-project-abstract-form.php';
require_once WP_FREEIO_PLUGIN_DIR . 'includes/class-project-submit-form.php';
require_once WP_FREEIO_PLUGIN_DIR . 'includes/class-project-edit-form.php';
//
require_once WP_FREEIO_PLUGIN_DIR . 'includes/class-user.php';
require_once WP_FREEIO_PLUGIN_DIR . 'includes/class-image.php';
require_once WP_FREEIO_PLUGIN_DIR . 'includes/class-recaptcha.php';
require_once WP_FREEIO_PLUGIN_DIR . 'includes/class-email.php';
require_once WP_FREEIO_PLUGIN_DIR . 'includes/class-abstract-filter.php';
require_once WP_FREEIO_PLUGIN_DIR . 'includes/class-job-filter.php';
require_once WP_FREEIO_PLUGIN_DIR . 'includes/class-employer-filter.php';
require_once WP_FREEIO_PLUGIN_DIR . 'includes/class-freelancer-filter.php';
require_once WP_FREEIO_PLUGIN_DIR . 'includes/class-service-filter.php';
require_once WP_FREEIO_PLUGIN_DIR . 'includes/class-project-filter.php';
require_once WP_FREEIO_PLUGIN_DIR . 'includes/class-review.php';
require_once WP_FREEIO_PLUGIN_DIR . 'includes/class-job-alert.php';
require_once WP_FREEIO_PLUGIN_DIR . 'includes/class-freelancer-alert.php';
require_once WP_FREEIO_PLUGIN_DIR . 'includes/class-service-alert.php';
require_once WP_FREEIO_PLUGIN_DIR . 'includes/class-geocode.php';
require_once WP_FREEIO_PLUGIN_DIR . 'includes/class-favorite.php';
require_once WP_FREEIO_PLUGIN_DIR . 'includes/class-woocommerce.php';
// meeting
require_once WP_FREEIO_PLUGIN_DIR . 'includes/meetings/class-meeting.php';
require_once WP_FREEIO_PLUGIN_DIR . 'includes/meetings/class-meeting-zoom.php';
require_once WP_FREEIO_PLUGIN_DIR . 'includes/class-user-notification.php';
require_once WP_FREEIO_PLUGIN_DIR . 'includes/class-ajax.php';
// social login
require_once WP_FREEIO_PLUGIN_DIR . 'includes/socials/class-social-facebook.php';
require_once WP_FREEIO_PLUGIN_DIR . 'includes/socials/class-social-google.php';
require_once WP_FREEIO_PLUGIN_DIR . 'includes/socials/class-social-linkedin.php';
require_once WP_FREEIO_PLUGIN_DIR . 'includes/socials/class-social-twitter.php';
// import indeed jobs
require_once WP_FREEIO_PLUGIN_DIR . 'includes/import-jobs-integration/class-import-jobs-integration.php';
// mpdf
require_once WP_FREEIO_PLUGIN_DIR . 'includes/class-mpdf.php';
require_once WP_FREEIO_PLUGIN_DIR . 'includes/class-mixes.php';
require_once WP_FREEIO_PLUGIN_DIR . 'includes/class-cache-helper.php';
// 3rd-party
require_once WP_FREEIO_PLUGIN_DIR . 'includes/3rd-party/class-wpml.php';
require_once WP_FREEIO_PLUGIN_DIR . 'includes/3rd-party/class-polylang.php';
require_once WP_FREEIO_PLUGIN_DIR . 'includes/3rd-party/class-all-in-one-seo-pack.php';
require_once WP_FREEIO_PLUGIN_DIR . 'includes/3rd-party/class-jetpack.php';
require_once WP_FREEIO_PLUGIN_DIR . 'includes/3rd-party/class-yoast.php';
require_once WP_FREEIO_PLUGIN_DIR . 'includes/3rd-party/class-all-import.php';
// google structured data
require_once WP_FREEIO_PLUGIN_DIR . 'includes/class-structured-data.php';
//
require_once WP_FREEIO_PLUGIN_DIR . 'includes/class-rest-api.php';
add_action('init', array( __CLASS__, 'register_post_statuses' ) );
add_action('admin_footer-post.php', array( __CLASS__, 'append_statuses'));
}
public function plugin_update() {
require_once WP_FREEIO_PLUGIN_DIR . 'libraries/plugin-update-checker/plugin-update-checker.php';
Puc_v4_Factory::buildUpdateChecker(
'https://www.apusthemes.com/themeplugins/wp-freeio.json',
__FILE__,
'wp-freeio'
);
}
public static function post_statuses(){
$statuses = array(
'hired' => esc_html__('Hired','wp-freeio'),
'completed' => esc_html__('Completed','wp-freeio'),
'cancelled' => esc_html__('Cancelled','wp-freeio'),
);
return apply_filters('wp-freeio-get-proposal-statuses', $statuses);
}
public static function append_statuses(){
global $post;
$selected = '';
$statuses = self::post_statuses();
if( $post->post_type == 'project' || $post->post_type == 'services-orders' ) {
ob_start();
?>
<script>
jQuery(document).ready(function($){
<?php
foreach ( $statuses as $key => $value ) {
if( $post->post_status == $key ){
$selected = 'selected';
} else {
$selected = '';
}
?>
jQuery("#post-status-select select#post_status").append("<option value='<?php echo esc_attr( $key ); ?>' <?php if( $post->post_status == $key ){ ?> selected='selected' <?php } ?>><?php echo esc_attr( $value ); ?></option>");
<?php if( $post->post_status == $key ){ ?>
jQuery("#post-status-display").append("<?php echo esc_attr( $value ); ?>");
<?php } ?>
<?php if( $post->post_status == 'hired' || $post->post_status == 'completed' ){ ?>
jQuery("#publish").val("Update");
jQuery("#publish").attr("name","save");
jQuery("#original_publish").val("Update");
<?php } ?>
<?php } ?>
});
</script>
<?php
echo ob_get_clean();
}
}
public static function register_post_statuses() {
register_post_status(
'hired',
array(
'label' => _x( 'Hired', 'post status', 'wp-freeio' ),
'public' => true,
'exclude_from_search' => false,
'show_in_admin_all_list' => true,
'show_in_admin_status_list' => true,
'label_count' => _n_noop( 'Hired <span class="count">(%s)</span>', 'Hired <span class="count">(%s)</span>', 'wp-freeio' ),
)
);
register_post_status(
'completed',
array(
'label' => _x( 'Completed', 'post status', 'wp-freeio' ),
'public' => true,
'exclude_from_search' => false,
'show_in_admin_all_list' => true,
'show_in_admin_status_list' => true,
'label_count' => _n_noop( 'Completed <span class="count">(%s)</span>', 'Completed <span class="count">(%s)</span>', 'wp-freeio' ),
)
);
register_post_status(
'cancelled',
array(
'label' => _x( 'Cancelled', 'post status', 'wp-freeio' ),
'public' => false,
'exclude_from_search' => false,
'show_in_admin_all_list' => true,
'show_in_admin_status_list' => true,
'label_count' => _n_noop( 'Cancelled <span class="count">(%s)</span>', 'Cancelled <span class="count">(%s)</span>', 'wp-freeio' ),
)
);
register_post_status(
'expired',
array(
'label' => _x( 'Expired', 'post status', 'wp-freeio' ),
'public' => true,
'protected' => true,
'exclude_from_search' => true,
'show_in_admin_all_list' => true,
'show_in_admin_status_list' => true,
'label_count' => _n_noop( 'Expired <span class="count">(%s)</span>', 'Expired <span class="count">(%s)</span>', 'wp-freeio' ),
)
);
register_post_status(
'pending_approve',
array(
'label' => _x( 'Pending Approve', 'post status', 'wp-freeio' ),
'public' => false,
'protected' => true,
'exclude_from_search' => true,
'show_in_admin_all_list' => true,
'show_in_admin_status_list' => true,
'label_count' => _n_noop( 'Pending Approve <span class="count">(%s)</span>', 'Pending Approve <span class="count">(%s)</span>', 'wp-freeio' ),
)
);
register_post_status(
'preview',
array(
'label' => _x( 'Preview', 'post status', 'wp-freeio' ),
'public' => false,
'exclude_from_search' => true,
'show_in_admin_all_list' => false,
'show_in_admin_status_list' => true,
'label_count' => _n_noop( 'Preview <span class="count">(%s)</span>', 'Preview <span class="count">(%s)</span>', 'wp-freeio' ),
)
);
register_post_status(
'pending_payment',
array(
'label' => _x( 'Pending Payment', 'post status', 'wp-freeio' ),
'public' => false,
'exclude_from_search' => true,
'show_in_admin_all_list' => false,
'show_in_admin_status_list' => true,
'label_count' => _n_noop( 'Pending Payment <span class="count">(%s)</span>', 'Pending Payment <span class="count">(%s)</span>', 'wp-freeio' ),
)
);
register_post_status(
'denied',
array(
'label' => _x( 'Denied', 'post status', 'wp-freeio' ),
'public' => false,
'exclude_from_search' => true,
'show_in_admin_all_list' => false,
'show_in_admin_status_list' => true,
'label_count' => _n_noop( 'Denied <span class="count">(%s)</span>', 'Denied <span class="count">(%s)</span>', 'wp-freeio' ),
)
);
}
public static function register_widgets() {
// widgets
require_once WP_FREEIO_PLUGIN_DIR . 'includes/widgets/class-widget-job-filter.php';
require_once WP_FREEIO_PLUGIN_DIR . 'includes/widgets/class-widget-employer-filter.php';
require_once WP_FREEIO_PLUGIN_DIR . 'includes/widgets/class-widget-freelancer-filter.php';
require_once WP_FREEIO_PLUGIN_DIR . 'includes/widgets/class-widget-job-alert-form.php';
require_once WP_FREEIO_PLUGIN_DIR . 'includes/widgets/class-widget-freelancer-alert-form.php';
}
/**
* Loads third party libraries
*
* @access public
* @return void
*/
public static function libraries() {
require_once WP_FREEIO_PLUGIN_DIR . 'libraries/cmb2/cmb2-conditionals/cmb2-conditionals.php';
require_once WP_FREEIO_PLUGIN_DIR . 'libraries/cmb2/cmb2_field_map/cmb-field-map.php';
require_once WP_FREEIO_PLUGIN_DIR . 'libraries/cmb2/cmb2_field_tags/cmb2-field-type-tags.php';
require_once WP_FREEIO_PLUGIN_DIR . 'libraries/cmb2/cmb2_field_file/cmb2-field-type-file.php';
require_once WP_FREEIO_PLUGIN_DIR . 'libraries/cmb2/cmb2_field_attached_user/cmb2-field-type-attached_user.php';
require_once WP_FREEIO_PLUGIN_DIR . 'libraries/cmb2/cmb2_field_profile_url/cmb2-field-type-profile_url.php';
require_once WP_FREEIO_PLUGIN_DIR . 'libraries/cmb2/cmb2_field_image_select/cmb2-field-type-image-select.php';
require_once WP_FREEIO_PLUGIN_DIR . 'libraries/cmb2/cmb_field_select2/cmb-field-select2.php';
require_once WP_FREEIO_PLUGIN_DIR . 'libraries/cmb2/cmb_field_taxonomy_select2/cmb-field-taxonomy-select2.php';
require_once WP_FREEIO_PLUGIN_DIR . 'libraries/cmb2/cmb_field_taxonomy_select2_search/cmb-field-taxonomy-select2-search.php';
require_once WP_FREEIO_PLUGIN_DIR . 'libraries/cmb2/cmb2_field_ajax_search/cmb2-field-ajax-search.php';
require_once WP_FREEIO_PLUGIN_DIR . 'libraries/cmb2/cmb_field_taxonomy_location/cmb-field-taxonomy-location.php';
require_once WP_FREEIO_PLUGIN_DIR . 'libraries/cmb2/cmb_field_taxonomy_location_search/cmb-field-taxonomy-location-search.php';
require_once WP_FREEIO_PLUGIN_DIR . 'libraries/cmb2/cmb2-hide-show-password-field/cmb2-hide-show-password.php';
require_once WP_FREEIO_PLUGIN_DIR . 'libraries/cmb2/cmb2_field_rate_exchange/cmb2-field-type-rate_exchange.php';
require_once WP_FREEIO_PLUGIN_DIR . 'libraries/cmb2/cmb2_field_datepicker/cmb2-field-type-datepicker.php';
require_once WP_FREEIO_PLUGIN_DIR . 'libraries/cmb2/cmb2_field_datepicker2/cmb2-field-type-datepicker2.php';
require_once WP_FREEIO_PLUGIN_DIR . 'libraries/cmb2/cmb2_field_addons/cmb2-field-type-addons.php';
require_once WP_FREEIO_PLUGIN_DIR . 'libraries/cmb2/cmb2_field_payout_details/cmb2-field-type-payout-details.php';
require_once WP_FREEIO_PLUGIN_DIR . 'libraries/cmb2/cmb2-tabs/plugin.php';
require_once WP_FREEIO_PLUGIN_DIR . 'libraries/class-tgm-plugin-activation.php';
}
/**
* Loads this plugin first
*
* @access public
* @return void
*/
public static function plugin_order() {
$wp_path_to_this_file = preg_replace( '/(.*)plugins\/(.*)$/', WP_PLUGIN_DIR.'/$2', __FILE__ );
$this_plugin = plugin_basename( trim( $wp_path_to_this_file ) );
$active_plugins = get_option( 'active_plugins' );
$this_plugin_key = array_search( $this_plugin, $active_plugins );
if ( $this_plugin_key ) {
array_splice( $active_plugins, $this_plugin_key, 1 );
array_unshift( $active_plugins, $this_plugin );
update_option( 'active_plugins', $active_plugins );
}
}
/**
* Install plugins
*
* @access public
* @return void
*/
public static function register_plugins() {
$plugins = array(
array(
'name' => 'CMB2',
'slug' => 'cmb2',
'required' => true,
)
);
tgmpa( $plugins );
}
public static function maybe_schedule_cron_jobs() {
if ( ! wp_next_scheduled( 'wp_freeio_check_for_expired_jobs' ) ) {
wp_schedule_event( time(), 'hourly', 'wp_freeio_check_for_expired_jobs' );
}
if ( ! wp_next_scheduled( 'wp_freeio_delete_old_previews' ) ) {
wp_schedule_event( time(), 'daily', 'wp_freeio_delete_old_previews' );
}
if ( ! wp_next_scheduled( 'wp_freeio_email_daily_notices' ) ) {
wp_schedule_event( time(), 'daily', 'wp_freeio_email_daily_notices' );
}
}
/**
* Unschedule cron jobs. This is run on plugin deactivation.
*/
public static function unschedule_cron_jobs() {
wp_clear_scheduled_hook( 'wp_freeio_check_for_expired_jobs' );
wp_clear_scheduled_hook( 'wp_freeio_delete_old_previews' );
wp_clear_scheduled_hook( 'wp_freeio_email_daily_notices' );
}
/**
*
*/
public function load_textdomain() {
// Set filter for WP_Freeio's languages directory
$lang_dir = WP_FREEIO_PLUGIN_DIR . 'languages/';
$lang_dir = apply_filters( 'wp_freeio_languages_directory', $lang_dir );
// Traditional WordPress plugin locale filter
$locale = apply_filters( 'plugin_locale', get_locale(), 'wp-freeio' );
$mofile = sprintf( '%1$s-%2$s.mo', 'wp-freeio', $locale );
// Setup paths to current locale file
$mofile_local = $lang_dir . $mofile;
$mofile_global = WP_LANG_DIR . '/wp-freeio/' . $mofile;
if ( file_exists( $mofile_global ) ) {
// Look in global /wp-content/languages/wp-freeio folder
load_textdomain( 'wp-freeio', $mofile_global );
} elseif ( file_exists( $mofile_local ) ) {
// Look in local /wp-content/plugins/wp-freeio/languages/ folder
load_textdomain( 'wp-freeio', $mofile_local );
} else {
// Load the default language files
load_plugin_textdomain( 'wp-freeio', false, $lang_dir );
}
}
}
}
register_activation_hook( __FILE__, array( 'WP_Freeio', 'maybe_schedule_cron_jobs' ) );
register_deactivation_hook( __FILE__, array( 'WP_Freeio', 'unschedule_cron_jobs' ) );
function WP_Freeio() {
return WP_Freeio::getInstance();
}
add_action( 'plugins_loaded', 'WP_Freeio' );