/** * Is Discount Expired * * Checks whether a discount code is expired. * * @param int $code_id * * @since 1.0 * @return bool */ function edd_is_discount_expired($code_id = null) { $discount = edd_get_discount($code_id); $return = false; if ($discount) { $expiration = edd_get_discount_expiration($code_id); if ($expiration) { $expiration = strtotime($expiration); if ($expiration < current_time('timestamp')) { // Discount is expired edd_update_discount_status($code_id, 'inactive'); $return = true; } } } return apply_filters('edd_is_discount_expired', $return, $code_id); }
/** * Process the bulk actions * * @access public * @since 1.4 * @return void */ public function process_bulk_action() { if (empty($_REQUEST['_wpnonce'])) { return; } if (!wp_verify_nonce($_REQUEST['_wpnonce'], 'bulk-discounts')) { return; } $ids = isset($_GET['discount']) ? $_GET['discount'] : false; if (!is_array($ids)) { $ids = array($ids); } foreach ($ids as $id) { if ('delete' === $this->current_action()) { edd_remove_discount($id); } if ('activate' === $this->current_action()) { edd_update_discount_status($id, 'active'); } if ('deactivate' === $this->current_action()) { edd_update_discount_status($id, 'inactive'); } } }
/** * Deactivate Discount * * Sets a discount code's status to deactivate * * @since 1.0 * @param array $data Discount code data * @uses edd_update_discount_status() * @return void */ function edd_deactivate_discount($data) { if (!isset($data['_wpnonce']) || !wp_verify_nonce($data['_wpnonce'], 'edd_discount_nonce')) { wp_die(__('Trying to cheat or something?', 'easy-digital-downloads'), __('Error', 'easy-digital-downloads'), array('response' => 403)); } if (!current_user_can('manage_shop_discounts')) { wp_die(__('You do not have permission to create discount codes', 'easy-digital-downloads'), array('response' => 403)); } $id = absint($data['discount']); edd_update_discount_status($id, 'inactive'); }
/** * Decrease Discount Usage * * Decreases the use count of a discount code. * * @since 2.5.7 * @param string $code Discount code to be decremented * @return int */ function edd_decrease_discount_usage($code) { $id = edd_get_discount_id_by_code($code); if (false === $id) { return false; } $uses = edd_get_discount_uses($id); if ($uses) { $uses--; } if ($uses < 0) { $uses = 0; } update_post_meta($id, '_edd_discount_uses', $uses); $max_uses = edd_get_discount_max_uses($id); if ($max_uses > $uses) { edd_update_discount_status($id, 'active'); update_post_meta($id, '_edd_discount_status', 'active'); } do_action('edd_discount_decrease_use_count', $uses, $id, $code); return $uses; }
/** * Deactivate Discount * * Sets a discount code's status to deactivate * * @since 1.0 * @param array $data Discount code data * @uses edd_update_discount_status() * @return void */ function edd_deactivate_discount($data) { $id = absint($data['discount']); edd_update_discount_status($id, 'inactive'); }
/** * Process the bulk actions * * @access public * @since 1.4 * @return void */ public function process_bulk_action() { $ids = isset($_GET['discount']) ? $_GET['discount'] : false; if (!is_array($ids)) { $ids = array($ids); } foreach ($ids as $id) { if ('delete' === $this->current_action()) { edd_remove_discount($id); } if ('activate' === $this->current_action()) { edd_update_discount_status($id, 'active'); } if ('deactivate' === $this->current_action()) { edd_update_discount_status($id, 'inactive'); } } }