Esempio n. 1
0
/**
 * Load Admin Scripts
 *
 * Enqueues the required scripts for admin.
 *
 * @since	1.3
 * @return	void
 */
function mdjm_register_admin_scripts($hook)
{
    $js_dir = MDJM_PLUGIN_URL . '/assets/js/';
    wp_register_script('jquery-chosen', $js_dir . 'chosen.jquery.js', array('jquery'), MDJM_VERSION_NUM);
    wp_enqueue_script('jquery-chosen');
    wp_enqueue_script('jquery-ui-datepicker', array('jquery'));
    if (strpos($hook, 'mdjm')) {
        wp_enqueue_script('jquery');
    }
    $editing_event = false;
    $require_validation = array('mdjm-event_page_mdjm-comms');
    $sortable = array('admin_page_mdjm-custom-event-fields', 'admin_page_mdjm-custom-client-fields');
    if ('post.php' == $hook || 'post-new.php' == $hook) {
        if (isset($_GET['post']) && 'mdjm-addon' == get_post_type($_GET['post'])) {
            $sortable[] = 'post.php';
            $sortable[] = 'post-new.php';
        }
        if (isset($_GET['post']) && 'mdjm-event' == get_post_type($_GET['post'])) {
            $editing_event = true;
        }
        if (isset($_GET['post_type']) && 'mdjm-event' == $_GET['post_type']) {
            $editing_event = true;
        }
        if ($editing_event) {
            $require_validation[] = 'post.php';
            $require_validation[] = 'post-new.php';
        }
    }
    if (in_array($hook, $require_validation)) {
        wp_register_script('jquery-validation-plugin', '//ajax.aspnetcdn.com/ajax/jquery.validate/1.11.1/jquery.validate.min.js', false);
        wp_enqueue_script('jquery-validation-plugin');
    }
    if (in_array($hook, $sortable)) {
        wp_enqueue_script('jquery-ui-sortable');
    }
    wp_register_script('mdjm-admin-scripts', $js_dir . 'admin-scripts.js', array('jquery'), MDJM_VERSION_NUM);
    wp_enqueue_script('mdjm-admin-scripts');
    wp_localize_script('mdjm-admin-scripts', 'mdjm_admin_vars', apply_filters('mdjm_admin_script_vars', array('ajaxurl' => mdjm_get_ajax_url(), 'current_page' => $hook, 'editing_event' => $editing_event, 'load_recipient' => isset($_GET['recipient']) ? $_GET['recipient'] : false, 'ajax_loader' => MDJM_PLUGIN_URL . '/assets/images/loading.gif', 'no_client_first_name' => __('Enter a first name for the client', 'mobile-dj-manager'), 'no_client_email' => __('Enter an email address for the client', 'mobile-dj-manager'), 'no_txn_amount' => __('Enter a transaction value', 'mobile-dj-manager'), 'no_txn_date' => __('Enter a transaction date', 'mobile-dj-manager'), 'no_txn_for' => __('What is the transaction for?', 'mobile-dj-manager'), 'no_txn_src' => __('Enter a transaction source', 'mobile-dj-manager'), 'no_venue_name' => __('Enter a name for the venue', 'mobile-dj-manager'), 'currency' => mdjm_get_currency(), 'currency_symbol' => mdjm_currency_symbol(), 'currency_sign' => mdjm_currency_filter(''), 'currency_position' => mdjm_get_option('currency_format', 'before'), 'currency_decimals' => mdjm_currency_decimal_filter(), 'deposit_is_pct' => 'percentage' == mdjm_get_event_deposit_type() ? true : false, 'update_deposit' => 'percentage' == mdjm_get_event_deposit_type() ? true : false, 'select_months' => __('Select Months', 'mobile-dj-manager'), 'one_month_min' => __('You must have a pricing option for at least one month', 'mobile-dj-manager'), 'one_item_min' => __('Select at least one Add-on', 'mobile-dj-manager'), 'min_travel_distance' => mdjm_get_option('travel_min_distance'), 'update_travel_cost' => mdjm_get_option('travel_add_cost', false))));
    wp_register_script('jquery-flot', $js_dir . 'jquery.flot.js');
    wp_enqueue_script('jquery-flot');
}
 /**
  * Build all the reports data
  *
  * @access	public
  * @since	1.4
  * @return	arr		$reports_data	All the data for customer reports
  */
 public function reports_data()
 {
     $stats = new MDJM_Stats();
     $dates = mdjm_get_report_dates();
     $stats->setup_dates($dates['range']);
     $cached_reports = false;
     if (false !== $cached_reports) {
         $reports_data = $cached_reports;
     } else {
         $reports_data = array();
         $term_args = array('parent' => 0, 'hierarchical' => 0);
         $categories = get_terms('event-types', $term_args);
         foreach ($categories as $category_id => $category) {
             $event_count = 0;
             $category_slugs = array($category->slug);
             $all_event_args = array('post_status' => apply_filters('mdjm_events_by_type_statuses', array('mdjm-contract', 'mdjm-approved', 'mdjm-completed')), 'fields' => 'ids', 'tax_query' => array(array('taxonomy' => 'event-types', 'field' => 'slug', 'terms' => $category_slugs)), 'meta_query' => array(array('key' => '_mdjm_event_date', 'value' => array(date('Y-m-d', $stats->start_date), date('Y-m-d', $stats->end_date)), 'type' => 'date', 'compare' => 'BETWEEN')));
             $earnings = 0.0;
             $avg_earnings = 0.0;
             $events = mdjm_get_events($all_event_args);
             if ($events) {
                 foreach ($events as $event) {
                     $event_count++;
                     $mdjm_event = new MDJM_Event($event);
                     $current_average_earnings = $current_earnings = $mdjm_event->get_total_profit();
                     $received_date = get_post_field('post_date', $event);
                     $diff = abs(current_time('timestamp') - strtotime($received_date));
                     $months = floor($diff / (30 * 60 * 60 * 24));
                     // Number of months since publication
                     if ($months > 0) {
                         $current_average_earnings = $current_earnings / $months;
                         //$current_average_events      = ( $events / $months );
                     }
                     $earnings += $current_earnings;
                     $avg_earnings += $current_average_earnings;
                 }
             } else {
                 continue;
             }
             $avg_earnings = round($avg_earnings / $event_count, mdjm_currency_decimal_filter());
             $reports_data[] = array('ID' => $category->term_id, 'type' => $category->name, 'total_events' => $event_count, 'total_earnings' => mdjm_currency_filter(mdjm_format_amount($earnings)), 'total_earnings_raw' => $earnings, 'avg_earnings' => mdjm_currency_filter(mdjm_format_amount($avg_earnings)), 'is_child' => false);
         }
     }
     return $reports_data;
 }