PageSourceSearch

https://press-herald.com/wp-content/plugins/leaky-paywall-quick-register/includes/js/script.js

js press-herald.com collected 2026-10-02 08:00:10 UTC 4,848 bytes, 145 lines download raw bytes

1( function( $ )  {
2
3	$(window).on('load', function() {
4
5        waitForElm('#leaky-paywall-quick-register-form').then((elm) => {
6
7           $('#leaky-paywall-quick-register-form').submit(function(e) {
8            e.preventDefault();
9
10            $('#leaky-paywall-quick-register-errors').html('');
11            $('#leaky-paywall-quick-register-form input[type="submit"]').attr('disabled', true ).val(leaky_paywall_quick_register.continue_text);
12
13            const form_data = $("#leaky-paywall-quick-register-form").serialize();
14            let email = $('#leaky-paywall-quick-register-form .email').val() || '';
15            let password = $('#leaky-paywall-quick-register-form .password').val() || '';
16            let first_name = $('#leaky-paywall-quick-register-form .first-name').val() || '';
17            let last_name = $('#leaky-paywall-quick-register-form .last-name').val() || '';
18            let username = $('#leaky-paywall-quick-register-form .username').val() || '';
19            let level_id = $('#leaky-paywall-quick-register-form input[name="level_id"]').val() || '';
20            let website = $('#leaky-paywall-quick-register-form input[name="company_url"]').val() || '';
21
22            let formdata = {
23                email: email,
24                password: password,
25                first_name: first_name,
26                last_name: last_name,
27                username: username,
28                level_id: level_id,
29                company_url: website,
30                form_data: form_data,
31                post_id: get_nag_loc()
32            };
33
34            fetch(leaky_paywall_quick_register.rest_url, {
35                method: 'POST',
36                credentials: 'same-origin',
37                headers: {
38                    'Content-Type': 'application/json',
39                    'X-WP-Nonce': leaky_paywall_quick_register.nonce,
40                },
41                body: JSON.stringify({
42                    data: formdata
43                })
44                })
45                .then(response => response.json())
46                .then(data => {
47                if (data.success) {
48                    console.log('QR Success!');
49
50                    try { localStorage.removeItem('lp_viewed_content'); } catch(e) {}
51
52                    const event = new CustomEvent('lpqrsuccess', {
53                        detail: data
54                    });
55                    document.dispatchEvent(event);
56
57                    $('#leaky_paywall_message').html( data.response );
58
59                    setTimeout( function() {
60                        window.location.replace( data.redirect_to );
61                    }, 2000 );
62
63                } else {
64                    console.error('QR Error:', data.message);
65                     $('#leaky-paywall-quick-register-form input[type="submit"]').attr('disabled', false ).val(leaky_paywall_quick_register.submit_text);
66
67                     $('#leaky-paywall-quick-register-errors').html('<p>' + data.message + '</p>');
68                }
69            })
70            .catch(error => {
71                console.error('QR Fetch Error:', error);
72                $('#leaky-paywall-quick-register-form input[type="submit"]').attr('disabled', false ).val(leaky_paywall_quick_register.submit_text);
73                $('#leaky-paywall-quick-register-errors').html('<p>An error occurred. Please try again.</p>');
74            });
75
76        });
77        });
78
79
80	});
81
82    function get_nag_loc() {
83
84        let nag_loc = '';
85        let bodyClasses = $('body').attr('class');
86
87        if (!bodyClasses) {
88            return nag_loc;
89        }
90
91        bodyClasses = bodyClasses.split(' ');
92
93        $.each(bodyClasses, function(i, value) {
94
95            if ( !value.search('postid' ) ) {
96
97                let classArray = value.split('-');
98                let post_id = parseInt( classArray[1] );
99
100                if ( post_id > 0 ) {
101                    nag_loc = post_id;
102                }
103
104            }
105
106            // for pages
107            if ( !value.search('page-id' ) ) {
108
109                let classArray = value.split('-');
110                let post_id = parseInt( classArray[2] );
111
112                if ( post_id > 0 ) {
113                    nag_loc = post_id;
114                }
115
116            }
117
118        });
119
120        return nag_loc;
121
122    }
123
124    function waitForElm(selector) {
125    return new Promise(resolve => {
126        if (document.querySelector(selector)) {
127            return resolve(document.querySelector(selector));
128        }
129
130        const observer = new MutationObserver(mutations => {
131            if (document.querySelector(selector)) {
132                resolve(document.querySelector(selector));
133                observer.disconnect();
134            }
135        });
136
137        observer.observe(document.body, {
138            childList: true,
139            subtree: true
140        });
141    });
142}
143
144
145})( jQuery );

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.