Esempio n. 1
0
/**
 * Load Scripts
 *
 * Enqueues the required scripts.
 *
 * @since 1.0
 * @global $give_options
 * @global $post
 * @return void
 */
function give_load_scripts()
{
    global $give_options;
    $js_dir = GIVE_PLUGIN_URL . 'assets/js/frontend/';
    $js_plugins = GIVE_PLUGIN_URL . 'assets/js/plugins/';
    $scripts_footer = give_get_option('scripts_footer') == 'on' ? true : false;
    // Use minified libraries if SCRIPT_DEBUG is turned off
    $suffix = defined('SCRIPT_DEBUG') && SCRIPT_DEBUG ? '' : '.min';
    //Localize / PHP to AJAX vars
    $localize_give_checkout = apply_filters('give_global_script_vars', array('ajaxurl' => give_get_ajax_url(), 'checkout_nonce' => wp_create_nonce('give_checkout_nonce'), 'currency_sign' => give_currency_filter(''), 'currency_pos' => isset($give_options['currency_position']) ? $give_options['currency_position'] : 'before', 'thousands_separator' => isset($give_options['thousands_separator']) ? $give_options['thousands_separator'] : ',', 'decimal_separator' => isset($give_options['decimal_separator']) ? $give_options['decimal_separator'] : '.', 'no_gateway' => __('Please select a payment method', 'give'), 'general_loading' => __('Loading...', 'give'), 'purchase_loading' => __('Please Wait...', 'give'), 'give_version' => GIVE_VERSION));
    $localize_give_ajax = apply_filters('give_global_ajax_vars', array('ajaxurl' => give_get_ajax_url(), 'position_in_cart' => isset($position) ? $position : -1, 'loading' => __('Loading', 'give'), 'floatlabels' => give_get_option('enable_floatlabels') ? '1' : '0', 'select_option' => __('Please select an option', 'give'), 'default_gateway' => give_get_default_gateway(null), 'permalinks' => get_option('permalink_structure') ? '1' : '0', 'number_decimals' => apply_filters('give_format_amount_decimals', 2)));
    //DEBUG is On
    if (defined('SCRIPT_DEBUG') && SCRIPT_DEBUG) {
        if (give_is_cc_verify_enabled()) {
            wp_register_script('give-cc-validator', $js_plugins . 'jquery.payment' . $suffix . '.js', array('jquery'), GIVE_VERSION, $scripts_footer);
            wp_enqueue_script('give-cc-validator');
        }
        if ($localize_give_ajax['floatlabels']) {
            wp_register_script('give-float-labels', $js_plugins . 'float-labels' . $suffix . '.js', array('jquery'), GIVE_VERSION, $scripts_footer);
            wp_enqueue_script('give-float-labels');
        }
        wp_register_script('give-blockui', $js_plugins . 'jquery.blockUI' . $suffix . '.js', array('jquery'), GIVE_VERSION, $scripts_footer);
        wp_enqueue_script('give-blockui');
        wp_register_script('give-qtip', $js_plugins . 'jquery.qtip' . $suffix . '.js', array('jquery'), GIVE_VERSION, $scripts_footer);
        wp_enqueue_script('give-qtip');
        wp_register_script('give-accounting', $js_plugins . 'accounting' . $suffix . '.js', array('jquery'), GIVE_VERSION, $scripts_footer);
        wp_enqueue_script('give-accounting');
        wp_register_script('give-magnific', $js_plugins . 'jquery.magnific-popup' . $suffix . '.js', array('jquery'), GIVE_VERSION, $scripts_footer);
        wp_enqueue_script('give-magnific');
        wp_register_script('give-checkout-global', $js_dir . 'give-checkout-global' . $suffix . '.js', array('jquery'), GIVE_VERSION, $scripts_footer);
        wp_enqueue_script('give-checkout-global');
        //General scripts
        wp_register_script('give-scripts', $js_dir . 'give' . $suffix . '.js', array('jquery'), GIVE_VERSION, $scripts_footer);
        wp_enqueue_script('give-scripts');
        // Load AJAX scripts, if enabled
        wp_register_script('give-ajax', $js_dir . 'give-ajax' . $suffix . '.js', array('jquery'), GIVE_VERSION, $scripts_footer);
        wp_enqueue_script('give-ajax');
        //Localize / Pass AJAX vars from PHP
        wp_localize_script('give-checkout-global', 'give_global_vars', $localize_give_checkout);
        wp_localize_script('give-ajax', 'give_scripts', $localize_give_ajax);
    } else {
        //DEBUG is OFF (one JS file to rule them all!)
        wp_register_script('give', $js_dir . 'give.all.min.js', array('jquery'), GIVE_VERSION, $scripts_footer);
        wp_enqueue_script('give');
        //Localize / Pass AJAX vars from PHP
        wp_localize_script('give', 'give_global_vars', $localize_give_checkout);
        wp_localize_script('give', 'give_scripts', $localize_give_ajax);
    }
}
Esempio n. 2
0
/**
 * Check if AJAX works as expected
 *
 * @since 1.0
 * @return bool True if AJAX works, false otherwise
 */
function give_test_ajax_works()
{
    // Check if the Airplane Mode plugin is installed
    if (class_exists('Airplane_Mode_Core')) {
        $airplane = Airplane_Mode_Core::getInstance();
        if (method_exists($airplane, 'enabled')) {
            if ($airplane->enabled()) {
                return true;
            }
        } else {
            if ($airplane->check_status() == 'on') {
                return true;
            }
        }
    }
    add_filter('block_local_requests', '__return_false');
    if (get_transient('_give_ajax_works')) {
        return true;
    }
    $params = array('sslverify' => false, 'timeout' => 30, 'body' => array('action' => 'give_test_ajax'));
    $ajax = wp_remote_post(give_get_ajax_url(), $params);
    $works = true;
    if (is_wp_error($ajax)) {
        $works = false;
    } else {
        if (empty($ajax['response'])) {
            $works = false;
        }
        if (empty($ajax['response']['code']) || 200 !== (int) $ajax['response']['code']) {
            $works = false;
        }
        if (empty($ajax['response']['message']) || 'OK' !== $ajax['response']['message']) {
            $works = false;
        }
        if (!isset($ajax['body']) || 0 !== (int) $ajax['body']) {
            $works = false;
        }
    }
    if ($works) {
        set_transient('_give_ajax_works', '1', DAY_IN_SECONDS);
    }
    return $works;
}
Esempio n. 3
0
 public function test_ajax_url()
 {
     $_SERVER['SERVER_PORT'] = 80;
     $_SERVER['HTTPS'] = 'off';
     $this->assertEquals(give_get_ajax_url(), get_site_url(null, '/wp-admin/admin-ajax.php', 'http'));
 }