PageSourceSearch

https://rachelonrecovery.com/wp-content/plugins/convertkit/resources/frontend/js/convertkit.js?ver=2.0.7

js rachelonrecovery.com collected 2026-10-02 16:11:52 UTC 6,180 bytes, 251 lines download raw bytes

1/**
2 * Frontend functionality for subscribers and tags.
3 *
4 * @since   1.9.6
5 *
6 * @package ConvertKit
7 * @author ConvertKit
8 */
9
10/**
11 * Tags the given subscriber ID with the given tag
12 *
13 * @since   1.9.6
14 *
15 * @param   int     subscriber_id   Subscriber ID
16 * @param   string  tag             Tag
17 * @param   int     post_id         WordPress Post ID
18 */
19function convertKitTagSubscriber( subscriber_id, tag, post_id ) {
20
21	if ( convertkit.debug ) {
22		console.log( 'convertKitTagSubscriber' );
23		console.log( convertkit );
24		console.log( subscriber_id );
25		console.log( tag );
26		console.log( post_id );
27	}
28
29	( function( $ ) {
30
31		$.ajax(
32			{
33				type: 'POST',
34				data: {
35					action: 'convertkit_tag_subscriber',
36					convertkit_nonce: convertkit.nonce,
37					subscriber_id: subscriber_id,
38					tag: tag,
39					post_id: post_id
40				},
41				url: convertkit.ajaxurl,
42				success: function ( response ) {
43					if ( convertkit.debug ) {
44						console.log( response );
45					}
46					convertKitRemoveSubscriberIDFromURL( window.location.href );
47				}
48			}
49		).fail(
50			function (response) {
51				if ( convertkit.debug ) {
52					console.log( response );
53				}
54				convertKitRemoveSubscriberIDFromURL( window.location.href );
55			}
56		);
57
58	} )( jQuery );
59
60}
61
62/**
63 * Gets the subscriber ID for the given email address, storing
64 * it in the `ck_subscriber_id` cookie if it exists.
65 *
66 * Typically called when the user completes a ConvertKit Form
67 * that has either "Auto-confirm new subscribers" or
68 * "Send subscriber to thank you page" enabled (both scenarios
69 * include a ck_subscriber_id).
70 *
71 * @since   1.9.6
72 *
73 * @param   int  id   Subscriber ID
74 */
75function convertStoreSubscriberIDInCookie( subscriber_id ) {
76
77	if ( convertkit.debug ) {
78		console.log( 'convertStoreSubscriberIDInCookie' );
79		console.log( subscriber_id );
80	}
81
82	( function( $ ) {
83
84		$.ajax(
85			{
86				type: 'POST',
87				data: {
88					action: 'convertkit_store_subscriber_id_in_cookie',
89					convertkit_nonce: convertkit.nonce,
90					subscriber_id: subscriber_id
91				},
92				url: convertkit.ajaxurl,
93				success: function ( response ) {
94					if ( convertkit.debug ) {
95						console.log( response );
96					}
97
98					convertKitRemoveSubscriberIDFromURL( window.location.href );
99				}
100			}
101		).fail(
102			function (response) {
103				if ( convertkit.debug ) {
104					console.log( response );
105				}
106
107				convertKitRemoveSubscriberIDFromURL( window.location.href );
108			}
109		);
110
111	} )( jQuery );
112
113}
114
115/**
116 * Gets the subscriber ID for the given email address, storing
117 * it in the `ck_subscriber_id` cookie if it exists.
118 *
119 * Typically called when the user completes a ConvertKit Form
120 * that has either "Auto-confirm new subscribers" or
121 * "Send subscriber to thank you page" enabled (both scenarios
122 * include a ck_subscriber_id).
123 *
124 * @since   1.9.6
125 *
126 * @param   string  emailAddress   Email Address
127 */
128function convertStoreSubscriberEmailAsIDInCookie( emailAddress ) {
129
130	if ( convertkit.debug ) {
131		console.log( 'convertStoreSubscriberEmailAsIDInCookie' );
132		console.log( emailAddress );
133	}
134
135	( function( $ ) {
136
137		$.ajax(
138			{
139				type: 'POST',
140				data: {
141					action: 'convertkit_store_subscriber_email_as_id_in_cookie',
142					convertkit_nonce: convertkit.nonce,
143					email:  emailAddress
144				},
145				url: convertkit.ajaxurl,
146				success: function ( response ) {
147					if ( convertkit.debug ) {
148						console.log( response );
149					}
150				}
151			}
152		).fail(
153			function (response) {
154				if ( convertkit.debug ) {
155					console.log( response );
156				}
157			}
158		);
159
160	} )( jQuery );
161
162}
163
164/**
165 * Remove the url subscriber_id url param
166 *
167 * The 'ck_subscriber_id' should only be set on URLs included on
168 * links from a ConvertKit email with no other URL parameters.
169 * This function removes the parameters so a customer won't share
170 * a URL with their subscriber ID in it.
171 *
172 * @param url
173 */
174function convertKitRemoveSubscriberIDFromURL( url ) {
175
176	var clean_url = url.substring( 0, url.indexOf( "?ck_subscriber_id" ) );
177	var title     = document.getElementsByTagName( "title" )[0].innerHTML;
178	if ( clean_url ) {
179		window.history.pushState( null, title, clean_url );
180	}
181
182}
183
184/**
185 * Utility function to pause for the given number of milliseconds
186 *
187 * @since   1.9.6
188 *
189 * @param   int     milliseconds
190 */
191function convertKitSleep( milliseconds ) {
192
193	var start = new Date().getTime();
194	for (var i = 0; i < 1e7; i++) {
195		if ((new Date().getTime() - start) > milliseconds) {
196			break;
197		}
198	}
199
200}
201
202/**
203 * Register events
204 */
205jQuery( document ).ready(
206	function( $ ) {
207
208		if ( convertkit.subscriber_id > 0 && convertkit.tag && convertkit.post_id ) {
209			// If the user can be detected as a ConvertKit Subscriber (i.e. their Subscriber ID is in a cookie or the URL),
210			// and the Page/Post they are viewing has a Tag specified, subscribe them to the tag.
211			convertKitTagSubscriber( convertkit.subscriber_id, convertkit.tag, convertkit.post_id );
212		} else if ( convertkit.subscriber_id > 0 ) {
213			// If the user can be detected as a ConvertKit Subscriber (i.e. their Subscriber ID is in a cookie or the URL),
214			// update the cookie now.
215			convertStoreSubscriberIDInCookie( convertkit.subscriber_id );
216		}
217
218		// Store subscriber ID as a cookie from the email address used when a ConvertKit Form is submitted.
219		$( document ).on(
220			'click',
221			'.formkit-submit',
222			function() {
223				var emailAddress = $( 'input[name="email_address"]' ).val();
224
225				// If the email address is empty, don't attempt to get the subscriber ID by email.
226				if ( ! emailAddress.length ) {
227					if ( convertkit.debug ) {
228						console.log( 'email empty' );
229					}
230
231					return;
232				}
233
234				// If the email address is invalid, don't attempt to get the subscriber ID by email.
235				var validator = /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
236				if ( ! validator.test( emailAddress.toLowerCase() ) ) {
237					if ( convertkit.debug ) {
238						console.log( 'email not an email address' );
239					}
240
241					return;
242				}
243
244				// Wait a moment before sending the AJAX request.
245				convertKitSleep( 2000 );
246				convertStoreSubscriberEmailAsIDInCookie( emailAddress );
247			}
248		);
249
250	}
251);

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.