예제 #1
0
/**
 * Load Scripts
 *
 * Enqueues the required scripts.
 *
 * @since 1.0
 * @global $post
 * @return void
 */
function edd_load_scripts()
{
    global $post;
    $js_dir = EDD_PLUGIN_URL . 'assets/js/';
    // Use minified libraries if SCRIPT_DEBUG is turned off
    $suffix = defined('SCRIPT_DEBUG') && SCRIPT_DEBUG ? '' : '.min';
    // Get position in cart of current download
    if (isset($post->ID)) {
        $position = edd_get_item_position_in_cart($post->ID);
    }
    if (edd_is_checkout()) {
        if (edd_is_cc_verify_enabled()) {
            wp_register_script('creditCardValidator', $js_dir . 'jquery.creditCardValidator' . $suffix . '.js', array('jquery'), EDD_VERSION);
            wp_enqueue_script('creditCardValidator');
        }
        wp_register_script('edd-checkout-global', $js_dir . 'edd-checkout-global' . $suffix . '.js', array('jquery'), EDD_VERSION);
        wp_enqueue_script('edd-checkout-global');
        wp_localize_script('edd-checkout-global', 'edd_global_vars', apply_filters('edd_global_checkout_script_vars', array('ajaxurl' => edd_get_ajax_url(), 'checkout_nonce' => wp_create_nonce('edd_checkout_nonce'), 'currency_sign' => edd_currency_filter(''), 'currency_pos' => edd_get_option('currency_position', 'before'), 'no_gateway' => __('Please select a payment method', 'edd'), 'no_discount' => __('Please enter a discount code', 'edd'), 'enter_discount' => __('Enter discount', 'edd'), 'discount_applied' => __('Discount Applied', 'edd'), 'no_email' => __('Please enter an email address before applying a discount code', 'edd'), 'no_username' => __('Please enter a username before applying a discount code', 'edd'), 'purchase_loading' => __('Please Wait...', 'edd'), 'complete_purchase' => __('Purchase', 'edd'), 'taxes_enabled' => edd_use_taxes() ? '1' : '0', 'edd_version' => EDD_VERSION)));
    }
    // Load AJAX scripts, if enabled
    if (!edd_is_ajax_disabled()) {
        wp_register_script('edd-ajax', $js_dir . 'edd-ajax' . $suffix . '.js', array('jquery'), EDD_VERSION);
        wp_enqueue_script('edd-ajax');
        wp_localize_script('edd-ajax', 'edd_scripts', apply_filters('edd_ajax_script_vars', array('ajaxurl' => edd_get_ajax_url(), 'position_in_cart' => isset($position) ? $position : -1, 'already_in_cart_message' => __('You have already added this item to your cart', 'edd'), 'empty_cart_message' => __('Your cart is empty', 'edd'), 'loading' => __('Loading', 'edd'), 'select_option' => __('Please select an option', 'edd'), 'ajax_loader' => set_url_scheme(EDD_PLUGIN_URL . 'assets/images/loading.gif', 'relative'), 'is_checkout' => edd_is_checkout() ? '1' : '0', 'default_gateway' => edd_get_default_gateway(), 'redirect_to_checkout' => edd_straight_to_checkout() || edd_is_checkout() ? '1' : '0', 'checkout_page' => edd_get_checkout_uri(), 'permalinks' => get_option('permalink_structure') ? '1' : '0', 'quantities_enabled' => edd_item_quantities_enabled(), 'taxes_enabled' => edd_use_taxes() ? '1' : '0')));
    }
}
예제 #2
0
/**
 * Load Scripts
 *
 * Enqueues the required scripts.
 *
 * @access      private
 * @since       1.0
 * @return      void
*/
function edd_load_scripts()
{
    global $edd_options, $post;
    wp_enqueue_script('jquery');
    // Get position in cart of current download
    if (isset($post->ID)) {
        $position = edd_get_item_position_in_cart($post->ID);
    }
    // Load AJAX scripts, if enabled
    if (edd_is_ajax_enabled()) {
        wp_enqueue_script('edd-ajax', EDD_PLUGIN_URL . 'assets/js/edd-ajax.js', array('jquery'), EDD_VERSION);
        wp_localize_script('edd-ajax', 'edd_scripts', array('ajaxurl' => edd_get_ajax_url(), 'ajax_nonce' => wp_create_nonce('edd_ajax_nonce'), 'no_discount' => __('Please enter a discount code', 'edd'), 'discount_applied' => __('Discount Applied', 'edd'), 'no_email' => __('Please enter an email address before applying a discount code', 'edd'), 'no_username' => __('Please enter a username before applying a discount code', 'edd'), 'position_in_cart' => isset($position) ? $position : -1, 'already_in_cart_message' => __('You have already added this item to your cart', 'edd'), 'empty_cart_message' => __('Your cart is empty', 'edd'), 'loading' => __('Loading', 'edd'), 'ajax_loader' => EDD_PLUGIN_URL . 'assets/images/loading.gif', 'checkout_page' => edd_get_checkout_uri(), 'permalinks' => get_option('permalink_structure') ? '1' : '0'));
    }
    // Load jQuery validation
    if (isset($edd_options['jquery_validation']) && edd_is_checkout()) {
        wp_enqueue_script('jquery-validation', EDD_PLUGIN_URL . 'assets/js/jquery.validate.min.js');
        wp_enqueue_script('edd-validation', EDD_PLUGIN_URL . 'assets/js/form-validation.js', array('jquery', 'jquery-validation'), EDD_VERSION);
        $required = array('firstname' => true, 'lastname' => true);
        wp_localize_script('edd-validation', 'edd_scripts_validation', apply_filters('edd_scripts_validation', $required));
    }
    if (edd_is_checkout()) {
        if (edd_is_cc_verify_enabled()) {
            wp_enqueue_script('creditCardValidator', EDD_PLUGIN_URL . 'assets/js/jquery.creditCardValidator.js', array('jquery'), EDD_VERSION);
        }
        wp_enqueue_script('edd-checkout-global', EDD_PLUGIN_URL . 'assets/js/edd-checkout-global.js', array('jquery'), EDD_VERSION);
        wp_localize_script('edd-checkout-global', 'edd_global_vars', array('currency_sign' => edd_currency_filter(''), 'currency_pos' => isset($edd_options['currency_position']) ? $edd_options['currency_position'] : 'before', 'no_gateway' => __('Please select a payment method', 'edd')));
    }
}
예제 #3
0
/**
 * Print scripts
 *
 * @since 1.0
*/
function edd_wl_print_scripts()
{
    global $edd_options;
    // Use minified libraries if SCRIPT_DEBUG is turned off
    $suffix = defined('SCRIPT_DEBUG') && SCRIPT_DEBUG ? '' : '.min';
    // register scripts
    wp_register_script('edd-wl', EDD_WL_PLUGIN_URL . 'includes/js/edd-wl' . $suffix . '.js', array('jquery'), EDD_WL_VERSION, true);
    wp_register_script('edd-wl-validate', EDD_WL_PLUGIN_URL . 'includes/js/jquery.validate' . $suffix . '.js', array('jquery'), EDD_WL_VERSION, true);
    wp_register_script('edd-wl-modal', EDD_WL_PLUGIN_URL . 'includes/js/modal' . $suffix . '.js', array('jquery'), EDD_WL_VERSION, true);
    // load scripts on single post type pages
    $post_types = edd_wl_allowed_post_types();
    foreach ($post_types as $post_type) {
        if (is_singular($post_type)) {
            wp_enqueue_script('edd-wl');
            wp_enqueue_script('edd-wl-modal');
        }
    }
    // load validation if email sharing is present
    if (edd_wl_is_page('view') && edd_wl_sharing_is_enabled('email')) {
        wp_enqueue_script('edd-wl-validate');
    }
    wp_localize_script('edd-wl', 'edd_wl_scripts', array('ajaxurl' => edd_get_ajax_url(), 'wish_list_page' => edd_wl_get_wish_list_uri(), 'wish_list_add' => edd_wl_get_wish_list_create_uri(), 'ajax_nonce' => wp_create_nonce('edd_wl_ajax_nonce')));
    // CSS
    $file = 'edd-wl' . $suffix . '.css';
    $templates_dir = edd_get_theme_template_dir_name();
    $child_theme_style_sheet = trailingslashit(get_stylesheet_directory()) . $templates_dir . $file;
    $child_theme_style_sheet_2 = trailingslashit(get_stylesheet_directory()) . $templates_dir . 'edd-wl.css';
    $parent_theme_style_sheet = trailingslashit(get_template_directory()) . $templates_dir . $file;
    $parent_theme_style_sheet_2 = trailingslashit(get_template_directory()) . $templates_dir . 'edd-wl.css';
    $edd_plugin_style_sheet = trailingslashit(edd_wl_get_templates_dir()) . $file;
    // Look in the child theme directory first, followed by the parent theme, followed by the EDD core templates directory
    // Also look for the min version first, followed by non minified version, even if SCRIPT_DEBUG is not enabled.
    // This allows users to copy just edd-wl.css to their theme
    if (file_exists($child_theme_style_sheet) || !empty($suffix) && ($nonmin = file_exists($child_theme_style_sheet_2))) {
        if (!empty($nonmin)) {
            $url = trailingslashit(get_stylesheet_directory_uri()) . $templates_dir . 'edd-wl.css';
        } else {
            $url = trailingslashit(get_stylesheet_directory_uri()) . $templates_dir . $file;
        }
    } elseif (file_exists($parent_theme_style_sheet) || !empty($suffix) && ($nonmin = file_exists($parent_theme_style_sheet_2))) {
        if (!empty($nonmin)) {
            $url = trailingslashit(get_template_directory_uri()) . $templates_dir . 'edd-wl.css';
        } else {
            $url = trailingslashit(get_template_directory_uri()) . $templates_dir . $file;
        }
    } elseif (file_exists($edd_plugin_style_sheet) || file_exists($edd_plugin_style_sheet)) {
        $url = trailingslashit(edd_wl_get_templates_url()) . $file;
    }
    wp_enqueue_style('edd-wl-styles', $url, array(), EDD_WL_VERSION, 'screen');
}
/**
 * Check if AJAX works as expected
 *
 * @since 2.2
 * @return bool True if AJAX works, false otherwise
 */
