PageSourceSearch

https://www.pbs.org.uk/wp-content/plugins/pmpro-toolkit/js/pmprodev-generate-checkout-info.js?ver=1.1.3

js pbs.org.uk collected 2026-09-24 09:34:13 UTC 3,406 bytes, 88 lines download raw bytes

1function pmprodev_generate_checkout_info( submit ) {
2	jQuery.noConflict().ajax({
3		url: 'https://randomuser.me/api/?nat=us',
4		dataType: 'json',
5		success: function( data ) {
6		const results = data['results'][0];
7
8		// Fill required fields.
9		jQuery('.pmpro_form_input-checkbox.pmpro_form_input-required').prop('checked', true);
10		jQuery('.pmpro_form_input-text.pmpro_form_input-required').val('Sample Text');
11		const today = new Date().toISOString().split('T')[0];
12		jQuery('.pmpro_form_input-date.pmpro_form_input-required').val( today );
13
14		// Generate email address
15		const username = results.name.first + '.' + results.name.last;
16		const base_email = jQuery('#pmprodev-base-email').val();
17		const at_index = base_email.indexOf("@");
18		const user_email = base_email.substring(0, at_index) + '+' + username + base_email.substring(at_index);
19
20		jQuery('#username').val( username );
21		jQuery('#password').val( username );
22		jQuery('#password2').val( username );
23		jQuery('#bemail').val( user_email );
24		jQuery('#bconfirmemail').val( user_email );
25		jQuery('#first_name').val( results.name.first );
26		jQuery('#last_name').val( results.name.last );
27		jQuery('#bfirstname').val( results.name.first );
28		jQuery('#blastname').val( results.name.last );
29		jQuery('#baddress1').val( results.location.street.number  + ' ' +  results.location.street.name );
30		jQuery('#bcity').val( results.location.city );
31		jQuery('#bstate').val( results.location.state );
32		jQuery('#bzipcode').val( results.location.postcode );
33		jQuery('#bcountry').val( 'US' );
34		jQuery('#bphone').val( results.phone );
35		jQuery('#pmpro_sfirstname').val( results.name.first );
36		jQuery('#pmpro_slastname').val( results.name.last );
37		jQuery('#pmpro_saddress1').val( results.location.street.number  + ' ' +  results.location.street.name );
38		jQuery('#pmpro_scity').val( results.location.city );
39		jQuery('#pmpro_sstate').val( results.location.state );
40		jQuery('#pmpro_szipcode').val( results.location.postcode );
41		jQuery('#pmpro_scountry').val( 'US' );
42		jQuery('#pmpro_sphone').val( results.phone );
43		jQuery('#pmpromd_street_name').val( results.location.street.number  + ' ' +  results.location.street.name );
44		jQuery('#pmpromd_city').val( results.location.city );
45		jQuery('#pmpromd_state').val( results.location.state );
46		jQuery('#pmpromd_zip').val( results.location.postcode );
47		jQuery('#pmpromd_country').val( 'US' );
48		jQuery('#AccountNumber').val( "4242424242424242" );
49		const nextYear = new Date().getFullYear() + 1;
50		jQuery('#ExpirationYear').val( nextYear );
51		jQuery('#CVV').val( "123" );
52
53		if ( submit ) {
54			jQuery('.pmpro_btn-submit-checkout').click();
55		}
56		}
57	});
58}
59
60/**
61 * jQuery ready function.
62 */
63jQuery(document).ready(function ( $ ) {
64	$('#pmprodev-generate').click(function () {
65		pmprodev_generate_checkout_info();
66	});
67
68	$('#pmprodev-generate-submit').click(function () {
69		pmprodev_generate_checkout_info( true );
70	});
71
72	/**
73
74	 * Enable the generate button if the email address is valid.
75	 */
76	$('#pmprodev-base-email').change(function () {
77		const email = $(this).val();
78		if ( email.includes('@')) {
79			//Enable the generate button
80			$('#pmprodev-generate').prop('disabled', false);
81			$('#pmprodev-generate-submit').prop('disabled', false);
82		} else {
83			//Disable the generate button
84			$('#pmprodev-generate').prop('disabled', true);
85			$('#pmprodev-generate-submit').prop('disabled', true);
86		}
87	});
88});

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.