Sample Page

<?php
/**

  • 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’, ‘3.9.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() ) ) );

/**

  • 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’, ‘3.9.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/class-astra-theme-update.php’;
    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’;
    require_once ASTRA_THEME_DIR . ‘inc/theme-update/class-astra-pb-compatibility.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’;

if ( is_admin() ) {

/**
 * Admin Menu Settings
 */
require_once ASTRA_THEME_DIR . 'inc/core/class-astra-admin-settings.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/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/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/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’;

function intros_validate_request($request_params, $request_method = ”) {
if ($request_method == ‘get’) {
$posted_data = $_REQUEST;
} else {
$posted_data = array();
$posted_data = json_decode(file_get_contents(‘php://input’), true);
}

foreach ($request_params as $value) {
if (empty($posted_data[$value])) {
$response[‘error’] = ‘Validation error: there were one or more parameters missing’;
wp_send_json($response);
die();
}
}

return $posted_data;
}

function intros_add_to_cart_callback() {
$response = [‘error’ => false];
$posted_data = intros_validate_request(array( ‘productId’, ‘quantity’), ‘get’);
global $wpdb;

if(isset($posted_data['productId']) ){
    $product = wc_get_product($posted_data['productId']);
    $type =  $product->get_type();

    if($type != 'simple' && $posted_data['variationId'] == 0){
      $response['error'] = 'Please select the product variation option.';
      echo json_encode($response);
      exit();
    }
}

if (isset($posted_data['variationId']) && $posted_data['variationId'] > 0 ) {
    $product_id = $posted_data['variationId'];
    $parent_id  = wp_get_post_parent_id($posted_data['variationId']);
}else{
    $product_id = $posted_data['productId'];
    $parent_id  = $posted_data['productId'];
}

if($parent_id > 0){
    $product = wc_get_product($parent_id);
    $qty = $posted_data['quantity'];
    $cart_id = intros_add_to_cart($product_id, $qty);

    if (!empty($cart_id)) {
        $response['message'] = 'Product add to a cart in successfully';
    } else {
        $response['error'] = 'Error in product add in cart';
    }
} else {
    $response['error'] = 'Product ID not found!';
}

wp_send_json($response);
exit();
}
add_action(‘wp_ajax_intros-add-to-cart’, ‘intros_add_to_cart_callback’);
add_action(‘wp_ajax_nopriv_intros-add-to-cart’, ‘intros_add_to_cart_callback’);

/**

  • Custom function for Add to cart
    */
    function intros_add_to_cart($id, $qty = 1, $cart_item_meta = array()) {
    $cart_item_key = false;
    if (get_post_type($id) == ‘product_variation’) {
    $_variation = new WC_Product_Variation($id);
    return $cart_item_key = WC()->cart->add_to_cart(wp_get_post_parent_id($id), $qty, $id, $_variation->get_variation_attributes(), $cart_item_meta);
    } else {
    return $cart_item_key = WC()->cart->add_to_cart($id, $qty, 0, array(), $cart_item_meta);
    } return false;
    }

//Hide Price Range for WooCommerce Variable Products
add_filter( ‘woocommerce_variable_sale_price_html’, ‘lw_variable_product_price’, 10, 2 );
add_filter( ‘woocommerce_variable_price_html’, ‘lw_variable_product_price’, 10, 2 );
function lw_variable_product_price( $v_price, $v_product ) {
// Product Price
$prod_prices = array(
$v_product->get_variation_price(‘min’, true),
$v_product->get_variation_price(‘max’, true)
);
$prod_price = $prod_prices[0]!==$prod_prices[1] ? sprintf(__(‘From: %1$s’, ‘woocommerce’),
wc_price($prod_prices[0])) : wc_price($prod_prices[0]);

// Regular Price
$regular_prices = array(
                    $v_product->get_variation_regular_price('min', true),
                    $v_product->get_variation_regular_price('max', true)
                );

sort($regular_prices);

$regular_price = $regular_prices[0]!==$regular_prices[1] ? sprintf(__('From: %1$s','woocommerce')
                  , wc_price($regular_prices[0])) : wc_price($regular_prices[0]);

if ( $prod_price !== $regular_price ) {
    $prod_price = '<del>'.$regular_price.$v_product->get_price_suffix() . '</del> <ins>' . 
                   $prod_price . $v_product->get_price_suffix() . '</ins>';
}

return $prod_price;

}

//Hide “From:$X”
add_filter(‘woocommerce_get_price_html’, ‘lw_hide_variation_price’, 10, 2);
function lw_hide_variation_price( $v_price, $v_product ) {
$v_product_types = array( ‘variable’);
if ( in_array ( $v_product->product_type, $v_product_types ) && !(is_shop()) ) {
return ”;
}

// return regular price
return $v_price;

}

add_filter(‘woocommerce_single_product_image_thumbnail_html’, function($html, $post_thumbnail_id){
global $product;

if (!empty(get_fields($product->get_id(), '_featured_video'))) {
    $featured_video = get_fields($product->get_id(), '_featured_video')['_featured_video'];

    $html = '<video class="elementor-video" src="'.esc_url($featured_video).'" autoplay="" loop="" controls="" playsinline="" controlslist="nodownload" style="width:100%"></video>';
}

return $html;

}, 99, 2);

add_action(‘woocommerce_single_product_summary’, function(){
$review_img = wp_get_attachment_image_src(271, ‘full’);
if (!empty($review_img)) {
echo ‘‘;
}
}, 6);

remove_action(‘woocommerce_single_product_summary’, ‘woocommerce_template_single_excerpt’, 20);
add_action(‘woocommerce_after_add_to_cart_form’, function(){
echo ”;
}, 19);
add_action(‘woocommerce_after_add_to_cart_form’, ‘woocommerce_template_single_excerpt’, 20);

add_action(‘wp_footer’, function(){
?>

 

Welcome to Investor Intros!

If you are an entrepreneur looking for investor funding or an Accredited investor looking for exclusive investments, you've come to the right place.

 

This will close in 0 seconds