function edd_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('_edd_ajax_works')) {
        return true;
    }
    $params = array('sslverify' => false, 'timeout' => 30, 'body' => array('action' => 'edd_test_ajax'));
    $ajax = wp_remote_post(edd_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('_edd_ajax_works', '1', DAY_IN_SECONDS);
    }
    return $works;
}
예제 #5
0
 /**
  * Load custom ajax
  */
 public function load_custom_ajax()
 {
     wp_enqueue_script('wpmenucart', plugins_url('/javascript/wpmenucart.js', __FILE__), array('jquery'), '2.5.6', true);
     // get URL to WordPress ajax handling page
     if ($this->options['shop_plugin'] == 'easy-digital-downloads' && function_exists('edd_get_ajax_url')) {
         // use EDD function to prevent SSL issues http://git.io/V7w76A
         $ajax_url = edd_get_ajax_url();
     } else {
         $ajax_url = admin_url('admin-ajax.php');
     }
     wp_localize_script('wpmenucart', 'wpmenucart_ajax', array('ajaxurl' => $ajax_url, 'nonce' => wp_create_nonce('wpmenucart')));
 }
예제 #6
0
 /**
  * Enqueues all theme assets
  */
 public function enqueue_assets()
 {
     wp_enqueue_style('yoast-com');
     wp_enqueue_script('yoast-com');
     wp_localize_script('yoast-com', 'YoastAjax', array('ajaxurl' => admin_url('admin-ajax.php')));
     if (function_exists('edd_is_checkout') && edd_is_checkout()) {
         wp_enqueue_style('chosen');
         wp_enqueue_script('yoast-com-checkout');
         wp_localize_script('yoast-com-checkout', 'yoast_com_checkout_vars', array('ajaxurl' => edd_get_ajax_url(), 'checkout_nonce' => wp_create_nonce('edd_checkout_nonce'), 'taxes_enabled' => edd_use_taxes() ? '1' : '0', 'tax_rates' => $this->get_tax_rates()));
     }
     // Remove the cross selling CSS because we overwrite it completely.
     wp_deregister_style('edd-csau-css');
     if (is_singular('post') && !Hide_Comments::hide_comments() && comments_open()) {
         wp_enqueue_script('comment-reply');
     }
     if (is_singular(array('course', 'lesson', 'llms_quiz'))) {
         wp_enqueue_script('yoast-com-academy');
     }
 }
