(function ($){ $.extend({ AdvanceWooDiscountRules: { form: null, product_id: null, quantity: 0, options: [], target: null, getDynamicDiscountPriceFromCartForm: function($form, $target, $options){ if(typeof $options!=='undefined'){ this.options=$options; } if(typeof $target!=='undefined'){ this.target=$target; } if(typeof $form!=='undefined'&&$form.is('form')){ this.form=$form; }else{ this.logError("Incorrect form provided"); } this.product_id=this.getProductIdFromForm(); this.quantity=this.getProductQuantityFromForm(); this.getDiscountPriceForProduct(); }, getDiscountPriceForProduct: function (){ if(this.product_id===null||this.product_id==0){ this.logError("Invalid product"); return []; } var data={ action: 'awdr_get_product_discount', product_id: this.product_id, qty: this.quantity, awdr_nonce: awdr_params.nonce, }; if(typeof this.options.custom_price!=='undefined'){ data.custom_price=this.options.custom_price; } var $target=this.target; var $options=this.options; $.ajax({ url: awdr_params.ajaxurl, data: data, type: 'POST', success: function (response){ $(document.body).trigger("advanced_woo_discount_rules_on_get_response_for_dynamic_discount", [ response, $target, $options ]); }, error: function (response){ }}); }, getProductIdFromForm: function (){ var variationIdEl=this.form.find('[name="variation_id"]'); var productIdEl=this.form.find('[name="add-to-cart"]'); if(variationIdEl.length){ return parseInt(variationIdEl.val()); }else if(productIdEl.length){ return parseInt(productIdEl.val()); } return false; }, getProductQuantityFromForm: function (){ var $input=this.form.find('input[name="quantity"]'); if($input.length===0){ return 0; } return $input.val(); }, logError: function($text){ console.error("Advance discount rule error: %s", $text); }} }); })(jQuery);