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.