Current File : /home/getxxhzo/xpertbee.com/wp-content/plugins/hurrytimer/includes/functions.php |
<?php
use Hurrytimer\Campaign;
if (!function_exists('hurryt_wc_stock_statuses')) {
/**
* Returns WooCommerce stock status as array.
*
* @return array
*/
function hurryt_wc_stock_statuses() {
return [
[
'name' => __('In stock', 'hurrytimer'),
'id' => \Hurrytimer\C::WC_IN_STOCK,
],
[
'name' => __('Out of stock', 'hurrytimer'),
'id' => \Hurrytimer\C::WC_OUT_OF_STOCK,
],
[
'name' => __('On backorder', 'hurrytimer'),
'id' => \Hurrytimer\C::WC_ON_BACKORDER,
],
];
}
}
if (!function_exists('hurryt_wc_conditions')) {
/**
* Returns supported conditions.
*
* @return array
*/
function hurryt_wc_conditions() {
return (new \Hurrytimer\ConditionalLogic())->addRule([
'key' => 'stock_status',
'name' => __('Stock status', 'hurrytimer'),
'operators' => ['==', '!='],
'values' => hurryt_wc_stock_statuses(),
'type' => 'string',
])->addRule([
'key' => 'stock_quantity',
'name' => __('Stock quantity', 'hurrytimer'),
'operators' => ['==', '!=', '<', '>'],
'values' => [],
'type' => 'number',
])->addRule([
'key' => 'shipping_class',
'name' => __('Shipping class', 'hurrytimer'),
'operators' => ['==', '!='],
'values' => array_map(function ($class) {
return [
'name' => $class->name,
'id' => $class->term_id,
];
}, \WC_Shipping::instance()->get_shipping_classes()),
])
->addRule([
'key' => 'on_sale',
'name' => __('On sale', 'hurrytimer'),
'operators' => ['=='],
'values' => [
['name' => 'Yes', 'id' => 'yes'],
['name' => 'No', 'id' => 'no']
],
])->get();
}
}
if (!function_exists('hurryt_tz')) {
/**
* Return WP timezone string/offset.
*
* @return mixed|string|void
*/
function hurryt_tz() {
$tz_string = get_option('timezone_string');
if (!empty($tz_string)) {
return $tz_string;
}
$offset = get_option('gmt_offset');
$hours = (int)$offset;
$minutes = abs(($offset - (int)$offset) * 60);
$offset = sprintf('%+03d:%02d', $hours, $minutes);
return $offset;
}
}
if (!function_exists('hurryt_current_page_id')) {
/**
* Get current page ID.
*
* @return int|mixed
*/
function hurryt_current_page_id() {
$object_id = get_queried_object_id();
if (!hurryt_is_woocommerce_activated()) {
return $object_id;
}
$wc_ids = [
'shop' => get_option('woocommerce_shop_page_id'),
'cart' => get_option('woocommerce_cart_page_id'),
'checkout' => get_option('woocommerce_checkout_page_id'),
'checkout_pay' => get_option('woocommerce_pay_page_id'),
'thanks' => get_option('woocommerce_thanks_page_id'),
'myaccount' => get_option('woocommerce_myaccount_page_id'),
'edit_address' => get_option('woocommerce_edit_address_page_id'),
'view_order' => get_option('woocommerce_view_order_page_id'),
'terms' => get_option('woocommerce_terms_page_id'),
];
if (is_shop()) {
$object_id = $wc_ids['shop'];
} elseif (is_account_page()) {
$object_id = $wc_ids['myaccount'];
} elseif (is_checkout_pay_page()) {
$object_id = $wc_ids['checkout_pay'];
} elseif (is_checkout()) {
$object_id = $wc_ids['checkout'];
} elseif (is_cart()) {
$object_id = $wc_ids['cart'];
} elseif (is_view_order_page()) {
$object_id = $wc_ids['view_order'];
} elseif (is_view_order_page()) {
$object_id = $wc_ids['view_order'];
} elseif (is_view_order_page()) {
$object_id = $wc_ids['view_order'];
} elseif (is_view_order_page()) {
$object_id = $wc_ids['view_order'];
}
return $object_id;
}
}
if (!function_exists('hurryt_is_woocommerce_activated')) {
/**
* Returns true if WC is active.
*
* @return bool
*/
function hurryt_is_woocommerce_activated() {
return class_exists('woocommerce');
}
}
if (!function_exists('hurryt_settings')) {
/**
* Returns plugin settings array.
*
* @return array
*/
function hurryt_settings() {
$defaults = ['disable_actions' => 0];
return wp_parse_args(get_option('hurryt_settings', []), $defaults);
}
}
if (!function_exists('hurryt_get_campaign')) {
/**
* Create a campaign instance with all props.
* @param $id
*
* @return Campaign
*/
function hurryt_get_campaign($id) {
$campaign = new Campaign($id);
$campaign->loadSettings();
return $campaign;
}
}
if (!function_exists('hurryt_is_admin_area')) {
function hurryt_is_admin_area() {
global $wp;
wp_parse_str($wp->query_string, $params);
return is_admin()
|| is_preview()
|| is_customize_preview()
|| hurrytimer_is_elementor_edit_mode()
|| hurrytimer_is_elementor_preview_mode()
|| !empty($params['preview'])
|| !empty($params['fl_builder']);
}
}
if (!function_exists('hurryt_parse_campaigns')) {
/**
* Parse campaigns shortcodes in the given string content.
*/
function hurryt_parse_campaigns($content) {
$pattern = get_shortcode_regex();
$tag = 'hurrytimer';
$ids = [];
if (
preg_match_all('/' . $pattern . '/s', $content, $matches)
&& array_key_exists(2, $matches)
&& in_array($tag, $matches[2])
) {
foreach ((array)$matches[2] as $key => $value) {
if ($tag === $value) {
$ids[] = shortcode_parse_atts($matches[3][$key]);
}
}
$ids = array_map(function ($id) {
return isset($id['id']) ? absint($id['id']) : null;
}, $ids);
return array_filter($ids);
}
return [];
}
}
if (!function_exists('hurryt_count_active_campaigns')) {
/**
* Returns published campaigns.
*/
function hurryt_count_active_campaigns() {
/** @var object $count */
$count = wp_count_posts(HURRYT_POST_TYPE);
return absint($count->publish);
}
}
/**
* Return all WooCommerce coupons.
* @param string $status
* @access private
* @internal
* @return array
*/
function hurryt_get_wc_coupons($status = 'any') {
return get_posts([
'post_type' => 'shop_coupon',
'post_status' => $status,
'no_found_rows' => true,
'numberposts' => 30
]);
}
function hurryt_wc_coupon_name($coupon_id) {
if (!function_exists('wc_get_coupon_types')) {
return '';
}
$type_names = wc_get_coupon_types();
$coupon_type = get_post_meta($coupon_id, 'discount_type', true);
return isset($type_names[$coupon_type]) ? $type_names[$coupon_type] : '';
}
/**
* Return the current timezone string.
* @return string
*/
function hurryt_current_timezone_string() {
$current_offset = get_option('gmt_offset');
$tzstring = get_option('timezone_string');
if (false !== strpos($tzstring, 'Etc/GMT')) {
$tzstring = '';
}
if (empty($tzstring)) {
if (0 == $current_offset) {
$tzstring = 'UTC+0';
} elseif ($current_offset < 0) {
$tzstring = 'UTC' . $current_offset;
} else {
$tzstring = 'UTC+' . $current_offset;
}
}
return $tzstring;
}
function hurrytimer_is_elementor_edit_mode() {
try {
return class_exists('\Elementor\Plugin') && \Elementor\Plugin::$instance->editor->is_edit_mode();
} catch (\Exception $e) {
return false;
}
}
function hurrytimer_is_elementor_preview_mode() {
try {
return class_exists('\Elementor\Plugin') && \Elementor\Plugin::$instance->preview->is_preview_mode();
} catch (\Exception $e) {
return false;
}
}
function hurrytimer_allow_unfiltered_html() {
$allow_unfiltered_html = current_user_can('unfiltered_html');
/**
* Filters whether the current user is allowed to save unfiltered HTML.
*
* @param bool allow_unfiltered_html The result.
*/
return apply_filters( 'hurrytimer/allow_unfiltered_html', $allow_unfiltered_html );
}