Ei kuvausta

jetpack-recommendations-banner.js 1.8KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. /* global jp_banner */
  2. ( function ( $ ) {
  3. var recommendationsBanner = $( '#jp-recommendations-banner-main' );
  4. var recommendationsBannerForm = $( '#jp-recommendations-banner__form' );
  5. var recommendationsBannerContinue = $( '#jp-recommendations-banner__continue-button' );
  6. var recommendationsBannerDismiss = $( '#jp-recommendations-banner__notice-dismiss' );
  7. recommendationsBannerForm.on( 'change', function ( event ) {
  8. if (
  9. 'checkbox' === event.target.type &&
  10. event.target.parentElement &&
  11. 'label' === event.target.parentElement.tagName.toLowerCase()
  12. ) {
  13. var isChecked = $( 'label.checked input[name="' + event.target.name + '"]' ).length > 0;
  14. if ( isChecked ) {
  15. event.target.parentElement.classList.remove( 'checked' );
  16. } else {
  17. event.target.parentElement.classList.add( 'checked' );
  18. }
  19. }
  20. } );
  21. recommendationsBannerContinue.on( 'click', function () {
  22. var fieldNames = [ 'personal', 'business', 'store', 'other' ];
  23. var formData = {};
  24. fieldNames.forEach( function ( name ) {
  25. formData[ name ] = $( "input[name='" + name + "']" ).prop( 'checked' );
  26. } );
  27. $.post(
  28. jp_banner.ajax_url,
  29. {
  30. action: 'jetpack_recommendations_banner',
  31. nonce: jp_banner.nonce,
  32. personal: formData.personal,
  33. business: formData.business,
  34. store: formData.store,
  35. other: formData.other,
  36. },
  37. function ( response ) {
  38. if ( true === response.success ) {
  39. window.location.assign( jp_banner.recommendations_url );
  40. }
  41. }
  42. );
  43. } );
  44. recommendationsBannerDismiss.on( 'click', function () {
  45. $( recommendationsBanner ).hide();
  46. var data = {
  47. action: 'jetpack_recommendations_banner',
  48. nonce: jp_banner.nonce,
  49. dismissBanner: true,
  50. };
  51. $.post( jp_banner.ajax_url, data, function ( response ) {
  52. if ( true !== response.success ) {
  53. $( recommendationsBanner ).show();
  54. }
  55. } );
  56. } );
  57. } )( jQuery );