PageSourceSearch

https://lichtpartner.nl/wp-content/plugins/addify-checkout-fields-manager/front/js/af-cf-front.js?ver=1.0.2

js lichtpartner.nl collected 2026-10-07 22:39:16 UTC 15,313 bytes, 626 lines download raw bytes

1var afchf_update_checkout_timer;
2function afchf_trigger_update_checkout() {
3	clearTimeout( afchf_update_checkout_timer );
4	afchf_update_checkout_timer = setTimeout( function() {
5		jQuery( document.body ).trigger( 'update_checkout' );
6	}, 1200 );
7}
8
9jQuery(document).ready(function($){
10	"user strict";
11	jQuery('form#registerform').attr('enctype','multipart/form-data');
12	jQuery('.woocommerce-form-register').attr('enctype','multipart/form-data');
13	jQuery('.woocommerce-EditAccountForm').attr('enctype','multipart/form-data');
14//	jQuery('#af_ch_f_325_field').insertAfter('.wp-block-woocommerce-checkout-order-note-block');
15
16
17jQuery('.input-checkbox').on('click', function(){
18	if ( ! $(this).hasClass('af_ch_f_field_price') ) {
19		return;
20	}
21	afchf_trigger_update_checkout();
22});
23
24	jQuery(document).on('blur', '.input-text', function(){
25		if ( ! $(this).hasClass('af_ch_f_field_price') ) {
26			return;
27		}
28		afchf_trigger_update_checkout();
29	});
30
31	jQuery(document).on('change', '.select', function(){
32		afchf_trigger_update_checkout();
33	});
34
35
36	jQuery(document).on('click', '.af_ch_f_field_price', function(){
37		afchf_trigger_update_checkout();
38	});
39
40	var selected_fiels = '';
41
42	$('.af_ch_f_upload_button').prop('disabled', true );
43
44	jQuery(document).on('focusout', 'input.af_ch_f_field_price', function(){
45
46		if ( 'checkbox' == $(this).attr('type') ) {
47			return;
48		}
49
50		if ( 'radio' == $(this).attr('type') ) {
51			return;
52		}
53
54		afchf_trigger_update_checkout();
55	});
56
57	$(document).on('change', '.af_ch_f_field_fileupload', function(e){
58
59		let form_data = new FormData();
60
61		if ( e.target.files && e.target.files.length > 0 ) {
62
63			selected_fiels = e.target.files;
64
65			$(this).closest('p').find('.af_ch_f_upload_button').prop('disabled', false );
66
67		} else {
68
69			$(this).closest('p').find('.af_ch_f_upload_button').prop('disabled', true );
70		}
71	});
72
73	$(document).on('click', '.af_ch_f_upload_button', function(e){
74
75		$(this).addClass('loading');
76
77		var current_button = $(this);
78
79		let form_data = new FormData();
80
81		let file_data = $(this).closest('p').find('.af_ch_f_field_fileupload').prop('files')[0];
82
83		let field_id = $(this).closest('p').find('.af_ch_f_field_fileupload').attr('data-field_id');
84
85		form_data.append( 'file', file_data );
86		form_data.append( 'action', 'afchf_file_upload' );
87		form_data.append( 'nonce', php_info.nonce );
88		form_data.append( 'field_id', field_id );
89
90		$.ajax({
91			
92			url: php_info.ajaxurl,
93			dataType: 'JSON',
94			cache: false,
95			contentType: false,
96			processData: false,
97			data: form_data,                         
98			type: 'post',
99			success: function(response) {
100				
101				if ( response.success ) {
102					current_button.closest('p').find('.af_ch_f_field_fileupload').prop('disabled', true);
103					current_button.closest('p').append(response.hidden_field);
104					current_button.removeClass('loading');
105					current_button.addClass('loaded');
106					current_button.html('<span class="dashicons dashicons-yes-alt"></span>');
107					current_button.css('color', 'green');
108					afchf_trigger_update_checkout();
109
110				} else {
111					afchf_trigger_update_checkout();
112					current_button.removeClass('loading');
113					current_button.closest('p').find('ul.woocommerce-error').remove();
114					current_button.closest('p').find('.af_ch_f_field_fileupload').before(response.message);
115				}
116			},
117			error: function(response){
118				console.log(response);
119			}
120		});
121	});
122
123	
124	
125});
126
127
128jQuery(document).ready(function( $ ){
129	"user strict";
130	
131	afchf_trigger_update_checkout();
132
133	function is_element_dependent( element ){
134
135		if ( element.closest('p').hasClass('af_ch_f_is_dependable') ) {
136			return true;
137		}
138
139		return false;
140	}
141
142	function is_element_visible( element ){
143
144		if ( element.closest('p').is(':visible') && element.is(':visible') ) {
145			return true;
146		}
147
148		return false;
149	}
150
151	function multiple_items_dependent_fields( elements ) {
152
153		if ( !Array.isArray( elements ) ) {
154			return is_element_has_dependent_fields( elements );
155		}
156
157		let child_elements = [];
158
159		$.each( elements, function( index, element ){
160
161			let next_level_elements = is_element_has_dependent_fields( element );
162
163			if ( next_level_elements && Array.isArray( next_level_elements ) ) {
164				child_elements = child_elements.concat( next_level_elements );
165			}
166		});
167
168		return child_elements;
169	}
170
171	function is_element_has_dependent_fields( element ){
172
173		let id_of_element = '';
174
175		if ( Array.isArray( element ) ) {
176
177			id_of_element = [];
178
179			$.each( element, function( index, elem ){
180
181				id_of_element.push( elem.attr('id') );
182			});
183
184		} else {
185
186			id_of_element = element.attr('id');
187		}
188
189		let child_elements = [];
190
191		$('p.af_ch_f_is_dependable').find('input:first, select, textarea, label.checkbox').each( function(){
192
193			let dependent_on = $(this).data('dependent_on');
194
195			if ( Array.isArray( id_of_element ) ) {
196
197				if ( id_of_element.includes( dependent_on ) ) {
198					child_elements.push( $(this) );
199				}
200
201			} else {
202
203				if ( dependent_on == id_of_element ) {
204					child_elements.push( $(this) );
205				}
206			}				
207		});
208
209		if ( child_elements.length < 1 ) {
210
211			return false;
212		} 
213
214		return child_elements;
215	}
216
217	function hide_multilevel_dependendent_fields( element ) {
218
219		while ( element = is_element_has_dependent_fields( element ) ) {
220
221			if ( Array.isArray( element ) ) {
222
223				$.each(element, function( index, child_element ){
224					child_element.closest('p.form-row').hide();
225					child_element.trigger('change');
226
227					if ( child_element.prop('required') ) {
228						child_element.attr( 'data-required', 'required');
229						child_element.prop('required', false );
230					}
231				});
232
233			} else {
234
235				element.closest('p.form-row').hide();
236
237				if ( element.prop('required') ) {
238					element.attr( 'data-required', 'required');
239					element.prop('required', false );
240				}
241				
242				element.trigger('change');
243			}
244		}
245	}
246
247	function show_multilevel_dependendent_fields( element ) {
248
249		while ( element = is_element_has_dependent_fields( element ) ) {
250
251			if ( Array.isArray( element ) ) {
252
253				$.each(element, function( index, child_element ){
254					child_element.closest('p.form-row').show();
255					child_element.trigger('change');
256
257					if ( child_element.data('required') ) {
258						child_element.prop('required', true );
259					}
260				});
261
262			} else {
263
264				element.closest('p.form-row').show();
265
266				if ( element.data('required') ) {
267					element.prop('required', true );
268				}
269
270				element.trigger('change');
271			}
272		}
273	}
274
275	jQuery('.woocommerce-account-fields div.create-account').append(jQuery('div.af_c_f_extra_fields'));
276
277	activate_fields_dependency();
278
279	function activate_fields_dependency(){
280
281		$('p.af_ch_f_is_dependable').find('input:first, select, textarea, label.checkbox').each( function(){
282
283			var field_name  = $(this).data('dependent_on');
284			var field_value = $(this).data('dependent_val');
285
286			var radio = false;
287
288			if ( ! field_value || field_value.length < 1 ) {
289				return;
290			}
291
292			if ( ! document.getElementById( field_name ) ) {
293
294				if ( document.getElementById( field_name + '_1' ) ) {
295
296					field_name = field_name + '_1';
297
298					radio = true;
299				}	
300			}
301
302			if ( 'string' != typeof field_value ) {
303				field_value = field_value.toString();
304			}
305
306			var current_element = $(this);
307			
308			var parent_element = $(document).find( '#' + field_name );
309
310			var values = parent_element.val();
311
312			var single_checkbox = false;
313			
314			if ( 'checkbox' == parent_element.attr('type') ) {
315
316				var parent_elements = parent_element.closest('p.form-row').find( 'input[type="checkbox"]' );
317
318				if ( parent_elements.length > 1 ) {
319
320					values = [];
321					
322					var selected_elements = parent_element.closest('p.form-row').find( 'input[type="checkbox"]:checked' );
323
324					selected_elements.each( function(){
325
326						values.push( $(this).val() );
327					});
328
329				} else {
330
331					single_checkbox = true;
332
333					if ( parent_element.is(':checked') && parent_element.is(':visible') ) {
334
335						current_element.closest('p.form-row').show();
336
337						if ( is_element_has_dependent_fields(current_element ) ) {
338							show_multilevel_dependendent_fields( current_element );
339						}
340
341						current_element.trigger('change');
342
343					} else {
344
345						current_element.closest('p.form-row').hide();
346
347						if ( is_element_has_dependent_fields(current_element ) ) {
348
349							hide_multilevel_dependendent_fields( current_element );
350						}
351					}
352				}	
353
354			} else if ( 'radio' == parent_element.attr('type') ) {
355
356				var parent_elements = parent_element.closest('p.form-row').find( 'input[type="radio"]' );
357
358				if ( parent_elements.length > 1 ) {
359					
360					values = parent_element.closest('p.form-row').find( 'input[type="radio"]:checked' ).val();
361
362				} else {
363
364					if ( parent_element.is(':visible') && parent_element.is(':checked') ) {
365
366						current_element.closest('p.form-row').show();
367
368						if ( is_element_has_dependent_fields(current_element ) ) {
369							show_multilevel_dependendent_fields( current_element );
370						}
371
372						current_element.trigger('change');
373
374					} else {
375
376						if ( is_element_has_dependent_fields(current_element ) ) {
377							hide_multilevel_dependendent_fields( current_element );
378						}
379
380						current_element.closest('p.form-row').hide();
381					}
382				}
383			}
384
385			var values_array = field_value.split(',');
386
387			if ( values_array.length < 1 ) {
388				current_element.closest('p.form-row').hide();
389				if ( is_element_has_dependent_fields(current_element ) ) {
390					hide_multilevel_dependendent_fields( current_element );
391				}
392				return;
393			}
394
395			if ( Array.isArray( values ) ) {
396
397				let intersection = values_array.filter(x => values.includes(x));
398
399				if ( intersection.length < 1 || !parent_element.is(':visible') ) {
400
401					current_element.closest('p.form-row').hide();
402
403					if ( is_element_has_dependent_fields(current_element ) ) {
404						hide_multilevel_dependendent_fields( current_element );
405					}
406
407					if ( current_element.prop('required') ) {
408						current_element.attr( 'data-required', 'required');
409						current_element.prop('required', false );
410					}
411
412				} else {
413
414					if ( current_element.data('required') ) {
415						current_element.prop('required', true );
416					}
417
418					current_element.closest('p.form-row').show();
419
420					if ( is_element_has_dependent_fields(current_element ) ) {
421						show_multilevel_dependendent_fields( current_element );
422					}
423
424					current_element.trigger('change');
425				}
426
427			} else if ( ! single_checkbox ) {
428
429				if ( values_array.includes( values ) && parent_element.is(':visible') ) {
430
431					if ( current_element.data('required') ) {
432
433						current_element.prop('required', true );
434					}
435
436					current_element.closest('p.form-row').show();
437
438					if ( is_element_has_dependent_fields(current_element ) ) {
439						show_multilevel_dependendent_fields( current_element );
440					}
441
442					current_element.trigger('change');
443					
444				} else {
445
446					if ( current_element.prop('required') ) {
447						current_element.attr( 'data-required', 'required');
448						current_element.prop('required', false );
449					}
450
451					current_element.closest('p.form-row').hide();
452
453					if ( is_element_has_dependent_fields(current_element ) ) {
454						hide_multilevel_dependendent_fields( current_element );
455					}
456				}
457			}
458
459			if ( radio ) {
460
461				$( '#' + field_name ).closest( 'p.form-row' ).find( 'input').each( function(){
462
463					field_name +=  ',#' + $(this).attr('id');
464				});
465			}
466			
467			$(document).on( 'change' , '#' + field_name , function(){
468				var values = $(this).val();
469
470				var parent_element = $(this);
471
472				var values_array = field_value.split(',');
473
474				if ( 'checkbox' == parent_element.attr('type') ) {
475
476					var parent_elements = parent_element.closest('p.form-row').find( 'input[type="checkbox"]' );
477
478					if ( parent_elements.length > 1 ) {
479
480						values = [];
481						
482						var selected_elements = parent_element.closest('p.form-row').find( 'input[type="checkbox"]:checked' );
483
484						selected_elements.each( function() {
485
486							values.push( $(this).val() );
487						});
488
489					} else {
490
491						if ( parent_element.is(':checked') ) {
492							current_element.closest('p.form-row').show();
493
494							if ( is_element_has_dependent_fields(current_element ) ) {
495								show_multilevel_dependendent_fields( current_element );
496							}
497
498							current_element.trigger('change');
499
500						} else {
501
502							current_element.closest('p.form-row').hide();
503
504							if ( is_element_has_dependent_fields(current_element ) ) {
505								hide_multilevel_dependendent_fields( current_element );
506							}
507						}
508						return;
509					}
510
511				} else if ( 'radio' == parent_element.attr('type') ) {
512
513					var parent_elements = parent_element.closest('p.form-row').find( 'input[type="radio"]' );
514
515					if ( parent_elements.length > 1 ) {
516						
517						values = parent_element.closest('p.form-row').find( 'input[type="radio"]:checked' ).val();
518
519					} else {
520
521						if ( parent_element.is(':checked') ) {
522							current_element.closest('p.form-row').show();
523
524							if ( is_element_has_dependent_fields(current_element ) ) {
525								show_multilevel_dependendent_fields( current_element );
526							}
527
528							current_element.trigger('change');
529
530						} else {
531
532							current_element.closest('p.form-row').hide();
533
534							if ( is_element_has_dependent_fields(current_element ) ) {
535								hide_multilevel_dependendent_fields( current_element );
536							}
537						}
538					}
539				}
540
541				if ( values_array.length < 1 ) {
542					current_element.hide();
543					return;
544				}
545
546				if ( Array.isArray( values ) ) {
547
548					let intersection = values_array.filter(x => values.includes(x));
549
550					if ( intersection.length < 1 ) {
551
552						current_element.closest('p.form-row').hide();
553
554						if ( is_element_has_dependent_fields(current_element ) ) {
555							hide_multilevel_dependendent_fields( current_element );
556						}
557
558						if ( current_element.prop('required') ) {
559							current_element.attr( 'data-required', 'required');
560							current_element.prop('required', false );
561						}
562
563					} else {
564
565						if ( current_element.data('required') ) {
566
567							current_element.prop('required', true );
568						}
569
570						current_element.closest('p.form-row').show();
571
572						if ( is_element_has_dependent_fields(current_element ) ) {
573							show_multilevel_dependendent_fields( current_element );
574						}
575
576						current_element.trigger('change');
577
578					}
579
580				} else {
581
582					if ( values_array.includes( values ) ) {
583
584						if ( current_element.data('required') ) {
585
586							current_element.prop('required', true );
587						}
588
589						current_element.closest('p.form-row').show();
590
591						if ( is_element_has_dependent_fields(current_element ) ) {
592							show_multilevel_dependendent_fields( current_element );
593						}
594
595						current_element.trigger('change');
596						
597					} else {
598
599						if ( current_element.prop('required') ) {
600							current_element.attr( 'data-required', 'required');
601							current_element.prop('required', false );
602						}
603
604						current_element.closest('p.form-row').hide();
605
606						if ( is_element_has_dependent_fields(current_element ) ) {
607							hide_multilevel_dependendent_fields( current_element );
608						}
609					}
610				}
611			});
612		});
613	}
614
615	jQuery(document.body).on('updated_checkout', function(){
616		activate_fields_dependency();
617	});
618
619	jQuery('p.form-row').find('input:first, select').each( function(){
620
621		if ( !$(this).closest('p').hasClass('af_ch_f_is_dependable') ) {
622
623			$(this).trigger('change');
624		}
625	});
626});

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.