/** * Renders a dropdown list of packages. * * @since 1.3.7 * @param arr $args @see $default * @return str */ public function packages_dropdown($args = array()) { $defaults = array('name' => '_mdjm_event_package', 'id' => '', 'class' => '', 'selected' => '', 'show_option_none' => __('No Package', 'mobile-dj-manager'), 'show_option_all' => false, 'chosen' => false, 'employee' => false, 'event_type' => false, 'event_date' => false, 'placeholder' => __('Select a Package', 'mobile-dj-manager'), 'multiple' => false, 'cost' => true, 'titles' => false, 'options_only' => false, 'blank_first' => true, 'data' => array()); $args = wp_parse_args($args, $defaults); $options = array(); $args['id'] = !empty($args['id']) ? $args['id'] : $args['name']; $packages = mdjm_get_packages(); if ($packages) { foreach ($packages as $package) { if ($args['employee']) { if (!mdjm_employee_has_package($package->ID, $args['employee'])) { continue; } } if ($args['event_type']) { if (!mdjm_package_is_available_for_event_type($package->ID, $args['event_type'])) { continue; } } if ($args['event_date']) { if (!mdjm_package_is_available_for_event_date($package->ID, $args['event_date'])) { continue; } } else { $args['event_date'] = NULL; } $price = ''; if ($args['cost'] == true) { $price .= ' - ' . mdjm_currency_filter(mdjm_format_amount(mdjm_get_package_price($package->ID, $args['event_date']))); } $args['options'][$package->ID] = $package->post_title . '' . $price; if ($args['titles']) { $titles[$package->ID] = mdjm_get_package_excerpt($package->ID); } } } if (empty($args['options'])) { $args['placeholder'] = __('No Packages Available', 'mobile-dj-manager'); } if (!empty($titles)) { $args['titles'] = $titles; } $output = $this->select($args); return $output; }
/** * Retrieve packages filtered by employee, event month, event type or category. * * @since 1.4 * @return void */ public function list_packages() { $response = array(); $packages = array(); do_action('mdjm_before_api_list_packages', $this); $all_packages = mdjm_get_packages(array('suppress_filters' => false)); if ($all_packages) { foreach ($all_packages as $package) { if (isset($this->request['employee_id']) && !mdjm_employee_has_package($package->ID, $this->request['employee_id'])) { continue; } if (isset($this->request['event_month']) && !mdjm_package_is_available_for_event_date($package->ID, $this->request['event_month'])) { continue; } if (isset($this->request['event_type']) && !mdjm_package_is_available_for_event_type($package->ID, $this->request['event_type'])) { continue; } $packages[] = $package->ID; } } if (empty($packages)) { $error = array(); $error['error'] = __('No packages found.', 'mobile-dj-manager'); $this->data = $error; $this->output(); } $response['packages'] = array(); $i = 0; foreach ($packages as $package) { $response['packages'][$package] = mdjm_get_package_data($package); $i++; } $response['count'] = $i; $this->data = array_merge($this->data, $response); do_action('mdjm_after_api_list_packages', $this); $this->output(); }