예제 #7
0
/**
 * Print scripts
 *
 * @since 1.0
*/
function edd_wl_sharing_print_scripts()
{
    global $edd_options;
    if (!edd_wl_is_view_page()) {
        return;
    }
    ?>
	<script type="text/javascript">

	<?php 
    /**
     * Twitter
     *
     * @since 1.0
     */
    if (edd_wl_sharing_is_enabled('twitter')) {
        ?>
	  	window.twttr = (function (d,s,id) {
		  var t, js, fjs = d.getElementsByTagName(s)[0];
		  if (d.getElementById(id)) return; js=d.createElement(s); js.id=id;
		  js.src="https://platform.twitter.com/widgets.js"; fjs.parentNode.insertBefore(js, fjs);
		  return window.twttr || (t = { _e: [], ready: function(f){ t._e.push(f) } });
		}(document, "script", "twitter-wjs"));

		twttr.ready(function (twttr) {
		    twttr.events.bind('tweet', function (event) {
		        jQuery.event.trigger({
		            type: "listShared",
		            url: event.target.baseURI
		        });
		    });
		});

		<?php 
    }
    ?>

		<?php 
    /**
     * Google +
     *
     * @since 1.0
     */
    if (edd_wl_sharing_is_enabled('googleplus')) {
        $locale = apply_filters('edd_wl_googleplus_locale', 'en-US');
        ?>
			window.___gcfg = {
			  lang: '<?php 
        echo $locale;
        ?>
',
			  parsetags: 'onload'
			};

			(function() {
			    var po = document.createElement('script'); po.type = 'text/javascript'; po.async = true;
			    po.src = 'https://apis.google.com/js/plusone.js';
			    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(po, s);
			  })();

			function plusOned(obj) {
				console.log(obj);
				jQuery.event.trigger({
				    type: "listShared",
				    url: obj.href
				});
			}
		<?php 
    }
    ?>

		<?php 
    /**
     * LinkedIn
     *
     * @since 1.0
     */
    if (edd_wl_sharing_is_enabled('linkedin')) {
        ?>
			function share(url) {
				console.log(url);
			 	jQuery.event.trigger({
		            type: "listShared",
		            url: url
		        });
			}
		
		<?php 
    }
    ?>

		<?php 
    /**
     * Facebook
     *
     * @since 1.0
     */
    if (edd_wl_sharing_is_enabled('facebook')) {
        // defaults to en_US if left blank
        $locale = apply_filters('edd_wl_facebook_locale', 'en_US');
        ?>

			(function(d, s, id) {
			     var js, fjs = d.getElementsByTagName(s)[0];
			     if (d.getElementById(id)) {return;}
			     js = d.createElement(s); js.id = id;
			     js.src = "//connect.facebook.net/<?php 
        echo $locale;
        ?>
/all.js";
			     fjs.parentNode.insertBefore(js, fjs);
			 }(document, 'script', 'facebook-jssdk'));

			window.fbAsyncInit = function() {
			    // init the FB JS SDK
			    FB.init({
			      status	: true,
			      cookie	: true,                               
			      xfbml		: true                              
			    });

			    FB.Event.subscribe('edge.create', function(href, widget) {
			        jQuery.event.trigger({
			            type: "listShared",
			            url: href
			        });     
			    });
			};
		<?php 
    }
    ?>

		<?php 
    /**
     * Listen for the productShared event
     *
     * @since 1.0
     */
    if (edd_wl_sharing_is_enabled()) {
        ?>

		/* <![CDATA[ */
		var edd_wl_vars = {
			"ajaxurl": 		"<?php 
        echo edd_get_ajax_url();
        ?>
",
			"edd_wl_nonce": "<?php 
        echo wp_create_nonce('edd_wl_nonce');
        ?>
"
		};
		/* ]]> */

		jQuery(document).ready(function ($) {

			jQuery(document).on( 'listShared', function(e) {

				if( e.url == window.location.href ) {

			    	var postData = {
			            action: 'share_list',
			            list_id: <?php 
        echo get_the_ID();
        ?>
, 
			            nonce: edd_scripts.ajax_nonce
			        };

			    	$.ajax({
			            type: "POST",
			            data: postData,
			            dataType: "json",
			            url: edd_wl_vars.ajaxurl,
			            success: function ( share_response ) {

		            	}
				        }).fail(function (data) {
				            console.log( data );
				        });
				}
			});
		});
	<?php 
    }
    ?>
	</script>
	<?php 
}
        /**
         * Print scripts
         *
         * @since 2.0
         */
        public function print_script()
        {
            global $edd_options;
            if (!self::$add_script) {
                return;
            }
            ?>
			<script type="text/javascript">

			<?php 
            /**
             * Twitter
             *
             * @since 2.0
             */
            if ($this->is_enabled('twitter')) {
                ?>
			  	window.twttr = (function (d,s,id) {
				  var t, js, fjs = d.getElementsByTagName(s)[0];
				  if (d.getElementById(id)) return; js=d.createElement(s); js.id=id;
				  js.src="https://platform.twitter.com/widgets.js"; fjs.parentNode.insertBefore(js, fjs);
				  return window.twttr || (t = { _e: [], ready: function(f){ t._e.push(f) } });
				}(document, "script", "twitter-wjs"));

				twttr.ready(function (twttr) {
				    twttr.events.bind('tweet', function (event) {
				        jQuery.event.trigger({
				            type: "productShared",
				            url: event.target.baseURI
				        });
				    });
				});

				<?php 
            }
            ?>

				<?php 
            /**
             * Google +
             *
             * @since 2.0
             */
            if ($this->is_enabled('googleplus')) {
                // defaults to en_US if left blank
                $locale = isset($edd_options['edd_sd_googleplus_locale']) && !empty($edd_options['edd_sd_googleplus_locale']) ? $edd_options['edd_sd_googleplus_locale'] : 'en-US';
                ?>
					window.___gcfg = {
					  lang: '<?php 
                echo $locale;
                ?>
',
					  parsetags: 'onload'
					};

					(function() {
					    var po = document.createElement('script'); po.type = 'text/javascript'; po.async = true;
					    po.src = 'https://apis.google.com/js/plusone.js';
					    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(po, s);
					  })();

					function plusOned(obj) {
						console.log(obj);
						jQuery.event.trigger({
						    type: "productShared",
						    url: obj.href
						});
					}
				<?php 
            }
            ?>

				<?php 
            /**
             * LinkedIn
             *
             * @since 2.0
             */
            if ($this->is_enabled('linkedin')) {
                ?>
					function share(url) {
						console.log(url);
					 	jQuery.event.trigger({
				            type: "productShared",
				            url: url
				        });
					}
				
				<?php 
            }
            ?>

				<?php 
            /**
             * Facebook
             *
             * @since 2.0
             */
            if ($this->is_enabled('facebook')) {
                // defaults to en_US if left blank
                $locale = isset($edd_options['edd_sd_facebook_locale']) && !empty($edd_options['edd_sd_facebook_locale']) ? $edd_options['edd_sd_facebook_locale'] : 'en_US';
                ?>

					(function(d, s, id) {
					     var js, fjs = d.getElementsByTagName(s)[0];
					     if (d.getElementById(id)) {return;}
					     js = d.createElement(s); js.id = id;
					     js.src = "//connect.facebook.net/<?php 
                echo $locale;
                ?>
/all.js";
					     fjs.parentNode.insertBefore(js, fjs);
					 }(document, 'script', 'facebook-jssdk'));

					window.fbAsyncInit = function() {
					    // init the FB JS SDK
					    FB.init({
					      status	: true,
					      cookie	: true,                               
					      xfbml		: true                              
					    });

					    FB.Event.subscribe('edge.create', function(href, widget) {
					        jQuery.event.trigger({
					            type: "productShared",
					            url: href
					        });     
					    });
					};
				<?php 
            }
            ?>

				<?php 
            /**
             * Listen for the productShared event
             *
             * @since 2.0
             */
            if ($this->is_enabled()) {
                ?>

				/* <![CDATA[ */
				var edd_social_discount_vars = {
					"ajaxurl": "<?php 
                echo edd_get_ajax_url();
                ?>
",
					"edd_sd_nonce": "<?php 
                echo wp_create_nonce('edd_sd_nonce');
                ?>
"
				};
				/* ]]> */

				jQuery(document).ready(function ($) {

					jQuery(document).on( 'productShared', function(e) {

					    	var postData = {
					            action: 'share_product',
					            product_id: <?php 
                echo get_the_ID();
                ?>
, // post the download's ID
					            nonce: edd_social_discount_vars.edd_sd_nonce
					        };

					    	$.ajax({
				            type: "POST",
				            data: postData,
				            dataType: "json",
				            url: edd_social_discount_vars.ajaxurl,
				            success: function ( share_response ) {

				                if( share_response ) {

				                    if ( share_response.msg == 'valid' ) {
										console.log('successfully shared');
										console.log( share_response );

										$('.edd_cart_discount').html( share_response.html );
                        				$('.edd_cart_discount_row').show();

                        				// update cart amounts with new total
										$('.edd_cart_amount').each(function() {
											$(this).text(share_response.total);
										});

				                       jQuery('.edd-sd-share .edd-sd-title').html( share_response.success_title );
				                       jQuery('.edd-sd-share .edd-sd-message').html( share_response.success_message );

				                       // add CSS class so the box can be styled
				                       jQuery('.edd-sd-share').addClass('shared');
				                    } 
				                    else {
				                        console.log('failed to share');
				                        console.log( share_response );
				                    }
				                } 
				                else {
				                    console.log( share_response );
				                }
				            }
				        }).fail(function (data) {
				            console.log( data );
				        });

					});
				});
			<?php 
            }
            ?>
			</script>
			<?php 
        }