<?php

defined('ABSPATH') || exit;
function wc_get_coupon_types()
{
    return (array) apply_filters('woocommerce_coupon_discount_types', array('percent' => __('Percentage discount', 'woocommerce'), 'fixed_cart' => __('Fixed cart discount', 'woocommerce'), 'fixed_product' => __('Fixed product discount', 'woocommerce')));
}
function wc_get_coupon_type($type = '')
{
    $types = wc_get_coupon_types();
    return isset($types[$type]) ? $types[$type] : '';
}
function wc_get_product_coupon_types()
{
    return (array) apply_filters('woocommerce_product_coupon_types', array('fixed_product', 'percent'));
}
function wc_get_cart_coupon_types()
{
    return (array) apply_filters('woocommerce_cart_coupon_types', array('fixed_cart'));
}
function wc_coupons_enabled()
{
    return apply_filters('woocommerce_coupons_enabled', 'yes' === get_option('woocommerce_enable_coupons'));
}
function wc_get_coupon_code_by_id($id)
{
    $data_store = WC_Data_Store::load('coupon');
    return empty($id) ? '' : (string) $data_store->get_code_by_id($id);
}
function wc_get_coupon_id_by_code($code, $exclude = 0)
{
    if (empty($code)) {
        return 0;
    }
    $data_store = WC_Data_Store::load('coupon');
    $ids = wp_cache_get(WC_Cache_Helper::get_cache_prefix('coupons') . 'coupon_id_from_code_' . $code, 'coupons');
    if (false === $ids) {
        $ids = $data_store->get_ids_by_code($code);
        if ($ids) {
            wp_cache_set(WC_Cache_Helper::get_cache_prefix('coupons') . 'coupon_id_from_code_' . $code, $ids, 'coupons');
        }
    }
    $ids = array_diff(array_filter(array_map('absint', (array) $ids)), array($exclude));
    return apply_filters('woocommerce_get_coupon_id_from_code', absint(current($ids)), $code, $exclude);
}