PageSourceSearch

https://welcomehomergv.com/wp-content/plugins/directorist-woocomme…/assets//js/plan-validator.js?ver=1

js welcomehomergv.com collected 2026-10-02 17:32:28 UTC 14,889 bytes, 375 lines download raw bytes

1jQuery(document).ready(function ($) {
2    function to_top(top) {
3        $([document.documentElement, document.body]).animate({
4            scrollTop: $(top).offset().top
5        }, 1000);
6    }
7
8    const qs = (function (a) {
9        if (a == '') return {};
10        const b = {};
11        for (let i = 0; i < a.length; ++i) {
12            const p = a[i].split('=', 2);
13            if (p.length == 1) b[p[0]] = '';
14            else b[p[0]] = decodeURIComponent(p[1].replace(/\+/g, ' '));
15        }
16        return b;
17    })(window.location.search.substr(1).split('&'));
18
19    $('.at-modal').on('click', function( e ) {
20        if ( e.currentTarget === e.target) {
21            reset_form();
22        }
23    });
24
25    $('.at-modal-close').on('click', function(){
26        reset_form();
27    });
28
29    function reset_form() {
30        var inputs = $('.at-modal input');
31
32        for ( var i = 0; i < inputs.length; i++ ) {
33            var inp = inputs[i];
34            var input_type = inp.type;
35
36            if ( 'radio' === input_type ) {
37                inp.checked = false;
38            }
39        }
40
41        $('#directorist-allowances').html('');
42    }
43
44    $('.listing_submit_btn').on('click', function () {
45        $('.atpp_required').css({display: "none"});
46        var error_messege = '<span class="atpp_required atbdp_make_str_red"><i class="fa fa-exclamation-triangle"></i> You have crossed the limit!</span> ';
47
48        //Price
49        var pynPrice = $("input[name='price']");
50        var price_limit = plan_validator.price_limit;
51        price_limit = parseFloat(price_limit);
52        if (pynPrice.length > 0) {
53            var price = pynPrice.val();
54            price = parseFloat(price);
55            if (price > price_limit) {
56                pynPrice.after(error_messege);
57                to_top(pynPrice);
58                return false;
59            }
60        }
61        //tag
62        var tag = $("#at_biz_dir-tags").val();
63        var tag_number = $(tag).length;
64        var tag_limit = parseInt(plan_validator.tag_limit);
65        if (tag_number > tag_limit) {
66            $("#atbdp_tags").append(error_messege);
67            to_top('#atbdp_tags');
68            return false;
69        }
70
71    });
72
73
74     //show plan allowance
75     $('#directorist-allowances').hide();
76     $('body').on('change' , 'input[name="new_plan"]' , function(e){
77        e.preventDefault();
78        e.stopPropagation();
79        var parent = $(this).closest('.atbd_modal-contents');
80        parent.addClass('dwpp-loading');
81        var data = {
82            'action': 'plan_allowances',
83            'plan_id': $(this).val(),
84            'post_id': $('#change_listing_id').val(),
85        };
86
87        $('.atbd_modal_btn').addClass("directorist-pricing-disabled");
88        $('.atbd_modal_btn').attr("disabled", "true");
89
90        $.post(plan_validator.ajaxurl, data, function (response) {
91            if (response.html){
92                $('#directorist-allowances').show();
93                $('#directorist-allowances').html(response.html);
94            }else{
95                $('#directorist-allowances').html(' ');
96            }
97            parent.removeClass('dwpp-loading');
98            $('.dcl_pricing_plan_name').removeClass('dcl-loading');
99            $('.atbd_modal_btn').removeClass("directorist-pricing-disabled");
100            $('.atbd_modal_btn').removeAttr("disabled");
101        });
102    });
103
104    $('body').on('click', '.atpp_change_plan', function () {
105        var listingID = $(this).attr('data-listing_id');
106        var isRenewal = $(this).attr('data-is-renewal') === '1';
107        $('#change_listing_id').val(listingID);
108
109        // Update modal labels based on context
110        if (isRenewal) {
111            $('#dwpp-plan-label').text(plan_validator.renew_title || 'Renew Plan');
112            $('#dwpp-plan-submit-btn').text(plan_validator.renew_btn || 'Renew');
113        } else {
114            $('#dwpp-plan-label').text(plan_validator.change_title || 'Change Pricing Plan');
115            $('#dwpp-plan-submit-btn').text(plan_validator.change_btn || 'Change');
116        }
117
118        var data = {
119            'action': 'dwpp_changing_plan',
120            'listingID': listingID,
121        };
122
123        $.post(plan_validator.ajaxurl, data, function (response) {
124            if( response.template ){
125                $(".dcl_pricing_plan").empty().append( response.template );
126            }
127        }, 'json');
128
129    });
130
131    //changing plan
132    $('body').on('click', '.dwpp_change_plan', function () {
133        var listingID = $(this).attr('data-listing_id');
134        $('#change_listing_id').val(listingID);
135    });
136
137    $('.at-modal-close').on('click', function () {
138        $('#dwpp-change-plan-form').children('input').val('');
139        $('#dcl-claim-submit-notification').html('');
140    });
141
142    $('#dwpp-change-plan-form').on('submit', function (e) {
143        e.preventDefault();
144        if ( $( '.text-warning' ) )
145        {
146            $('#dcl-claim-warning-notification').removeClass('text-warning').html("");
147        }
148        
149        var pricingPlans = $("input[name='new_plan']");
150        var isAnyPlanSelected = false;
151
152        pricingPlans.each(function() {
153            if ($(this).prop('checked')) {
154                isAnyPlanSelected = true;
155                return false; // Exit the loop since we found a plan is selected
156            }
157        });
158
159        if ( !isAnyPlanSelected )
160        {
161            $('#dcl-claim-warning-notification').addClass('text-warning').html("Please select a plan to continue!");
162        }
163        else
164        {
165            var active_elm = $( '.dpp-order-select-dropdown ul' ).find( '.active' );
166            var data = {
167                'action': 'dwpp_submit_changing_plan',
168                'post_id': $('#change_listing_id').val(),
169                'plan_id' : $("input[name='new_plan']:checked").val(),
170                'order_id' : active_elm.length ? active_elm.attr('data-value') : '',
171                'listing_type' : $("input[name='listing_type']:checked").val(),
172            };
173            $.post(plan_validator.ajaxurl, data, function (response) {
174                if(response.validation_error){
175                    $('#dcl-claim-warning-notification').addClass('text-warning').html(response.validation_error);
176                }else{
177
178                    if (response.take_payment === 'plan') {
179                        window.location.href = response.checkout_url;
180                    } else {
181                        $('#dcl-claim-submit-notification').addClass('text-success').html(response.message);
182                        location.reload();
183                    }
184                }
185
186                document.getElementById("dwpp-change-plan-form").reset();
187            }, 'json');
188        }
189    });
190
191    //renewing listing
192    $('.atbdp_renew_with_plan').on('click', function () {
193        var listingID = $(this).attr('data-listing_id');
194        $('#change_listing_id').val(listingID);
195    });
196
197    dwpp_renew_plan_submitter = false;
198    $('#dwpp-renew-plan-form').on('submit', function (e) {
199        if (dwpp_renew_plan_submitter) return false;
200        dwpp_renew_plan_submitter = true;
201        // Check for errors
202        if (!e.isDefaultPrevented()) {
203            e.preventDefault();
204            // Post via AJAX
205            var data = {
206                'action': 'dwpp_submit_changing_plan',
207                'post_id': $('#change_listing_id').val(),
208                'plan_id' : $("input[name='new_plan']:checked").val(),
209                'listing_type' : $("input[name='listing_type']:checked").val(),
210            };
211            $.post(plan_validator.ajaxurl, data, function (response) {
212                if (response.take_payment === 'plan') {
213                    window.location.href = response.checkout_url;
214                } else {
215                    var successMsg = response.renew_info || response.message || '';
216                    $('#dcl-plan-renew-notification').addClass('text-success').html(successMsg);
217                    location.reload();
218                }
219                var errMsg = response.duplicate_msg || response.validation_error || '';
220                if (errMsg) {
221                    $('#dcl-claim-warning-notification').addClass('text-warning').html(errMsg);
222                }
223                dwpp_renew_plan_submitter = false; // Re-enable the submit event
224            }, 'json');
225        }
226    });
227
228    $( 'body' ).on( 'click', '.directorist_required_login', function( e ){
229        e.preventDefault();
230        let _this = $(this);
231        $('.dpp-email-warning').remove();
232        _this.closest('.directorist-pricing__action').append('<span class="dpp-email-warning">' + plan_validator.login_alert + '</span>');
233        return;
234    });
235
236    let guestInput = '<div style="margin-bottom: 10px;" class="directorist-form-group directorist_plan_guest_email"><input type="email" name="guest_customer_email" class="directorist-form-element guest_customer_email" placeholder="'+ plan_validator.email_placeholder +'" required /></div>';
237    $( 'body' ).on( 'click', '.directorist_required_email', function( e ){
238        e.preventDefault();
239        let _this = $(this);
240        $('.directorist_plan_guest_email').remove();
241        $(this).closest('.directorist-pricing__action').before(guestInput);
242        return;
243    });
244
245    $( 'body' ).on( 'keyup', '.guest_customer_email', function( e ){        
246        $('.directorist-pricing__action--btn').removeClass('directorist_required_email');
247    });
248
249
250    if( plan_validator.guest_customer ){
251        $( 'body' ).on( 'click', '.directorist-pricing__action--btn', function( e ){
252
253            if( ! $('.guest_customer_email').val() ) {
254                return;
255            }
256
257            e.preventDefault();
258            let _this = $(this);
259            let email       = $('.guest_customer_email').val();
260            let plan        = $(this).closest( 'div.directorist-pricing__action').find( 'input[name="fm_plans"]' ).val();
261            let url         = $(this).attr( 'href' );
262            var form_data   = new FormData();
263
264            form_data.append('action', 'guest_customer');
265            form_data.append('email', email);
266            form_data.append('plan_id', plan);
267
268            $.ajax({
269                method: 'POST',
270                processData: false,
271                contentType: false,
272                url: plan_validator.ajaxurl,
273                data: form_data,
274                success: function (response) {
275                    if( response.error ){
276                        _this.closest('.directorist-pricing__action').append('<span class="dpp-email-warning">' + response.error_msg + '</span>');
277                    }else{
278                        window.location.href = response.redirect_url;
279                    }
280                    $(_this).removeClass('directorist-pricing__action--btn-loading');
281                },
282                error: function (error) {
283                    //console.log(error);
284                },
285                complete: function () {
286                    $('#directorist-type-preloader').hide();
287                    $(_this).removeClass('directorist-pricing__action--btn-loading');
288                }
289            });
290        });
291    }
292
293    if( plan_validator.direct_purchase ){
294        $( 'body' ).on( 'click', '.directorist-pricing__action--btn', function( e ){
295            if( ! $('.guest_customer_email').val() ) {
296                return;
297            }
298            e.preventDefault();
299            let _this = $(this);
300
301            let url         = $(this).attr( 'href' );
302            let is_active   = $(this).attr( 'data-active_status' );
303            let plan        = $(this).closest( 'div.directorist-pricing__action').find( 'input[name="fm_plans"]' ).val();
304            var form_data   = new FormData();
305
306            form_data.append('action', 'plan_direct_purchase');
307            form_data.append('plan_id', plan);
308
309            $.ajax({
310                method: 'POST',
311                processData: false,
312                contentType: false,
313                url: plan_validator.ajaxurl,
314                data: form_data,
315                success: function (response) {
316
317                    window.location.href = is_active ? url : response.redirect_url;
318
319                    $(_this).removeClass('directorist-pricing__action--btn-loading');
320                },
321                error: function (error) {
322                    //console.log(error);
323                },
324                complete: function () {
325                    $('#directorist-type-preloader').hide();
326                    $(_this).removeClass('directorist-pricing__action--btn-loading');
327                }
328            });
329        });
330    }
331
332
333    $('body').on('click','.dpp-order-select-dropdown ul li a', function(){
334        $(this).parent('li').siblings().children().removeClass('active');
335        $(this).addClass('active');
336        var form_data   = new FormData();
337        var order_id    = $( this ).attr('data-value');
338        var general_label = $(this).closest('.dpp-order-select-dropdown').attr('data-general_label');
339        var featured_label = $(this).closest('.dpp-order-select-dropdown').attr('data-featured_label');
340        var label = $(this).closest('.dpp-order-select-dropdown').attr('data-label');
341        var plan    = $("input[name='new_plan']:checked").val();
342        var plan_id     = qs.plan ? qs.plan : plan;
343        form_data.append('action', 'select_active_order');
344        form_data.append('order_id', order_id);
345        form_data.append('general_label', general_label);
346        form_data.append('featured_label', featured_label);
347        form_data.append('label', label);
348        form_data.append('plan_id', plan_id);
349        $('.atbd_modal_btn').addClass("directorist-pricing-disabled");
350        $('.atbd_modal_btn').attr("disabled", "true");
351        $.ajax({
352            method: 'POST',
353            processData: false,
354            contentType: false,
355            url: plan_validator.ajaxurl,
356            data: form_data,
357            success: function (response) {
358                let content_area = $( '.dpp-order-select-wrapper' );
359                $( '.directorist-listing-type' ).remove();
360                $( content_area ).after( response );
361                $('.dpp-selected-order-listing-type .atbdp_make_str_green, .dpp-selected-order-listing-type .atbdp_make_str_red').addClass('dpp-selected-order-listing-type--highlight');
362                $('.atbd_modal_btn').removeClass("directorist-pricing-disabled");
363                $('.atbd_modal_btn').removeAttr("disabled");
364                setTimeout(() => {
365                    $('.dpp-selected-order-listing-type .atbdp_make_str_green, .dpp-selected-order-listing-type .atbdp_make_str_red').removeClass('dpp-selected-order-listing-type--highlight');
366                }, 2300);
367            },
368            error: function (error) {
369                //console.log(error);
370            },
371        });
372    });
373
374
375});

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.