<?php /** * Coupon code view. * * @since 2.0.0 */ ?> <?php if (isset($_GET['coupon']) && wu_get_coupon($_GET['coupon']) !== false && isset($_GET['step']) && 'plan' == $_GET['step']) : $coupon = wu_get_coupon($_GET['coupon']); ?> <div id="coupon-code-app"> </div> <script> (function($) { var coupon_app = new Vue({ el: "#coupon-code-app", data: { coupon_id: '', coupon: '<?php echo json_encode($coupon); ?>', type : '<?php echo json_encode(get_post_meta($coupon->id, 'wpu_type', true)); ?>', value : parseFloat(<?php echo json_encode(get_post_meta($coupon->id, 'wpu_value', true)); ?>), applies_to_setup_fee : <?php echo json_encode(get_post_meta($coupon->id, 'wpu_applies_to_setup_fee', true)); ?>, setup_fee_discount_value : parseFloat(<?php echo json_encode(get_post_meta($coupon->id, 'wpu_setup_fee_discount_value', true)); ?>), setup_fee_discount_type : '<?php echo json_encode(get_post_meta($coupon->id, 'wpu_setup_fee_discount_type', true)); ?>', allowed_plans : '<?php echo json_encode(get_post_meta($coupon->id, 'wpu_allowed_plans', true)); ?>', allowed_freqs : '<?php echo json_encode(get_post_meta($coupon->id, 'wpu_allowed_freqs', true)); ?>', success: false, }, mounted: function() { this.apply_coupon(); this.add_event_tabs(); }, methods: { add_event_tabs: function() { $('.wu-plans-frequency-selector li a').each(function() { this.addEventListener('click',function() { coupon_app.apply_coupon(); }); }); }, apply_coupon: function() { if(this.coupon) { $("body").block({ message: null, overlayCSS: { background: "#F1F1F1", opacity: 0.6 } }); this.coupon_id = this.coupon.id; var coupon_type = this.type; var coupon_value = this.value; var applies_to_setup_fee = this.applies_to_setup_fee; var setup_fee_discount_value = this.setup_fee_discount_value; var setup_fee_discount_type = this.setup_fee_discount_type; var allowed_plans = $.parseJSON(this.allowed_plans); var allowed_freqs = $.parseJSON(this.allowed_freqs); //$('#signupform').append($('#coupon_id')); $('.superscript').show(); $('h5 sub').show(); setTimeout( function() { $('.wu-plan').each(function() { if (!$(this).find('.old-price').get(0)) { $(this).find('h4').after('<div class="old-price">--</div>'); } // end if; let plan_id = $(this).data('plan'); let is_allowed_plan = false; let is_allowed_freq = false; // check plan is_allowed if (typeof allowed_plans === 'object'){ for (var each_plan of allowed_plans) { if (parseInt(each_plan) == plan_id) { is_allowed_plan = true; } } // end for; } else { is_allowed_plan = true; } // check freq is_allowed if (typeof allowed_freqs === 'object'){ for (var each_freq of allowed_freqs) { if (each_freq == $('#wu_plan_freq').val()) { is_allowed_freq = true; } } // end for; } else { is_allowed_freq = true; } if (!is_allowed_plan) { $("body").unblock(); return; } // end if; if (!is_allowed_freq) { $("body").unblock(); $(".old-price").hide(); $(".off-value").hide(); return; } else { $(".old-price").show(); $(".off-value").show(); } let old_price = $(this).data('price-' + $('#wu_plan_freq').val()); old_price = wu_fix_money_string(old_price); let new_price = 0; let old_yearly_value = old_price * jQuery('#wu_plan_freq').val(); let new_yearly_value = 0; let old_setupfee = $(this).find('.pricing-table-setupfee') ? $(this).find('.pricing-table-setupfee').attr('data-value') : 0; let new_setupfee = 0; let off_with_symbol = ''; // OFF RENDER if (coupon_type != '"absolute"') off_with_symbol = ''.concat(coupon_value, '%'); else off_with_symbol = accounting.formatMoney(parseFloat(coupon_value)); $(this).find('.old-price').html(accounting.formatMoney(parseFloat(old_price))); if (!$(this).find('.off-value').get(0)) { $(this).find('.old-price').after('<div class="off-value">(' + off_with_symbol + ' ' + '<?php _e('OFF', 'wp-ultimo'); ?>' + ')</div>'); } if(applies_to_setup_fee) { if (setup_fee_discount_type != '"absolute"') setupfee_off_with_symbol = ''.concat(setup_fee_discount_value, '%'); else setupfee_off_with_symbol = accounting.formatMoney(parseFloat(setup_fee_discount_value)); if (!$(this).find('.setupfee-off-value').get(0)) { $(this).find('.pricing-table-setupfee').after('<span class="setupfee-off-value"> (' + setupfee_off_with_symbol + ' ' + '<?php _e('OFF', 'wp-ultimo'); ?>' + ')</span>'); } } // END OFF RENDER if(coupon_type != '"absolute"') { new_price = old_price * ((100 - coupon_value) / 100); new_yearly_value = old_yearly_value * ((100 - coupon_value) / 100); } else { if(jQuery('#wu_plan_freq').val() > 1){ new_price = ((old_price * jQuery('#wu_plan_freq').val()) - parseFloat(coupon_value)) / jQuery('#wu_plan_freq').val(); new_yearly_value = old_yearly_value - parseFloat(coupon_value); } else { new_price = old_price - parseFloat(coupon_value); new_yearly_value = old_yearly_value - parseFloat(coupon_value); } } // end if; if (applies_to_setup_fee) { if (setup_fee_discount_type != '"absolute"') { new_setupfee = old_setupfee * ((100 - setup_fee_discount_value) / 100); } else { new_setupfee = old_setupfee - parseFloat(setup_fee_discount_value); } // end if; } else { new_setupfee = old_setupfee; } // end if; if (new_yearly_value > 0) { wu_set_yearly_value(this, new_yearly_value); } else { $(this).find('.total-price.total-price-' + $('#wu_plan_freq').val() ).html(' <?php esc_js(_e('Free!', 'wp-ultimo')); ?>'); } if (new_setupfee > 0) { wu_set_setupfee_value(this, new_setupfee); } else { $(this).find('.pricing-table-setupfee').html(' <?php esc_js(_e('No Setup Fee', 'wp-ultimo')); ?>'); } if (new_price > 0) { $(this).find('.plan-price').html( accounting.formatMoney( parseFloat(new_price) ) ); if ( $(this).find('.plan-price').html().indexOf(wpu.currency_symbol) !== -1 ) { $(this).find('.plan-price').html($(this).find('.plan-price').html().replace(wpu.currency_symbol, '')); } } else { let plan_price = $(this).find('.plan-price'); plan_price.html(' <?php esc_js(_e('Free!', 'wp-ultimo')); ?>'); let hagacinco = $(this).find('h5'); hagacinco.find('sub').hide(); hagacinco.find('.superscript').hide(); } $("body").unblock(); }); }, 400); } else { $('.old-price').hide(); this.coupon_id = ''; $('.wu-plan').each(function() { var price = $(this).data('price-' + $('#wu_plan_freq').val()); $(this).find('.plan-price').html( price ); }); } } } }); })(jQuery); function wu_fix_money_string(value) { if(typeof value == 'number'){ value = value.toString(); } return parseFloat(value.replace(wpu.thousand_separator, '').replace(wpu.decimal_separator, '.')); } function wu_set_setupfee_value(list, value) { jQuery(list).find('.pricing-table-setupfee').html( accounting.formatMoney(value)); } function wu_set_yearly_value(list, value) { var current_freq = jQuery('#wu_plan_freq').val(); var string = jQuery(list).find('.total-price.total-price-' + current_freq).html(); if (string) { var parts = string.split(','); var result = accounting.formatMoney(parseFloat(value)) + ', ' + parts[1]; jQuery(list).find('.total-price.total-price-' + current_freq).html(result); } } </script> <?php endif; // wp_enqueue_style('wub-checkout', WP_Ultimo_Billwerk()->get_asset('checkout.min.css', 'css'), false); ?>