/** * 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; }